La sicurezza dei sistemi e dei dati delle persone passa anche dalla comunicazione tra il client ed il server, ed HSTS, HTTP Strict Transport Security, serve per aumentare la sicurezza. Ormai tutti gli ecommerce e siti internet, che per fornire il servizio hanno bisogno dei dati della persona, utili. utilizzano https come protocollo almeno dal momento in cui iniziano a trattare questi dati. Ma qua sorge il problema: siamo sicuri che tutte le chiamate siano effettuate in modo criptato con https?


Nella maggioranza dei casi la prima chiamata è sempre HTTP ed il sistema farà un redirect alla pagina HTTPS.
Poco male si dirà, ci sarà due chiamate e il cliente aspetterà. Il problema è però che la prima richiesta è stata effettuata in chiaro e dei dati sensibili potrebbero esser stati inviati in maniera non criptata.
Per evitare tutto questo possiamo fare in modo che il sito sia sempre in HTTPS istruendo il browser che quel dominio lavora solo in HTTPS per un certo periodo di tempo.

HSTS ed i browser

Il funzionamento è semplice: tra gli header della risposta HTTPS da parte di un sito “HSTS enabled”, si deve inserire, tramite ad esempio una riga in virtualhost, un nuovo header Strict-Transport-Security. Il valore di questo campo è un max-age che specifica in secondi per quanto tempo tale dominio dovrà essere richiesto solo tramite HTTPS, qualsiasi cosa l’utente scriva sulla barra degli indirizzi. I moderni browser, che ormai supportano tutti HSTS, si tengono una lista dei domini SOLO HTTPS per il periodo specificato, quindi mettendo un numero di secondi molto alto il sito diventa più sicuro oltre a diminuire chiamate di redirect.

Esempio: