Che cos'è HSTS e come protegge HTTPS dagli hacker?

Che cos'è HSTS e come protegge HTTPS dagli hacker? / Sicurezza

Potresti aver fatto in modo che i tuoi siti web abbiano abilitato SSL, e il grazioso lucchetto di sicurezza nel tuo browser è verde. Tuttavia, potresti aver dimenticato il piccolo addetto alla sicurezza di HTTP, HTTP Strict Transport Security (HSTS).

Cos'è l'HSTS e come può aiutare a proteggere il tuo sito?

Che cos'è HTTPS?

Hyper Text Transfer Protocol Secure (HTTPS) è una versione protetta di un sito Web (HTTP). La crittografia è abilitata tramite il protocollo Secure Sockets Layer (SSL) 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 di sicurezza aggiunto aiuta anche a migliorare la reputazione del tuo sito web Demystify SEO: 5 guide per l'ottimizzazione dei motori di ricerca che ti aiutano a demistificare il SEO: 5 guide per l'ottimizzazione dei motori di ricerca che ti aiutano ad iniziare La padronanza dei motori di ricerca richiede conoscenza, esperienza e un sacco di prove ed errore È possibile iniziare a imparare i fondamenti ed evitare facilmente errori SEO comuni con l'aiuto di molte guide SEO disponibili sul Web. Leggi di più . In effetti, l'aggiunta di 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.

Cos'è l'HSTS?

HSTS è un'intestazione di risposta che informa un browser che consente l'accesso ai siti Web solo tramite HTTPS. Ciò impone al tuo browser di accedere solo alla versione HTTPS del sito Web e alle risorse su di esso.

Potresti non sapere che, anche se hai impostato correttamente il certificato SSL e attivato HTTPS per il tuo sito web, la versione HTTP è ancora disponibile. Questo è vero anche se hai impostato l'inoltro usando 301 Reindirizzamento permanente.

Sebbene la politica HSTS sia in vigore da un po 'di tempo, è stata formalmente implementata da Google solo a luglio 2016. Forse è perché non ne hai ancora sentito parlare.

L'attivazione 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] Cos'è un cookie e cosa ha a che fare con la mia privacy? [MakeUseOf Explains] La maggior parte delle persone sa che ci sono biscotti sparsi su Internet, pronti e disposti a essere mangiati da chiunque li trovi prima. Aspetta cosa? Non può essere giusto. Sì, ci sono i cookie ... Ulteriori informazioni su due ulteriori vulnerabilità nei siti Web abilitati a SSL. E oltre a rendere un sito Web più sicuro, HSTS renderà i siti più veloci rimuovendo un passaggio nella procedura di caricamento.

Che cos'è lo stripping SSL?

Sebbene HTTPS sia un enorme miglioramento rispetto a HTTP, non è invulnerabile essere hackerato. Lo stripping SSL è un attacco MITM molto comune per i siti Web che utilizza il reindirizzamento per inviare utenti da un HTTP alla versione HTTPS del proprio sito Web.

301 (permanente) e 302 (temporaneo) reindirizzamento funziona fondamentalmente in questo modo:

  1. Un utente digita google.com nella barra degli indirizzi del browser.
  2. Il browser inizialmente tenta di caricare http://google.com come predefinito.
  3. “Google.com” è impostato con un reindirizzamento permanente 301 a https://google.com.
  4. Il browser vede il reindirizzamento e carica https://google.com anziché.

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 sicura (HTTPS) del sito Web. Dato che stai accedendo a una versione non crittografata del sito web, qualsiasi dato inserito può essere rubato.

L'hacker può anche reindirizzarti a una copia del sito Web a cui stai tentando di accedere e acquisire tutti i tuoi dati mentre lo inserisci, anche se sembra sicuro.

Google ha implementato passaggi in Chrome per interrompere alcuni tipi di reindirizzamento. Tuttavia, abilitando HSTS dovrebbe essere qualcosa che fai per impostazione predefinita per tutti i tuoi siti web d'ora in poi.

Come l'attivazione di HSTS interrompe lo stripping di SSL?

L'abilitazione di HSTS impone al browser di caricare la versione protetta di un sito Web e ignora qualsiasi reindirizzamento e qualsiasi altra chiamata per l'apertura di una connessione HTTP. Ciò chiude la vulnerabilità di reindirizzamento esistente 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 ovviare a ciò, Chrome precarica un elenco di siti Web che hanno l'HSTS abilitato. Gli utenti possono inviare essi stessi i siti Web abilitati per HSTS all'elenco di precarichi se soddisfano i criteri (semplici) richiesti.

I siti web aggiunti a questo elenco saranno codificati in modo fisso nelle versioni future degli aggiornamenti di Chrome. Si assicura che tutti coloro che visitano i siti Web abilitati HSTS nelle versioni aggiornate di Chrome rimarranno sicuri.

Firefox, Opera, Safari e Internet Explorer hanno il loro elenco precarico HSTS, ma sono basati 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 Motivi per cui il tuo sito necessita di un certificato SSL 7 Motivi per cui il tuo sito necessita 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 a nessun visitatore, quindi assicurati che il tuo sito web e qualsiasi sottodominio funzionino su HTTPS prima di continuare.

Abilitare HSTS è abbastanza facile. Devi semplicemente aggiungere un'intestazione al file .htaccess sul tuo sito. L'intestazione che devi aggiungere è:

Strict-Transport-Security: max-age = 31536000; includeSubDomains

Questo aggiunge un cookie di accesso di età massima di un anno (che cos'è un cookie? I cookie non sono tutti negativi: 6 motivi per lasciarli attivati ​​sul browser I cookie non sono tutti negativi: 6 motivi per lasciarli abilitati sul browser I cookie sono davvero Tutto ciò che è male? Mettono a rischio la sicurezza e la privacy, o ci sono buoni motivi per abilitare i cookie? Ulteriori informazioni), che include il tuo sito web e qualsiasi sottodominio. Una volta che un browser ha effettuato l'accesso al sito Web, non sarà in grado di accedere alla versione HTTP non protetta del sito Web per un anno. Assicurati che tutti i sottodomini di questo dominio siano inclusi nel certificato SSL e che sia abilitato HTTPS. Se lo dimentichi, i sottodomini non saranno accessibili dopo aver salvato il file .htaccess.

Siti web che mancano il includeSubDomains l'opzione può 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, prova prima l'intero sito web con la durata massima di cinque minuti utilizzando: max-age = 300;

Google consiglia anche di testare il tuo sito web e le sue prestazioni (traffico) con un valore di una settimana e un mese prima di implementare un massimo di due anni.

Cinque minuti: rigorosa sicurezza del trasporto: max-età = 300; includeSubDomains Una settimana: Strict-Transport-Security: max-age = 604800; includeSubDomains Un mese: Strict-Transport-Security: max-age = 2592000; includeSubDomains

Creazione dell'elenco precarico HSTS

Ormai dovresti avere familiarità con HSTS e perché è importante che il tuo sito lo usi. Mantenere online i visitatori del tuo sito web dovrebbe essere un elemento chiave del tuo piano del sito.

Per essere idoneo per l'elenco di precarico HSTS utilizzato da Chrome e altri browser, il sito Web deve soddisfare i seguenti requisiti:

  1. Serve un certificato SSL valido.
  2. Reindirizzare da HTTP a HTTPS sullo stesso host, se si sta ascoltando sulla porta 80.
  3. Serve tutti i sottodomini su HTTPS. In particolare, è necessario supportare HTTPS per www.subdomain se esiste un record DNS per tale sottodominio.
  4. Fornisci un'intestazione HSTS sul dominio di base per le richieste HTTPS:
    • L'età massima deve essere di almeno 31536000 secondi (1 anno).
    • La direttiva includeSubDomains deve essere specificata.
    • La direttiva di precarico deve essere specificata.
    • Se stai servendo un reindirizzamento aggiuntivo dal tuo sito HTTPS, quel reindirizzamento deve avere ancora l'intestazione HSTS (piuttosto che la pagina a cui reindirizza).

Se si desidera aggiungere il proprio sito Web all'elenco di precarico HSTS, assicurarsi di aggiungere il necessario precarico etichetta. Il “precarico” opzione significa che vuoi che il tuo sito web sia aggiunto all'elenco di precarico HST di Chrome. L'intestazione della risposta in .htaccess dovrebbe quindi assomigliare a questa:

Strict-Transport-Security: max-age = 63072000; includeSubDomains; precarico

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 il posizionamento sui motori di ricerca del tuo sito Web. Come funzionano i motori di ricerca? Come funzionano i motori di ricerca? Per molte persone, Google IS Internet. È senza dubbio l'invenzione più importante dal momento che Internet stessa. E mentre i motori di ricerca sono cambiati molto da allora, i principi sottostanti sono sempre gli stessi. Leggi di più .

Scopri di più su: HSTS, HTTPS, sicurezza online, SSL.