HTTP Strict Transport Security: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Atarubot (discussione | contributi)
Corretti parametri ref duplicati
Atarubot (discussione | contributi)
template citazione; rinomina/fix nomi parametri; converto template cite xxx -> cita xxx; fix formato data; elimino parametri vuoti
Riga 31:
# Ogni collegamento non sicuro è trasformato in un collegamento sicuro,  cioè, per esempio, <code><nowiki>http://example.com/some/page/</nowiki></code> è modificato in <code><nowiki>https://example.com/some/page/</nowiki></code> ''prima'' che tale risorsa utilizzata.
# Se la sicurezza della connessione non è considerata affidabile, ad esempio se il certificato [[Transport Layer Security|TLS]] non è tale, un messaggio d'errore è mostrato all'utente e l'accesso all'applicazione web è impedito.<ref name="hsts-no-user-recourse"><cite class="citation web" contenteditable="false">Hodges, Jeff; Jackson, Collin; Barth, Adam (November 2012). </cite></ref>
La politica HSTS aiuta a proteggere gli utenti delle applicazioni web da certi attacchi passivi (''eavesdropping'') o attivi:<ref name="hsts-threats-addressed">{{Template:CiteCita web|url = https://tools.ietf.org/html/rfc6797#section-2.3|title titolo= 2.3. Threat Model|work sito= RFC 6797|publisher editore= IETF|last cognome= Hodges|first nome= Jeff|author2 autore2= Jackson, Collin|author3 autore3= Barth, Adam|date data= November 2012|accessdate accesso= 21 Novembernovembre 2012}}</ref>  in un  [[Attacco man in the middle|attacco man-in-the-middle]] è molto più difficile intercettare domande e risposte tra l'utente e l'applicazione web quando il primo è in modalità HSTS rispetto alla seconda.
 
== Applicabilità ==
 
La vulnerabilità di sicurezza più importante che possa essere scongiurata da HSTS è il cosiddetto [[Attacco man in the middle|man-in-the-middle]] con la tecnica di ''SSL-stripping'', illustrata pubblicamente per la prima volta nel 2009 da Moxie Marlinspike nel suo intervento «''New Tricks For Defeating SSL In Practice»'' (Messa in pratica dei nuovi trucchi per sconfiggere SSL) presentato al ''BlackHat Federal''.<ref>{{Template:CiteCita journalpubblicazione|url = https://blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf|title titolo= New Tricks For Defeating SSL In Practice|work = }}</ref><ref>[https://www.youtube.com/watch?v=MFol6IMbZ7Y Defeating SSL Using Sslstrip]<span contenteditable="false"> on </span>[[YouTube]]</ref>
Questo attacco consiste nel convertire silenziosamente una connessione HTTP sicura, appoggiata a [[Transport Layer Security|SSL]] o a [[Transport Layer Security|TLS]], in una connessione HTTP in chiaro: l'utente può verificare che effettivamente la connessione non sia sicura, ma non ha alcun modo di sapere che essa debba esserlo.
Dato che diversi siti non usano TLS/SSL, infatti, non c'è modo di capire, se non conoscendo a priori lo specifico sito, se l'insicurezza della connessione sia l'effetto di un attacco, o se invece è il comportamento abituale dell'applicazione web.
Riga 41:
 
HSTS si occupa di questo problema<ref name="hsts-threats-addressed"/> informando il browser che le sue connessioni al sito dovrebbero fare sempre uso di  TLS/SSL.
Visto che l'intestazione HSTS può però essere comunque manomessa da un attaccante nel momento della prima visita da parte di un utente, [[Google Chrome]], [[Mozilla Firefox]], [[Internet Explorer]] e [[Microsoft Edge]] cercano di limitare la problematica  inserendo un elenco preliminare dei siti HSTS.<ref name="preloading_hsts_chromium">{{Template:CiteCita web|url = https://www.chromium.org/sts|author autore= Adam Langley|title titolo= Strict Transport Security|work sito= The Chromium Projects|date data= 8 Julyluglio 2010|accessdate accesso= 22 Julyluglio 2010}}</ref><ref name="preloading_hsts_mozillla"><cite class="citation web" contenteditable="false">David Keeler (1 November 2012). </cite></ref><ref name="iepreload">{{Template:CiteCita web|url = http://blogs.msdn.com/b/ie/archive/2015/02/16/http-strict-transport-security-comes-to-internet-explorer.aspx|title titolo= HTTP Strict Transport Security comes to Internet Explorer|accessdate accesso= 16 Februaryfebbraio 2015|author autore= Bell, Mike; Walp, David|date data= February16 16,febbraio 2015}}</ref>
Nel prossimo paragrafo [[Strict Transport Security|Limiti]] si discuterà anche di come questa soluzione sia necessariamente insufficiente, dato che il suddetto elenco non può essere esaustivo.
 
HSTS aiuta anche a evitare il furto di credenziali di accesso a siti web basati su [[Cookie|cookie HTTP]], un attacco praticabile con strumenti facilmente disponibili, quale [[Firesheep]].<ref>{{Template:CiteCita web|url = http://identitymeme.org/archives/2010/10/29/firesheep-and-hsts-http-strict-transport-security/|author autore= Jeff Hodges|title titolo= Firesheep and HSTS (HTTP Strict Transport Security)|date data= 31 Octoberottobre 2010|accessdate accesso= 8 Marmarzo 2011}}</ref>
 
Dato che HSTS ha limiti temporali, il protocollo è sensibile ad attacchi che prevedono di spostare l'orologio della vittima, per esempio inviando falsi pacchetti . using false [[Network Time Protocol|NTP]] packets.<ref>{{Template:CiteCita web|url = https://www.blackhat.com/docs/eu-14/materials/eu-14-Selvi-Bypassing-HTTP-Strict-Transport-Security.pdf|title titolo= Bypassing HTTP Strict Transport Security|date data= 17 ottobre 2014-10-17|accessdate accesso= 22 ottobre 2014-10-22|author autore= Jose Selvi}}</ref>
 
== 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 [[Uniform Resource Identifier|URI]] è stato ottenuto su un canale insicuro.<ref name="hsts-bootstrap-mitm">{{Template:CiteCita web|url = https://tools.ietf.org/html/rfc6797#section-14.6|title titolo= Section 14.6. Bootstrap MITM Vulnerability|work sito= RFC 6797|publisher editore= IETF|last cognome= Hodges|first nome= Jeff|author2 autore2= Jackson, Collin|author3 autore3= Barth, Adam|date data= November 2012|accessdate accesso= 21 Novembernovembre 2012}}</ref>
Lo stesso vale per la prima richiesta che sia effettuata dopo la scadenza del periodo precisato dal parametro <code><nowiki>max-age</nowiki></code> 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.
Riga 59:
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 [[Transport Layer Security|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.<ref name="hsts-seccons">{{Template:CiteCita web|url = https://tools.ietf.org/html/rfc6797#section-14|title titolo= Section 14. Security Considerations|work sito= RFC 6797|publisher editore= IETF|last cognome= Hodges|first nome= Jeff|author2 autore2= Jackson, Collin|author3 autore3= Barth, Adam|date data= November 2012|accessdate accesso= 21 Novembernovembre 2012}}</ref>
 
== Supporto da parte dei browser ==
[[File:Chromium HSTS settings screenshot.png|alt=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.|thumb|right|428x428px|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.]]
 
*[[Chromium]] e [[Google Chrome]] dalla versione 4.0.211.0<ref name="chromium_sts">{{Template:CiteCita web|url = https://dev.chromium.org/sts|author autore= The Chromium Developers|title titolo= Strict Transport Security - The Chromium Projects|date data= 17 Novembernovembre 2010|accessdate accesso= 17 Novembernovembre 2010}}</ref><ref><cite class="citation web" contenteditable="false">Jeff Hodges (18 September 2009). [http://lists.w3.org/Archives/Public/public-webapps/2009JulSep/1148.html "fyi: Strict Transport Security specification"]<span class="reference-accessdate">. </span></cite></ref>
* [[Mozilla Firefox|Firefox]] dalla versione 4;<ref><cite class="citation web">[https://blog.mozilla.org/security/2010/08/27/http-strict-transport-security/ "HTTP Strict Transport Security"]. </cite></ref> la versione 17 contiene una lista di siti che supportano HSTS.<ref name="preloading_hsts_mozillla"/>
* [[Opera (browser)|Opera]] dalla versione 12<ref name="opera_presto">{{Template:CiteCita web|url = http://www.opera.com/docs/specs/presto2.10/#m210-244|author autore= Opera Software ASA|title titolo= Web specifications support in Opera Presto 2.10|date data= 23 Aprilaprile 2012|accessdate accesso= 8 Maymaggio 2012}}</ref>
* [[Safari (browser)|Safari]] da [[OS X Mavericks]]<ref><cite class="citation web">@agl__ (Adam Langley). </cite></ref>
* [[Internet Explorer 11]] su [[Windows 8.1]] e [[Windows 7]] qualora sia installato [https://support.microsoft.com/kb/3058515 KB 3058515] (pubblicato nel giugno 2015).<ref>{{Template:CiteCita web|url = http://blogs.windows.com/msedgedev/2015/06/09/http-strict-transport-security-comes-to-internet-explorer-11-on-windows-8-1-and-windows-7/|title titolo= HTTP Strict Transport Security comes to Internet Explorer 11 on Windows 8.1 and Windows 7|work sito= windows.com|accessdate accesso= 12 Junegiugno 2015}}</ref>
* [[Microsoft Edge]] e [[Internet Explorer 11]] su [[Windows 10]].<ref>{{Template:CiteCita web|url = https://status.modern.ie/httpstricttransportsecurityhsts|title titolo= Internet Explorer Web Platform Status and Roadmap|accessdate accesso= 14 Aprilaprile 2014}}</ref><ref><cite class="citation web" contenteditable="false">[http://blogs.msdn.com/b/ie/archive/2015/01/22/project-spartan-and-the-windows-10-january-preview-build.aspx "Project Spartan and the Windows 10 January Preview Build - IEBlog"]<span class="reference-accessdate">. </span></cite></ref>
 
== Buone norme per la messa in opera ==