Che cos'è l'HSTS?

HSTS è un'intestazione di risposta di sicurezza Web. Il nome è l'acronimo di "HTTP Strict Transport Security". La funzione dell'intestazione HSTS è quella di forzare i browser a connettersi ai siti Web utilizzando HTTPS.

Suggerimento: HTTPS utilizza la crittografia per proteggere la tua connessione web dagli hacker che tentano di modificarla o monitorarla. HTTP non ha queste protezioni e quindi un hacker nel posto giusto potrebbe monitorare e modificare il tuo traffico HTTP.

Un'intestazione di risposta web è un pezzo di metadati inviato dal server quando risponde alle richieste web. Un sottoinsieme di queste intestazioni viene spesso definito intestazioni di sicurezza poiché il loro scopo è aumentare la sicurezza del sito Web e dell'utente.

L'intestazione HSTS ha due parti obbligatorie e due facoltative. Il nome dell'intestazione "Strict-Transport-Security" e quindi l'operatore e il valore "max-age" sono entrambi obbligatori. A volte viene utilizzata anche un'altra coppia di operatori, "includeSubDomains" e "preload".

Quando il browser riceve una risposta HTTPS con l'intestazione HSTS, gli viene chiesto di connettersi a questo sito Web e a tutte le risorse su di esso, utilizzando esclusivamente HTTPS per la durata del timer "max-età". “Max-age” è una variabile che descrive per quanto tempo un'impostazione deve essere ricordata dal browser. Il valore di "max-età" è elencato in secondi, il valore consigliato è "31536000", che è un anno.

L'idea è che entro la durata di questo timer, che viene reimpostato ad ogni successivo caricamento della pagina, il browser richiederà una connessione HTTPS e rifiuterà qualsiasi risorsa HTTP. Questo protegge dagli attacchi person-in-the-middle, in cui un hacker tra te e il server web può manipolare le risposte che ricevi.

Il punto principale in cui questo ti protegge è la prima connessione. In genere, quando ci si connette a un sito Web, è possibile richiedere il sito Web HTTP e quindi essere inoltrati al sito Web HTTPS. Sfortunatamente, un hacker in una posizione intermedia potrebbe impedire questo aggiornamento a HTTPS e potrebbe quindi rubare o monitorare la tua attività sul sito web. Una volta che l'intestazione HSTS è stata vista dal browser, tuttavia, il tuo browser effettuerà anche la prima connessione su HTTPS, proteggendoti dagli hacker.

HSTS impedisce inoltre il caricamento di risorse non sicure che potrebbero anche essere modificate in modo dannoso da un utente malintenzionato se fornite tramite HTTP.

L'operatore "includeSubDomains" viene utilizzato per indicare che l'intestazione deve essere applicata anche a tutti i sottodomini del sito web.

L'elenco di precarico HSTS

Potresti notare che HSTS non ti protegge ancora la prima volta che ti connetti a un sito web. È qui che entra in gioco l'operatore "preload". I siti Web possono presentarsi per essere inclusi nell'elenco di precaricamento HSTS, l'operatore "precaricamento" è un indicatore obbligatorio se questo è il caso. L'elenco di precaricamento HSTS viene regolarmente aggiornato e memorizzato nel browser, se un sito è incluso in questo, il browser applicherà le protezioni HSTS ad esso. Ciò accade anche alla prima connessione prima che il browser possa aver visto l'intestazione della risposta HSTS.

Suggerimento: è necessario aggiungere un'età massima di un anno o più all'elenco di precaricamento HSTS.

Problemi con HSTS

Uno dei punti principali di HSTS è che presenta un messaggio di errore in caso di problemi con la connessione HTTPS. Come ulteriore precauzione di sicurezza, gli utenti non dovrebbero essere in grado di ignorare i messaggi di errore HSTS, come farebbero con i normali errori HTTPS.

Sfortunatamente, ciò può causare problemi se un'azienda implementa HSTS prima dell'intero sito Web e ogni risorsa utilizzata su di esso supporta HTTPS. In questo caso, gli utenti inizieranno a vedere messaggi di errore di sicurezza HSTS che non possono ignorare, sostanzialmente interrompendo completamente il sito web. La parte peggiore è che la semplice rimozione dell'intestazione HSTS non risolve il problema per quegli utenti, poiché il loro browser continuerà a imporre HSTS per l'"età massima" potenzialmente lunga un mese.

Pertanto, è di fondamentale importanza che venga utilizzata una breve "età massima" quando si distribuisce per la prima volta l'intestazione. Se ci sono problemi, persistono solo per un breve periodo una volta scoperti. Solo una volta che sei sicuro che il tuo sito web è completamente conforme a HSTS dovresti configurare un timer HSTS lungo.

Mancia: È anche possibile impostare una "età massima" di 0, questo essenzialmente rimuove la voce HSTS salvata da chiunque la veda. Questo può aiutare se c'è un problema, ma interesserà solo gli utenti quando e se decidono di riprovare.