Met HSTS (HTTP Strict Transport Security) configureer je dat een client (met name een webbrowser) in alle communicatie met een specifiek domein altijd gebruik moet maken van een SSL encrypted HTTP-verbinding (HTTPS). Door HSTS te activeren zal de browser onthouden dat elke verbinding met het domein geëncrypt moet zijn en niet proberen een reguliere HTTP-connectie op te zetten. Deze maatregel voorkomt zogenaamde protocol downgrade-attacks en cookie hijacking.
HSTS wordt ingesteld door een header mee te sturen in elk response van de server naar de client. De client onthoudt dit advies. Op het moment dat een pagina op het domein wordt aangeroepen zal de browser dit enkel via HTTPS proberen. Eventuele foutieve verwijzingen naar HTTP zullen door de client worden aangepast naar HTTPS. Een bezoeker gaat dus geforceerd naar HTTPS wat dus ten goede komt van de beveiliging, en eigenlijk ook de snelheid, gezien de bezoeker niet geredirect hoeft te worden van HTTP naar HTTPS.
True engineers stellen op jouw verzoek HSTS-responseheader “Strict-Transport-Security” in op door True beheerde servers.
Voordelen
Het gebruik van HSTS komt de beveiliging van de website op het domein ten goede. Doordat elke verbinding met de website vanuit de client beveiligd wordt opgezet is de authenticiteit van de informatie vanuit de server naar de client beter gewaarborgd, doordat het aanvalstechnieken zoals protocol downgrade attacks en cookie hijacking kan voorkomen. Tevens komt HSTS de snelheid van de website ten goede. Een eventueel foutieve HTTP-verwijzing wordt vanuit de client aangepast naar een HTTPS-verbinding wat voorkomt dat de server de client moet verwijzen naar de HTTPS-variant.
Nadelen
Bij het activeren van HSTS is het belangrijk om te zorgen dat alle functionaliteiten vanuit het domein via HTTPS met een geldig certificaat beschikbaar zijn. Denk hierbij vooraf na over welke domeinen en eventueel subdomeinen de instelling geldig moet zijn.
Op het moment dat de website, bijvoorbeeld vanwege onderhoud of een verhuizing, tijdelijk niet via HTTPS beschikbaar is, moet hier tijdig rekening mee worden gehouden. De clients onthouden de “Strict-Transport-Security”-instelling voor een vastgestelde periode (standaard 1 jaar). Gedurende deze periode zal de client altijd eerst een HTTPS-poging ondernemen. Het certificaat zal dus in meeste gevallen tot een jaar na het voor het laatst uitsturen van de HSTS-header geldig moeten zijn. Een self-signed certificaat wordt door de browser niet als geldig gezien
HSTS Preload
Het is mogelijk om uw domein (en al uw subdomeinen) aan te melden in de HSTS-preload lijst. Deze lijst wordt door veel browsers gebruikt om bij te houden welke domeinen enkel via https benaderd mogen worden. Het is daarom extra belangrijk dat het domein en alle subdomeinen via HTTPS benaderbaar zijn.
Aanmelden op de lijst gaat via de website https://hstspreload.org/.
Om op de HSTS-preloadlijst te komen moet het domein voldoen aan een aantal voorwaarden.
- Het hoofddomein moet voorzien zijn van een geldig certificaat.
- Alle requests op http (poort 80) dienen door te verwijzen naar hetzelfde domein op https en niet naar een algemeen domein. Bijvoorbeeld http://true.nl dient door te verwijzen naar https://true.nl, welke mag doorverwijzen naar https://www.true.nl.
- HSTS dient geconfigureerd te zijn met directief IncludeSubDomains. Dat houdt in dat het domein en alle subdomeinen via https benaderd worden.
- De directief max-age dient minimaal 18 weken (10886400 seconden) te zijn.
- In de HSTS-header dient Preload aanwezig te zijn.
Een voorbeeld van een geldige HSTS-header is:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload