Questa traduzione è incompleta. Collabora alla traduzione di questo articolo dall’originale in lingua inglese.

L'header di risposta HTTP Strict-Transport-Security  (spesso abbreviato come HSTS)  è una funzionalità di sicurezza che permette ad un sito web di informare i browser a comunicare esclusivamente usando HTTPS, invece che HTTP.

Header type Response header
Forbidden header name no

Sintassi

Strict-Transport-Security: max-age=<expire-time>
Strict-Transport-Security: max-age=<expire-time>; includeSubDomains
Strict-Transport-Security: max-age=<expire-time>; preload

Direttive

max-age=<expire-time>
Il tempo, in secondi, per il quale il browser deve ricordare che il sito è accessibile solamente utilizzando HTTPS.
includeSubDomains Optional
Se questo parametro opzionale è specificato, la regola si applica anche a tutti i sotto domini.
preload Optional
Consulta Preloading Strict Transport Security per i dettagli. Non è parte delle specifiche.

Descrizione

Se un sito web accetta connessioni attraverso HTTP e reindirizza su HTTPS, l'utente potrebbe inizializzare la connessione non cifrata, prima di essere rediretto, ad esempio se digitasse http://www.foo.com/ o solamente foo.com.

Questo sistema apre ad un potenziale attacco di tipo man-in-the-middle, dove la redirezione può essere sfruttata per indirizzare l'attaccante ad un sito malevolo invece che alla versione sicura della pagina originale.

L'header HTTP Strict Transport Security consente ad un sito web di informare il browser che non dovrebbe mai caricare il sito utilizzando HTTP e dovrebbe automaticamente convertire i tentativi di accesso al sito tramite HTTP, in HTTPS.

Nota: L'header Strict-Transport-Security è ignorato dal browser quanto il sito viene caricato tramite HTTP; questo perchè un attaccante potrebbe intercettare la connessione HTTP e iniettare o modificare l'header. Quando il sito è caricato tramite HTTPS senza errori di certificato, il browser saprà che il sito è disponibile tramite HTTPS e rispetterà l'header Strict-Transport-Security.

Uno scenario d'esempio

Effetti l'accesso ad una rete WiFi aperta all'aereoporto e inizi a navigare nel web, visitando il sito della tua banca per controllare il tuo saldo e per pagare un paio di bollette. Sfortunatamente, l'access point che stai utilizzando è in realtà il computer di un hacker che sta intercettando le tue richieste originali in HTTP e reindirizzandoti ad un sito web clone della tua banca invece che al sito originale. Ora tutti i tuoi dati privati sono esposti all'hacker.

Strict Transport Security risolve questo problema; a patto che tu abbia già visitato in precedenza il sito della tua banca utilizzando HTTPS e a patto che il sito web utilizzi Strict Transport Security, il tuo browser utilizzerà automaticamente HTTPS, che impedisce agli hacker di effettuare un attacco di tipo man-in-the-middle.

Come viene gestito dal browser

La prima volta che il tuo sito web viene contattato utilizzando HTTPS e restituisce l'header Strict-Transport-Security, il browser registra questa informazione, in modo che tutti i futuri tentativi di caricare il sito attraverso HTTP verranno modificati utilizzando HTTPS.

Quando il tempo di validità specificato dall'header Strict-Transport-Security scade, il seguente tentativo di caricare il sito web via HTTP procederà normalmente invece che utilizzare automaticamente HTTPS.

Ogni qual volta l'header Strict-Transport-Security viene inviato al browser, il tempo di validità sarà aggiornato per quel sito, quindi i siti possono aggioranre questa informazione per prevenire la scadenza della validità. Nel caso in cui fosse necessario disabilitare Strict Transport Security, impostare l'attributo max-age a 0 (su una connession HTTPS) porterà immediatamente alla scadenza dell'header stesso, consentendo l'accesso via HTTP.

Precaricamento di Strict Transport Security

Google mantiene un servizio di precaricamento per HSTS. Seguendo le linee guida e inviando con successo il tuo dominio, i browser non si connetteranno mai allo stesso utilizzando connessioni insicure. Sebbene il servizio sia ospitato da Google, tutti i browser hanno dichiarato l'intento di iniziare ad utilizzare (o effettivamente utilizzare) la lista di precaricamento.

Esempio

Tutti i presenti e futuri sottodomini saranno contattati in HTTPS per un max-age di 1 anno. Questo impedisce l'accesso alle pagine o ai sottodomini che possono essere forniti solo tramite HTTP.

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

Specifiche

Specifica Stato Commento
HTTP Strict Transport Security (HSTS) IETF RFC Initial definition

Compatibilità con i browser

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic Support4.012411127
FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic Support4.418 (Yes) (Yes) ? ?8.4

Guarda anche

Tag del documento e collaboratori

 Hanno collaborato alla realizzazione di questa pagina: m3liot
 Ultima modifica di: m3liot,