HTTP Strict Transport Security (HSTS) is een beveiligingsstandaard die websitebeheerders in staat stelt om browsers te instrueren dat hun website uitsluitend via een beveiligde HTTPS-verbinding benaderd mag worden. Deze instructie wordt gegeven via een speciale HTTP-header die door de webserver wordt verstuurd.
Wanneer een browser een website bezoekt die HSTS heeft geactiveerd, onthoudt de browser dit en zal bij alle toekomstige bezoeken automatisch HTTPS gebruiken, zelfs als de gebruiker http:// intypt of op een onbeveiligde link klikt. Dit gebeurt voordat er überhaupt een verzoek naar de server wordt gestuurd, waardoor potentiële beveiligingsrisico's worden geëlimineerd.
Hoe werkt HSTS?
HSTS werkt door middel van een HTTP-response header genaamd Strict-Transport-Security. Deze header bevat instructies over hoe lang de browser deze regel moet onthouden (max-age) en of deze ook geldt voor subdomeinen. Een typische HSTS-header ziet er als volgt uit:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
De belangrijkste parameters zijn:
- max-age: Bepaalt hoeveel seconden de browser de HSTS-policy moet onthouden (bijvoorbeeld 31536000 seconden = 1 jaar)
- includeSubDomains: Optionele directive die aangeeft dat de regel ook geldt voor alle subdomeinen
- preload: Optionele directive voor opname in de HSTS preload lijst van browsers
Waarom is HSTS belangrijk?
HSTS beschermt tegen verschillende beveiligingsrisico's die kunnen optreden bij het gebruik van websites:
- Protocol downgrade aanvallen: Aanvallers kunnen proberen een verbinding te downgraden van HTTPS naar HTTP om data te onderscheppen
- Cookie hijacking: Zonder HSTS kunnen cookies via onbeveiligde verbindingen worden onderschept
- Man-in-the-middle aanvallen: HSTS voorkomt dat aanvallers zich tussen de gebruiker en server kunnen positioneren
- SSL stripping: Een aanvalstechniek waarbij HTTPS-verbindingen worden omgezet naar HTTP
HSTS Preload List
Browsers zoals Chrome, Firefox, Safari en Edge onderhouden een HSTS preload lijst. Websites op deze lijst worden automatisch via HTTPS bezocht, zelfs bij het allereerste bezoek. Dit elimineert de kwetsbaarheid die bestaat tijdens het eerste bezoek aan een website, voordat de HSTS-header is ontvangen.
Om op de preload lijst te komen, moet een website aan strikte eisen voldoen en kan de eigenaar de website aanmelden via hstspreload.org. Dit is een permanente beslissing die zorgvuldig moet worden overwogen.
