Wat is HSTS?

Laatst gewijzigd 24-06-2021

HTTP 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://voorbeeldsite.nl doorverwijzen naar https://voorbeeldsite.nl en mag het niet doorverwijzen naar https://www.voorbeeldsite.nl

  • 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.

Was dit artikel nuttig?
Zeker Niet echt!

Vragen over onze dienstverlening?

Onze support is op werkdagen bereikbaar van 9:00 - 17:30.