HSTS: cos’è, perché andrebbe utilizzato e come attivarlo​

Nato per proteggere le connessioni dagli attacchi e dai dirottamenti di connessione, il metodo HSTS è ormai uno standard di sicurezza da diversi anni.

Che cos’è e come funziona HSTS?

L’acronimo HSTS sta per HTTP Strict Transport Security ed è una procedura di sicurezza per le comunicazioni sul web. Si tratta di un metodo impiegato dai siti web per indicare ai browser che le comunicazioni con questo devono avvenire attraverso il canale HTTPS. Il protocollo HTTPS rappresenta ormai lo standard per le connessioni sicure, in quanto capace di proteggere la comunicazione dagli attacchi e dai dirottamenti di sessione.

In presenza di questa dichiarazione, i browser impediscono connessioni non sicure del vecchio standard (HTTP), o almeno dovrebbero, dal momento che il suo supporto non è ancora universale sui browser mobile.

Come funziona da direttiva HSTS in pratica

Vediamo come funziona in pratica nell’esperienza di tutti i giorni questa direttiva. Quando un utente digita la url direttamente dalla barra degli indirizzi, possono verificarsi diversi casi:

Fonte: Insidevcode
  1. Viene digitato l’intero nome dominio con protocollo https, es: https://www.sitoesempio.it. In questo caso il browser invierà una richiesta di connessione con protocollo https.
  2. Viene digitato il dominio senza la parte che indica il protocollo, es: sitoesempio.it o sitoesempio.it, oppure viene digitato l’indirizzo con protocollo http, es: http://www.sitoesempio.it. In questo caso il browser interpreta la richiesta aggiungendo http://. Se HSTS è attivo viene effettuato un redirect 301 (redirect permanente) verso la connessione con protocollo https. A partire da questo momento, per un anno, ogni volta che il browser riceverà una richiesta di connessione http per quel dominio (e per tutti i suoi sottodomini), proverà a inviare una richiesta https. Se la connessione https non fosse disponibile la connessione fallirà.

I vantaggi di abilitare HSTS per la sicurezza

Come anticipato, il principale vantaggio di adottare questo standard sta nella maggiore sicurezza delle connessioni. Come si è visto infatti, ad ogni connessione viene applicata l’intestazione https prima la richiesta venga risolta.

Non solo; se per qualunque motivo la connessione non è considerata sicura, ad esempio a causa di un certificato TSL giudicato non affidabile, il browser mostra un messaggio di errore all’utente bloccando la connessione.

HSTS si rivela poi uno strumento di grande importanza nel caso di attacchi “man-in-the-middle” dove cioè una connessione sicura viene convertita in una connessione in chiaro. HSTS in questa situazione si rivela cruciale perché indica al browser che le connessioni al sito devono utilizzare un certificato SSL o TSL valido.

C’è tuttavia un caso nel quale HSTS non assicura la totale sicurezza: alla prima connessione al sito, chi effettua l’attacco ha la possibilità manomettere l’intestazione HSTS rendendo la connessione soggetta a vulnerabilità. A questo scopo alcuni browser hanno iniziato ad aggiungere preventivamente ne proprio elenco i siti con HSTS. Questa funzionalità è detta HSTS preload.

Fonte: Cheap SSL Security

Come attivare HSTS

L’attivazione di HSTS può e dovrebbe avvenire su diversi livelli, browser e hosting:

  1. Aggiungere il dominio all’elenco di precaricamento HSTS dei browser. Per compiere questo occorrono alcuni passaggi:
    1. Dotare i siti di certificati di sicurezza validi e aggiornati
    2. Reindirizzare tutte le richieste http verso https per tutti i domini e sottodomini
    3. Implementare l’intestazione Strict-Transport-security sul dominio principale, impostando max-age di almeno un anno (31536000). Devono essere inoltre aggiunte le direttive includeSubDomanis e preload.
  2. Dichiarare l’utilizzo delle istruzioni HSTS sugli host al livello massimo di dominio, anche nel caso di siti serviti su domini di terzo livello. Es. https://sitoesempio.it

Dal momento che i domini vengono aggiunti e rimossi dalla lista di precaricamento al rilascio di una nuova versione del browser, i tempi perché questo aggiornamento sia disponibile potrebbero non essere brevissimi.

Durante i test per l’implementazione di HSTS sui browser è possibile che a causa di alcuni errori nel configurare il metodo, la connessione al sito venga bloccata. In questo caso occorre eliminare i dati dalla cache HSTS del browser. Ognuno di questi ha la sua procedura specifica che può essere effettuata in pochi semplici passaggi.

Attenzione però che una volta che un dominio viene aggiunto nella lista di precaricamento dei browser, l’eliminazione della cache non sarà sufficiente per resettare le impostazioni. Per scongiurare di vedere il proprio sito bloccato occorre assicurarsi preventivamente di avere accesso completo a tutte le risorse tramite HTTPS per un periodo sufficiente per poter intervenire in caso di problemi.

I vantaggi per la SEO

I vantaggi dell’adozione di HSTS e HTTPS non si limitano tuttavia al campo della sicurezza. Google ha dichiarato ormai da qualche anno che i siti serviti con protocollo HTTPS godono di una preferenza. Questo si traduce nella conferma che di fatto HTTPS sia diventato un ranking factor.

Certo, non si tratta di un fattore che permette a un sito in quinta pagina di competere per le prime posizioni della SERP, tuttavia è ormai chiaro che adottare una connessione sicura ha ormai un valore anche per il ranking.

Se questo non bastasse, ormai i browser come Chrome e Firefox indicano palesemente che un sito con http non è sicuro. Anche gli utenti meno esperti – forse soprattutto questi – sono quindi scoraggiati ad entrarvi, con conseguenze nefaste per il traffico e ancora una volta, indirettamente, per il ranking.

Conclusioni

Dotarsi di una connessione sicura con HSTS/HTTPS e certificati TLS/SSL aggiornati è ormai una strada inevitabile per chi non vuole rischiare di vedersi penalizzare dai motori di ricerca e dagli utenti stessi.