HTTP Strict Transport Security

procedura per implementare la sicurezza delle comunicazioni web proteggendo il canale HTTPS e per evitare dirottamenti di sessione

Storia della specifica

HSTS è la concretizzazione di uno degli aspetti della visione progettuale di Jeff Hodges e Andy Steingruebl per migliorare la sicurezza del web, e presentata nel 2010 all'interno del loro articolo 2010 intitolato The Need for Coherent Web Security Policy Framework(s).[1]

Le specifiche HSTS si basano sul contributo originale di Jackson e Barth descritto nell'articolo ForceHTTPS: Protecting High-Security Web Sites from Network Attacks.[2]

La prima bozza originale delle specifiche fu scritta da Jeff Hodges[3] di PayPal, Collin Jackson[4] e Adam Barth[5] e pubblicata 18 settembre 2009.[6]

La prima specifica di STS fu resa pubblica il 18 dicembre 2009 e corrispose all'ultima cosiddetta "versione della comunità", che beneficiava appunto del riscontro pubblico.[7]

In seguito all'approvazione del 2 ottobre 2012 da parte dell'IESG, la specifica di HSTS è stata pubblicata come RFC Proposed Standard (standard proposto) il 19 novembre 2012 nel RFC 6797 [8]. La prima versione originale del documento fu però depositata già il 17 giugno 2010 come Internet-Draft, momento nel quale il titolo della specifica fu cambiato da "Strict Transport Security" (STS) al più preciso "HTTP Strict Transport Security".[9] Ciononostante, l'intestazione HTTP definita dalle specifiche ha mantenuto il nome di "Strict-Transport-Security".

Limiti

Di fronte ad attacchi attivi, la presenza di HSTS non è in grado di proteggere la prima richiesta ad un'applicazione web, quando quella sia veicolata su un protocollo non sicuro come HTTP in chiaro o quando il relativo URI è stato ottenuto su un canale insicuro.[10] Lo stesso vale per la prima richiesta che sia effettuata dopo la scadenza del periodo precisato dal parametro max-age annunciato nella politica HSTS. I siti dovrebbero pertanto impostare una durata di diversi giorni o di diversi mesi, a seconda dall'attività e comportamento degli utenti. I browser Google Chrome, Mozilla Firefox e Internet Explorer/Microsoft Edge si occupano di questo limite del protocollo implementando una «lista preliminare STS»: un elenco di siti noti che supportano HSTS[11][12][13] che è distribuito direttamente all'interno del browser e che fa sì che questo usi HTTPS anche per la prima richiesta. Ciononostante, come precedentemente accennato, tale lista non può elencare ogni sito web presente su Internet. Una possibile soluzione potrebbe essere realizzata usando i record DNS per dichiarare la politica HSTS ed accedendo a tali informazioni col protocollo DNSSEC, eventualmente avvalendosi di impronte digitali dei certificati per garantirne la validità, che a sua volta richiede un client di risoluzione DNS che verifichi quest'ultima per evitare problematiche nell'ultimo miglio di connessione.[14]

Anche quando provvisto della «lista preliminare STS», il meccanismo HSTS non è comunque in grado di proteggere da attacchi che riguardino lo stesso livello di sicurezza TLS, quali ad esempio il BEAST o il CRIME ideati da Juliano Rizzo e Thai Duong: il mantenimento della politica HSTS è ininfluente e irrilevante di fronte a questo tipo di attacchi.

Per una più estesa discussione della sicurezza di HSTS, si veda il RFC 6797.[15]

Supporto da parte dei browser

 
Pagina di impostazioni per HTTPS Strict Transport Security in Chromium 45, che mostra lo stato della politica di sicurezza per il dominio di Wikipedia in inglese.

Buone norme per la messa in opera

A seconda della specifica messa in opera, certe buone norme consentono di evitare alcune minacce alla sicurezza, come gli attacchi con iniezione di cookie.

  • Gli host HSTS dovrebbero dichiarare la politica HSTS nel loro nome di livello massimo: per esempio, un server in ascolto su https://sub.example.com dovrebbe rispondere con l'intestazione HSTS anche per richieste a https://example.com .
  • Un host che serve https://www.example.com dovrebbe aggiungere una richiesta ad una risorsa di https://example.com , cosicché HSTS sia impostato anche per il dominio padre. In tal modo l'utente è protetto da eventuali cookie injection effettuati da un man-in-the-middle che potrebbe iniettare un riferimento verso il dominio superiore o un altro dello stesso livello (come http://nonexistentpeer.example.com) dove risponderebbe.

Note

  1. ^ Hodges, Jeff; Steinguebl, Andy (29 October 2010).
  2. ^ "ForceHTTPS: Protecting High-Security Web Site from Network Attacks".
  3. ^ "Jeff Hodges's homepage".
  4. ^ "Collin Jackson's homepage".
  5. ^ "Adam Barth's homepage".
  6. ^ "Strict Transport Security -05". 18 September 2009.
  7. ^ "Strict Transport Security -06". 18 December 2009.
  8. ^ "[websec] Protocol Action: 'HTTP Strict Transport Security (HSTS)' to Proposed Standard (draft-ietf-websec-strict-transport-sec-14.txt)". 2 Oct 2012.
  9. ^ Jeff Hodges (30 June 2010).
  10. ^ Jeff Hodges, Jackson, Collin e Barth, Adam, Section 14.6. Bootstrap MITM Vulnerability, su RFC 6797, IETF, November 2012. URL consultato il 21 novembre 2012.
  11. ^ Errore nelle note: Errore nell'uso del marcatore <ref>: non è stato indicato alcun testo per il marcatore preloading_hsts_chromium
  12. ^ a b Errore nelle note: Errore nell'uso del marcatore <ref>: non è stato indicato alcun testo per il marcatore preloading_hsts_mozillla
  13. ^ Errore nelle note: Errore nell'uso del marcatore <ref>: non è stato indicato alcun testo per il marcatore iepreload
  14. ^ Butcher, Simon (11 September 2011).
  15. ^ Jeff Hodges, Jackson, Collin e Barth, Adam, Section 14. Security Considerations, su RFC 6797, IETF, November 2012. URL consultato il 21 novembre 2012.
  16. ^ The Chromium Developers, Strict Transport Security - The Chromium Projects, su dev.chromium.org, 17 novembre 2010. URL consultato il 17 novembre 2010.
  17. ^ Jeff Hodges (18 September 2009). "fyi: Strict Transport Security specification".
  18. ^ "HTTP Strict Transport Security".
  19. ^ Opera Software ASA, Web specifications support in Opera Presto 2.10, su opera.com, 23 aprile 2012. URL consultato l'8 maggio 2012.
  20. ^ @agl__ (Adam Langley).
  21. ^ HTTP Strict Transport Security comes to Internet Explorer 11 on Windows 8.1 and Windows 7, su windows.com. URL consultato il 12 giugno 2015.
  22. ^ Internet Explorer Web Platform Status and Roadmap, su status.modern.ie. URL consultato il 14 aprile 2014.
  23. ^ "Project Spartan and the Windows 10 January Preview Build - IEBlog".

Voci correlate