Che cos'è HSTS e come protegge HTTPS dagli hacker?
Annuncio pubblicitario
Potresti esserti assicurato che i tuoi siti Web abbiano abilitato SSL e che il grazioso lucchetto di sicurezza nel tuo browser sia verde. Tuttavia, potresti aver dimenticato il piccolo addetto alla sicurezza di HTTP, HTTP Strict Transport Security (HSTS).
Che cos'è HSTS e in che modo può proteggere il tuo sito?
Che cos'è HTTPS?
Hyper Text Transfer Protocol Secure (HTTPS) è una versione protetta di un sito Web (HTTP). La crittografia è abilitata utilizzando il protocollo SSL (Secure Sockets Layer) ed è convalidata con un certificato SSL. Quando ci si connette a un sito Web HTTPS, le informazioni trasferite tra il sito Web e l'utente vengono crittografate.
Questa crittografia ti aiuta a proteggerti dal furto di dati tramite Man-in-the-Middle-Attacks (MITM). Il livello aggiunto di sicurezza aiuta anche leggermente a migliorare la reputazione del tuo sito web Demistificare SEO: 5 guide per l'ottimizzazione dei motori di ricerca che ti aiutano a iniziare Demistificare SEO: 5 guide per l'ottimizzazione dei motori di ricerca che ti aiutano a iniziare La padronanza dei motori di ricerca richiede conoscenza, esperienza e molte prove ed errore. Puoi iniziare ad apprendere i fondamenti ed evitare facilmente gli errori SEO comuni con l'aiuto di molte guide SEO disponibili sul Web. Leggi di più . In effetti, aggiungere un certificato SSL è così semplice che molti host web lo aggiungeranno al tuo sito per impostazione predefinita, gratuitamente! Detto questo, HTTPS ha ancora alcuni difetti che HSTS può aiutare a risolvere.
Che cos'è HSTS?
HSTS è un'intestazione di risposta che informa un browser che è possibile accedere ai siti Web abilitati solo tramite HTTPS. Questo obbliga il tuo browser ad essere in grado di accedere solo alla versione HTTPS del sito Web e alle risorse su di esso.
Potresti non essere consapevole del fatto che anche se hai configurato correttamente il tuo certificato SSL e abilitato HTTPS per il tuo sito Web, la versione HTTP è ancora disponibile. Ciò è vero anche se è stato impostato l'inoltro utilizzando il reindirizzamento permanente 301.
Sebbene la politica HSTS sia in circolazione da un po 'di tempo, è stata implementata formalmente da Google solo a luglio 2016. Questo potrebbe essere il motivo per cui non ne hai ancora sentito parlare.
L'abilitazione di HSTS interromperà gli attacchi al protocollo SSL e il dirottamento dei cookie, che cos'è un cookie e che cosa ha a che fare con la mia privacy? [MakeUseOf Explains] Che cos'è un cookie e cosa ha a che fare con la mia privacy? [MakeUseOf Explains] La maggior parte delle persone sa che ci sono cookie sparsi su Internet, pronti e disposti a essere divorati da chiunque possa trovarli per primi. Aspetta cosa? Non può essere giusto. Sì, ci sono cookie ... Altre due vulnerabilità aggiuntive nei siti Web abilitati per SSL. Oltre a rendere un sito Web più sicuro, HSTS renderà i siti più veloci caricando rimuovendo un passaggio nella procedura di caricamento.
Che cos'è lo stripping SSL?
Sebbene HTTPS sia un enorme miglioramento rispetto a HTTP, non è invulnerabile all'hacking. Lo stripping SSL è un hack MITM molto comune per i siti Web che utilizza il reindirizzamento per inviare utenti da una versione HTTP a HTTPS del loro sito Web.
Il reindirizzamento 301 (permanente) e 302 (temporaneo) funziona sostanzialmente in questo modo:
- Un utente digita google.com nella barra degli indirizzi del proprio browser.
- Inizialmente il browser tenta di caricare http://google.com come predefinito.
- "Google.com" è impostato con un reindirizzamento permanente 301 a https://google.com .
- Il browser vede il reindirizzamento e carica invece https://google.com .
Con lo stripping SSL, l'hacker può utilizzare il tempo tra il passaggio 3 e il passaggio 4 per bloccare la richiesta di reindirizzamento e impedire al browser di caricare la versione protetta (HTTPS) del sito Web. Mentre accedete a una versione non crittografata del sito Web, è possibile rubare qualsiasi dato inserito.
L'hacker può anche reindirizzarti a una copia del sito Web a cui stai tentando di accedere e acquisire tutti i tuoi dati mentre li inserisci, anche se sembra sicuro.
Google ha implementato i passaggi in Chrome per arrestare alcuni tipi di reindirizzamento. Tuttavia, abilitare HSTS dovrebbe essere qualcosa che fai di default per tutti i tuoi siti web d'ora in poi.
In che modo l'abilitazione di HSTS interrompe lo stripping SSL?
L'abilitazione di HSTS impone al browser di caricare la versione sicura di un sito Web e ignora qualsiasi reindirizzamento e qualsiasi altra chiamata per aprire una connessione HTTP. Ciò chiude la vulnerabilità di reindirizzamento che esiste con un reindirizzamento 301 e 302.
C'è un lato negativo anche per HSTS, e cioè che il browser di un utente deve vedere l'intestazione HSTS almeno una volta prima che possa trarne vantaggio per le visite future. Ciò significa che dovranno passare attraverso il processo HTTP> HTTPS almeno una volta, lasciandoli vulnerabili la prima volta che visitano un sito Web abilitato per HSTS.
Per contrastare questo, Chrome precarica un elenco di siti Web che hanno abilitato HSTS. Gli utenti possono inviare siti Web abilitati HSTS all'elenco di precaricamento se soddisfano i criteri (semplici) richiesti.
I siti web aggiunti a questo elenco verranno codificati nelle versioni future degli aggiornamenti di Chrome. Garantisce che tutti coloro che visitano i siti Web abilitati HSTS nelle versioni aggiornate di Chrome rimarranno al sicuro.
Firefox, Opera, Safari e Internet Explorer hanno il proprio elenco di precaricamenti HSTS, ma si basano sull'elenco Chrome su hstspreload.org.
Come abilitare HSTS sul tuo sito web
Per abilitare HSTS sul tuo sito web devi prima avere un certificato SSL valido 7 Ragioni per cui il tuo sito ha bisogno di un certificato SSL 7 Ragioni per cui il tuo sito ha bisogno di un certificato SSL Non importa se stai sviluppando un blog modesto o un e-commerce completo sito: è necessario un certificato SSL. Ecco alcuni motivi pratici per cui. Leggi di più . Se abiliti HSTS senza uno, il tuo sito non sarà disponibile per nessun visitatore, quindi assicurati che il tuo sito Web e tutti i sottodomini funzionino su HTTPS prima di continuare.
Abilitare HSTS è abbastanza semplice. Devi semplicemente aggiungere un'intestazione al file .htaccess sul tuo sito. L'intestazione che devi aggiungere è:
Strict-Transport-Security: max-age=31536000; includeSubDomains
Ciò aggiunge un cookie di accesso massimo di un anno (che cos'è un cookie? I cookie non sono tutti cattivi: 6 motivi per lasciarli abilitati sul tuo browser I cookie non sono tutti cattivi: 6 motivi per lasciarli abilitati sul tuo browser I cookie sono davvero tutto così male? Stanno mettendo a rischio la tua sicurezza e privacy o ci sono buoni motivi per abilitare i cookie? Leggi di più), che include il tuo sito Web e eventuali sottodomini. Una volta che un browser ha avuto accesso al sito Web, non sarà in grado di accedere alla versione HTTP non protetta del sito Web per un anno. Assicurarsi che tutti i sottodomini su questo dominio siano inclusi nel certificato SSL e che HTTPS sia abilitato. Se lo dimentichi, i sottodomini non saranno accessibili dopo aver salvato il file .htaccess.
I siti Web in cui manca l'opzione includeSubDomains possono esporre i visitatori a perdite di privacy consentendo ai sottodomini di manipolare i cookie. Con includeSubDomains abilitato, questi attacchi relativi ai cookie non saranno possibili.
Nota: prima di aggiungere l'età massima di un anno, testare l'intero sito Web con l'età massima di cinque minuti, utilizzando: età massima = 300;
Google consiglia persino di testare il tuo sito Web e le sue prestazioni (traffico) con un valore di una settimana e di un mese, prima di implementare un'età massima di due anni.
Five minutes: Strict-Transport-Security: max-age=300; includeSubDomains One week: Strict-Transport-Security: max-age=604800; includeSubDomains One month: Strict-Transport-Security: max-age=2592000; includeSubDomains
Creazione dell'elenco di precaricamento HSTS
Ormai dovresti conoscere HSTS e perché è importante che il tuo sito lo utilizzi. Proteggere i visitatori del tuo sito Web online dovrebbe essere un elemento chiave del piano del sito.
Per essere idoneo all'elenco di precaricamento HSTS utilizzato da Chrome e altri browser, il tuo sito Web deve soddisfare i seguenti requisiti:
- Serve un certificato SSL valido.
- Reindirizzare da HTTP a HTTPS sullo stesso host, se si sta ascoltando sulla porta 80.
- Servi tutti i sottodomini su HTTPS. In particolare, è necessario supportare HTTPS per www.subdomain se esiste un record DNS per quel sottodominio.
- Servire un'intestazione HSTS sul dominio di base per le richieste HTTPS:
- L'età massima deve essere di almeno 31536000 secondi (1 anno).
- È necessario specificare la direttiva includeSubDomains.
- È necessario specificare la direttiva di precarico.
- Se stai offrendo un reindirizzamento aggiuntivo dal tuo sito HTTPS, quel reindirizzamento deve comunque avere l'intestazione HSTS (anziché la pagina a cui reindirizza).
Se si desidera aggiungere il proprio sito Web all'elenco di precaricamento HSTS, assicurarsi di aggiungere il tag di precarico richiesto. L'opzione "precaricamento" indica che desideri che il tuo sito web venga aggiunto all'elenco di precaricamento HSTS di Chrome. L'intestazione della risposta in .htaccess dovrebbe quindi apparire così:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
Ti consigliamo di aggiungere il tuo sito Web a hstspreload.org. I requisiti sono abbastanza facili da soddisfare e aiuteranno a proteggere i visitatori del tuo sito Web e potenzialmente a migliorare la classifica dei motori di ricerca del tuo sito Web Come funzionano i motori di ricerca? Come funzionano i motori di ricerca? Per molte persone, Google È Internet. È probabilmente l'invenzione più importante dall'Internet stesso. E mentre i motori di ricerca sono cambiati molto da allora, i principi di base sono sempre gli stessi. Leggi di più .
Ulteriori informazioni su: HSTS, HTTPS, sicurezza online, SSL.