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 consente ad un sito web di comunicare ai browser che tutte le richieste devono essere effettuate usando HTTPS invece di HTTP.

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à browser

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic supportChrome Full support 4Edge Full support 12Firefox Full support 4IE Full support 11Opera Full support 12Safari Full support 7WebView Android Full support 4.4Chrome Android Full support 18Edge Mobile Full support YesFirefox Android Full support YesOpera Android ? Safari iOS Full support 8.4Samsung Internet Android Full support Yes

Legend

Full support  
Full support
Compatibility unknown  
Compatibility unknown

Vedi anche

Tag del documento e collaboratori

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