Wat is HSTS?
Laatst gewijzigd 10-04-2024HTTP Strict Transport Security afgekort HSTS is een
beveiligingspolicy dat een verbinding over HTTPS forceert.
Hierbij is het uiteraard belangrijk dat er een geldig / actief SSL certificaat
aanwezig is.
Zonder geldig SSL certificaat in combinatie met HSTS kan de website niet geladen worden.
Er is op dat moment ook geen optie om de foutmelding te negeren, terwijl deze optie wel aanwezig
is wanneer je geen HSTS gebruikt.
HSTS kwetsbaarheid
Als websitebeheerder heb je zelf de optie om te kiezen of verkeer via HTTP of
HTTPS dient te verlopen.
Standaard gaat het via HTTP. Je kan een SSL certificaat installeren en het
verkeer via de website doorverwijzen naar HTTPS, bijvoorbeeld via .htaccess of
door een vinkje te zitten in je controle paneel.
HSTS is echter niet waterdicht, het eerste verzoek zal altijd nog eerst via
HTTP verlopen, dus in het eerste verzoek kan een hacker nog steeds misbruik
maken en een man in the middle aanval uitvoeren.
Let op dat HSTS alleen geactiveerd kan worden wanneer er een geldig
Man in the middle aanval
Zoals aangegeven verloopt het eerste verzoek nog
altijd via HTTP en daardoor kan een hacker een man in the middle aanval (MITM) uitvoeren.
Bij een man in the middle aanval kan een hacker de communicatie tussen de
bezoeker en de server onderscheppen en eventueel aanpassen.
Eventuele informatie die jij dan invoert kan de hacker inzien en eventueel
zelfs aanpassen.
Een hacker kan bijvoorbeeld ook een cookie (bestandje) op je computer plaatsen
waardoor je webbrowser je doorstuurt naar een andere website.
De hacker kan je dan doorsturen naar een website die bijvoorbeeld lijkt op een
officiële website, maar niet de officiële website is, zoals bijvoorbeeld een
website van een bank.
Zo kan de hacker aan jouw gegevens komen en deze misbruiken.
Wanneer HSTS actief is neemt dit risico af, helemaal wanneer je gebruik maakt van de preload functie..
Meer informatie over een man in the middle aanval kan je vinden op Wikipedia.
Periode instellen bij HSTS
Bij HSTS dien je een vastgestelde periode mee te geven waarin je tegen de client (webbrowser) aangeeft dat hij gedurende de aangegeven periode gebruik moet maken van HTTPS.
De standaard periode is hierbij 1 jaar, maar het is ook in te stellen voor een langere of kortere periode.
Let op dat je dit goed instelt zolang je bezoekers hier geen maanden of jaren last van hebben.
Wanneer je er onverwachts achter komt dat het toch niet goed gaat wanneer je HSTS hebt geactiveerd en je hebt het ingesteld voor 1 jaar, dan hebben al je bezoekers bijvoorbeeld 1 jaar lang last van deze instelling, tenzij zij dit zelf handmatig in hun browser instelling uitzetten.
Subdomeinen en HSTS
In sommige gevallen kan het zijn dat je subdomeinen op verschillende servers heb staan.
HSTS houd hier geen rekening mee, en vereist dus ook op die servers een geldig SSL certificaat.
Een foutieve instelling in de HSTS kan er dus direct voor zorgen dat een groot deel van je website niet meer werkt.
Het is daarom heel belangrijk om hier zorgvuldig mee om te gaan.
Waar je goed over na moet denken is de vraag of je al je subdomeinen ook van HSTS wil voorzien.
Als je subdomeinen mee wil nemen kan je dit meestal selecteren in het controle paneel, of aangeven in de code.
Wat zijn de voordelen van HSTS?
- Het grote voordeel van HSTS is dat het de beveiliging
ten goede komt. Het voorkomt de man in
the middle aanval mits je dit goed instelt en daarnaast ben je ook beter voorbereid op de toekomst.
- Zodra er een HSTS header actief is zal de website sneller laden, omdat de doorverwijzing
van HTTP naar HTTPS niet meer plaats vind.
Zoekmachines zullen daardoor tevens sites hoger in de resultaten plaatsen wanneer er gebruik wordt gemaakt van HSTS..
Wat zijn de nadelen van HSTS?
- Eén van de nadelen is dat je altijd een geldig SSL
certificaat moet hebben (op zich hoort dit uiteraard standaard zo te zijn en is
dit niet echt een nadeel).
- Houd met het activeren van HSTS ook rekening met subdomeinen, als je HSTS activeert
via het hoofddomein en je aangeeft dat hij ook de subdomeinen van HSTS moet
voorzien, dan moeten al je subdomeinen een geldig SSL certificaat hebben.
- Het foutief instellen kan leiden dat je website(s) voor een langere periode niet online is/zijn.
-
HSTS is (nog) niet waterdicht. Wanneer de website voor het eerst bezocht wordt
gebeurd dit tegenwoordig nog steeds via HTTP, zo kan een hacker met bepaalde
tools de HSTS header weghalen,
Om dit beter tegen te gaan kan je gebruik maken van de preload lijst.
HSTS Preload lijst
Veel webbrowsers gebruiken een HSTS-preload lijst.
Dit is een lijst waarin domeinnamen staan die alleen over HTTPS benaderbaar
zijn.
Zodra je aangeeft dat HSTS via een pre-load ingeladen moet worden, geeft dit
nog meer veiligheid, omdat de HSTS al ingeladen wordt voordat je website
geladen wordt.
Zo wordt je website direct over HTTPS geladen.
Je kan je site aan de preload lijst toevoegen via https://hstspreload.org .
Er zijn wel enkele voorwaarden waaraan je moet voldoen:
- Uiteraard moet je domeinnaam voorzien zijn
van een geldig SSL certificaat.
- Alle verzoeken op de http poort (poort 80)
moeten doorverwezen worden naar de https:// op hetzelfde domein. Zo moet
bijvoorbeeld http:// voorbeeldsitepuntnl doorverwijzen
naar https:// voorbeeldsitepuntnl en mag het
niet doorverwijzen naar https:// wwwpuntvoorbeeldsitepuntnl
- De HSTS functie die je gebruikt moet gebruik
maken van de include:subdomains functie.
- De max-age (periode) moet minimaal 18 weken zijn.
- Je moet gebruik maken van de preload
functie.
Hoe activeer ik HSTS?
De uitleg over hoe je HSTS kan activeren kan je vinden in het artikel: Hoe activeer ik HSTS?
Hoe kan ik HSTS verwijderen wanneer er een HSTS header actief is?
Dit verschilt per webbrowser.
Chrome:
Type het volgende in je adresbalk: chrome://net-internals/#hsts
Hier heb je verschillende opties, waaronder het opvragen van de HSTS en het verwijderen / vergeten van de HSTS.
Brave:
Type het volgende in je adresbalk: brave://net-internals/#hsts
Hier heb je verschillende opties, waaronder het opvragen van de HSTS en het verwijderen / vergeten van de HSTS.
Firefox:
Open Firefox en gebruik Shift+ CTRL+ H (of Cmd + Shift + H op een Mac)
Zoek de website erbij waarvoor je de HSTS wil verwijderen.
Klik er met je rechtermuisknop op, en klik "Forget About This Site" of "Vergeet deze website".
Let op dat dit ook de opgeslagen wachtwoorden verwijderd.
Vragen over onze dienstverlening?
Onze support is op werkdagen bereikbaar van 9:00 - 17:30.