Gebruik een krachtig HSTS-beleid

Plattetekstprotocollen, zoals HTTP, kunnen kwetsbaar zijn voor afluisteraanvallen , waarbij een aanvaller de verzonden inhoud kan lezen. Transport Layer Security (TLS) kan het verkeer versleutelen en het voor aanvallers aanzienlijk moeilijker maken om deze gegevens te gebruiken als ze worden onderschept.

Aanvallers kunnen TLS echter omzeilen door versleutelde verbindingen te dwingen om platte tekst HTTP te gebruiken. Om dit probleem op te lossen, kunt u de HTTP Strict Transport Security (HSTS) -responsheader gebruiken. HSTS dwingt de browser van de gebruiker om een ​​website te bezoeken met TLS en staat gedurende een bepaalde tijd niet toe om terug te vallen op platte tekst HTTP.

Browser Support

  • Chroom: 4.
  • Rand: 12.
  • Firefox: 4.
  • Safari: 7.

Source

Hoe de Lighthouse-audit mislukt

Waarschuwing in Lighthouse-rapport: er is geen HSTS-antwoordheader gevonden.

De audit signaleert de volgende problemen met de HSTS-header:

  • Als er helemaal geen HSTS-header wordt gevonden.
  • Als een van de aanbevolen richtlijnen ontbreekt ( max-age , includeSubDomains , preload )
  • Als de duur van de max-age -richtlijn korter is dan een jaar (31536000 seconden).
  • Als er een syntaxisfout optreedt bij het parseren van de header, bijvoorbeeld een onbekende richtlijn.

Een sterk HSTS-beleid configureren

De optimale HSTS-headerconfiguratie ziet er als volgt uit:

Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
  • De max-age -richtlijn specificeert hoe lang de browser van de gebruiker gedwongen wordt een website alleen via TLS te bezoeken (in seconden). Zodra deze tijd verstreken is, kunnen gebruikers de site weer bereiken met gewone HTTP als de website geen HSTS-header heeft (of tijdelijke omleidingen van HTTP naar HTTPS).
  • Door de includeSubDomains -richtlijn in te stellen, wordt de header afgedwongen op alle subdomeinen van de pagina-URL die de header als eerste verzendt. Als bijvoorbeeld een HSTS-header door google.com wordt verzonden met de includeSubDomains -richtlijn, wordt de HSTS-header afgedwongen op mail.google.com .
  • Door de preload richtlijn in te stellen en het domein in te dienen bij de HSTS-preloadservice, wordt het domein gecompileerd naar browserbinaries die de vooraf geladen HSTS-lijst gebruiken. Dit geldt niet alleen voor Google Chrome.

Er zijn enkele risico's verbonden aan de uitrol van de HSTS-header. Alle functies die een niet-versleutelde HTTP-verbinding vereisen, zouden effectief niet werken gedurende de tijd die is ingesteld in de max-age -richtlijn. Mogelijk zelfs nog langer als de preload -richtlijn wordt toegepast.

Om de risico's die met de uitrol gepaard gaan te verlagen, wordt een gefaseerde aanpak aanbevolen:

  1. Begin met een kleine max-age en voeg alleen includeSubDomains toe (geen preload ):

    max-age=3600; includeSubDomains
    
  2. Verhoog de max-age na een afkoelperiode (bijvoorbeeld een week) zonder gemelde problemen. Bijvoorbeeld:

    max-age=604800; includeSubDomains
    
  3. Als deze eerste fase gedurende een langere periode succesvol is (bijvoorbeeld drie maanden), moeten de website en de subdomeinen worden toegevoegd aan de HSTS-preloadlijst en moet de preload -richtlijn worden toegevoegd.

    max-age=63072000; includeSubDomains; preload