HTTP streng transportsikkerhet

HTTP Strict Transport Security eller HSTS (på italiensk rigid sikkerhet for transport av HTTP ) er en prosedyre som implementerer en sikkerhetspolicy for nettkommunikasjon , nødvendig for å beskytte HTTPS -kanalen mot sikkerhetsdegraderingsangrep ( nedgradering ) og svært nyttig for beskyttelse mot øktkapring. HSTS lar webserveren erklære at nettlesere og enhver annen type klient må kommunisere med den utelukkende gjennom sikre tilkoblinger på HTTPS- protokollen og ikke på enkel HTTP[1] . Prosedyren er en IETF Internett-standard , regulert av RFC 6797.

HSTS-policyen [2] indikeres av serveren til brukeragenten ved å spesifisere en bestemt overskrift i HTTP - svarmeldingene , kalt " Strict-Transport-Security" som spesifiserer tidsperioden som klienten må få tilgang til serveren i en nødvendigvis sikker modus.

Historien til spesifikasjonen

HSTS er legemliggjørelsen av ett aspekt av Jeff Hodges og Andy Steingruebls designvisjon for å forbedre nettsikkerhet, og presentert i 2010 i deres artikkel fra 2010 med tittelen The Need for Coherent Web Security Policy Framework (s) . [3]

HSTS-spesifikasjonen er basert på Jackson og Barths originale bidrag beskrevet i ForceHTTPS-artikkelen: Protecting High-Security Web Sites from Network Attacks . [4]

Det første originale utkastet til spesifikasjonen ble skrevet av PayPals Jeff Hodges [ 5 ] , Collin Jackson [6] og Adam Barth [7] og publisert 18. september 2009. [8]

Den første spesifikasjonen av HSTS ble offentliggjort 18. desember 2009 og tilsvarte den siste såkalte «community-versjonen», som hadde godt av offentlig tilbakemelding. [9]

Etter godkjenning av IESG 2. oktober 2012 ble HSTS-spesifikasjonen publisert som en RFC Proposed Standard 19. november 2012 i RFC 6797 [10] . Den første originalversjonen av dokumentet ble imidlertid allerede arkivert 17. juni 2010 som Internet-Draft , da tittelen på spesifikasjonen ble endret fra "Strict Transport Security" (STS) til den mer presise "HTTP Strict Transport". Sikkerhet". [11] Likevel har HTTP-headeren definert av spesifikasjonen beholdt navnet "Strict-Transport-Security".

Prosedyreoversikt

En server implementerer HSTS-policyen hvis den utsteder overskriften i en HTTPS-kommunikasjonsmelding (over HTTP ignoreres disse overskriftene i stedet). [12] For eksempel kan en server sende en header som ber om at hver forespørsel adressert til den i det påfølgende året nødvendigvis må sendes over HTTPS. I dette tilfellet, siden maks-alder- parameteren er uttrykt i sekunder og 31 536 000 sekunder er en god tilnærming til et år, vil overskriften være:

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

Når en nettapplikasjon [13] erklærer en HSTS-policy til brukeragenter , oppfører klientene som støtter mekanismen seg som beskrevet nedenfor. [2]

  1. Hver usikker lenke omdannes til en sikker lenke, det vil si at den for eksempel http://example.com/some/page/endres til https://example.com/some/page/ før den ressursen brukes.
  2. Hvis tilkoblingssikkerheten ikke anses som pålitelig, for eksempel hvis TLS -sertifikatet ikke er pålitelig, vises en feilmelding til brukeren og tilgang til webapplikasjonen forhindres. [2]

HSTS-policyen bidrar til å beskytte nettapplikasjonsbrukere fra visse passive ( avlytting ) eller aktive angrep: [14] i et mann-i-midten-angrep er det mye vanskeligere å avskjære spørsmål og svar mellom brukeren og applikasjonsnettet når førstnevnte er i HSTS-modus sammenlignet med sistnevnte.

Anvendelse

Den viktigste sikkerhetssårbarheten som kan unngås av HSTS er den såkalte man-in-the-middle med SSL-stripping- teknikken , offentlig illustrert for første gang i 2009 av Moxie Marlinspike i sin tale " New Tricks For Defeating SSL I praksis » (Ta i bruk nye triks for å beseire SSL) presentert på BlackHat Federal . [15] [16] Dette angrepet består i å stille om å konvertere en sikker HTTP-tilkobling, støttet av SSL eller TLS , til en klar HTTP-tilkobling: brukeren kan bekrefte at tilkoblingen faktisk ikke er sikker, men han har ingen måte å vite at den bør være. Gitt at flere nettsteder ikke bruker TLS / SSL, er det faktisk ingen måte å forstå, hvis man ikke kjenner på forhånd det spesifikke nettstedet, om usikkerheten til forbindelsen er effekten av et angrep, eller om det er vanlig oppførsel . nettapplikasjon. Videre genererer ikke sikkerhetsregresjonsprosessen noen advarselsmeldinger til brukeren, noe som gjør angrepet diskret i øynene til nesten hvem som helst. Marlinspikes sslstrip-verktøy automatiserer et slikt angrep fullstendig.

HSTS håndterer dette problemet [14] ved å informere nettleseren om at dens tilkoblinger til nettstedet alltid bør bruke TLS / SSL. Siden HSTS-overskriften fortsatt kan tukles med av en angriper ved første besøk av en bruker, prøver Google Chrome , Mozilla Firefox , Internet Explorer og Microsoft Edge å begrense problemet ved å sette inn en foreløpig liste over HSTS-nettsteder. [17] [18] [19] I neste avsnitt Limits vil vi også diskutere hvordan denne løsningen nødvendigvis er utilstrekkelig, gitt at listen ovenfor ikke kan være uttømmende.

HSTS bidrar også til å forhindre tyveri av påloggingsinformasjon til HTTP-informasjonskapselbaserte nettsteder , et angrep som er mulig med lett tilgjengelige verktøy, for eksempel Firesheep . [20]

Siden HSTS har tidsbegrensninger, er protokollen følsom for angrep som innebærer å flytte offerets klokke, for eksempel ved å sende falske NTP -pakker . [21]

Begrensninger

I møte med aktive angrep, er tilstedeværelsen av HSTS ikke i stand til å beskytte den første forespørselen til en nettapplikasjon, når den formidles på en usikker protokoll som HTTP i klartekst eller når den relative URI er innhentet på en usikker kanal ... [22] Det samme gjelder den første forespørselen som fremsettes etter utløpet av perioden spesifisert av parameteren max-ageannonsert i HSTS-policyen. Nettsteder bør derfor angi en varighet på flere dager eller flere måneder, avhengig av brukeraktivitet og atferd. Nettleserne Google Chrome , Mozilla Firefox og Internet Explorer / Microsoft Edge adresserer denne protokollbegrensningen ved å implementere en "STS foreløpig liste": en liste over kjente nettsteder som støtter HSTS [17] [18] [19] som distribueres direkte til inne i nettleseren og som får den til å bruke HTTPS også for den første forespørselen. Men, som tidligere nevnt, kan ikke denne listen liste alle nettsteder på Internett. En mulig løsning kan oppnås ved å bruke DNS -poster for å deklarere HSTS-policyen og få tilgang til denne informasjonen med DNSSEC -protokollen , eventuelt ved å bruke sertifikatfingeravtrykk for å sikre deres gyldighet, noe som igjen krever en DNS-oppløsningsklient for å verifisere dette. sist for å unngå problemer i den siste milen med forbindelse . [23]

Selv når den er utstyrt med den "foreløpige STS-listen", er ikke HSTS-mekanismen i alle tilfeller i stand til å beskytte mot angrep som involverer samme sikkerhetsnivå som TLS, som for eksempel BEAST eller CRIME designet av Juliano Rizzo og Thai Duong: vedlikehold av HSTS-policy er irrelevant og irrelevant i møte med denne typen angrep.

For en mer omfattende diskusjon av HSTS-sikkerhet, se RFC 6797 . [24]

Nettleserstøtte

Gode ​​regler for implementering

Avhengig av den spesifikke implementeringen, lar visse gode fremgangsmåter deg unngå visse sikkerhetstrusler, for eksempel angrep på injeksjon av informasjonskapsler.

Merknader

  1. ^ HTTPS angir HTTP over TLS/SSL - laget .
  2. ^ a b c Hodges, Jeff; Jackson, Collin; Barth, Adam (november 2012).
  3. ^ Hodges, Jeff; Steinguebl, Andy (29. oktober 2010).
  4. ^ "ForceHTTPS: Beskyttelse av høysikkerhetsnettsted mot nettverksangrep" , på crypto.stanford.edu .
  5. ^ "Jeff Hodges' hjemmeside" , på kingsmountain.com .
  6. ^ "Collin Jacksons hjemmeside" , på collinjackson.com .
  7. ^ "Adam Barths hjemmeside" , på adambarth.com .
  8. ^ "Strict Transport Security -05" , på lists.w3.org , 18. september 2009.
  9. ^ "Strict Transport Security -06" , på lists.w3.org , 18. desember 2009.
  10. ^ "[websec] Protokollhandling: 'HTTP Strict Transport Security (HSTS)' til foreslått standard (draft-ietf-websec-strict-transport-sec-14.txt)" , på ietf.org , 2. oktober 2012.
  11. ^ Jeff Hodges (30. juni 2010).
  12. ^ "HTTP Strict Transport Security" , på developer.mozilla.org .
  13. ^ Daniel Nations
  14. ^ a b Jeff Hodges, Collin Jackson og Adam Barth, 2.3. Trusselmodell , RFC 6797 , IETF, november 2012. Hentet 21. november 2012 .
  15. ^ Nye triks for å beseire SSL i praksis ( PDF ).
  16. ^ Beseire SSL ved å bruke Sslstrip , på YouTube .
  17. ^ a b Adam Langley, Strict Transport Security , The Chromium Projects , 8. juli 2010. Hentet 22. juli 2010 .
  18. ^ a b c David Keeler (1. november 2012).
  19. ^ a b Mike Bell og David Walp, HTTP Strict Transport Security kommer til Internet Explorer , på blogs.msdn.com , 16. februar 2015. Hentet 16. februar 2015 .
  20. ^ Jeff Hodges, Firesheep and HSTS (HTTP Strict Transport Security) , på identitymeme.org , 31. oktober 2010. Hentet 8. mars 2011 .
  21. ^ Jose Selvi, Bypassing HTTP Strict Transport Security ( PDF ), på blackhat.com , 17. oktober 2014. Hentet 22. oktober 2014 .
  22. ^ Jeff Hodges, Collin Jackson og Adam Barth, avsnitt 14.6. Bootstrap MITM Vulnerability , på RFC 6797 , IETF, november 2012. Hentet 21. november 2012 .
  23. ^ Simon Butcher (11. september 2011).
  24. ^ Jeff Hodges, Collin Jackson og Adam Barth, seksjon 14. Security Considerations , RFC 6797 , IETF, november 2012. Hentet 21. november 2012 .
  25. ^ The Chromium Developers, Strict Transport Security - The Chromium Projects , på dev.chromium.org , 17. november 2010. Hentet 17. november 2010 .
  26. ^ Jeff Hodges (18. september 2009). "fyi: Strict Transport Security Specification" , på lists.w3.org .
  27. ^ "HTTP Strict Transport Security" , på blog.mozilla.org .
  28. ^ Opera Software ASA, støtte for nettspesifikasjoner i Opera Presto 2.10 , på opera.com 23. april 2012. URL åpnet 8. mai 2012 (arkivert fra originalen 4. mai 2012) .
  29. ^ @agl__ (Adam Langley).
  30. ^ HTTP Strict Transport Security kommer til Internet Explorer 11 på Windows 8.1 og Windows 7 , på windows.com . Hentet 12. juni 2015 .
  31. ^ Internet Explorer Web Platform Status and Roadmap , på status.modern.ie . Hentet 14. april 2014 (arkivert fra originalen 29. juni 2015) .
  32. ^ "Project Spartan and the Windows 10 January Preview Build - IEBlog" , på blogs.msdn.com .

Relaterte elementer

Eksterne lenker