HTTP Strict Transport Security (kurz HSTS) ist ein Sicherheitsmechanismus für HTTPS-Verbindungen, der sowohl vor Aushebelung der Verbindungsverschlüsselung durch einen Downgrade-Angriff als auch vor Session Hijacking schützen soll. Hierzu kann ein Server mittels des HTTP response header Strict-Transport-Security dem Browser des Anwenders mitteilen, in Zukunft für eine definierte Zeit (max-age) ausschließlich verschlüsselte Verbindungen für diese Domain zu nutzen. Optional lässt sich dieses über den Parameter includeSubDomains auf alle Subdomains ausweiten, also nicht nur auf https://example.org
, sondern auch auf https://subdomain.example.org
.
Ein grundsätzliches Problem des Standards ist, dass beim Erstaufruf einer Domain zunächst ein Request vom Client zum Server abgeschickt werden muss, um zu prüfen, ob dieser Verschlüsselung fordert. Bei dieser initialen Abfrage könnte ein Angreifer ansetzen, bevor die zukünftige Kommunikation zu der aufgerufenen Domain verschlüsselt wird. Um diesem Problem entgegenzuwirken, wird eine von Google Chrome betreute und den anderen großen Webbrowsern genutzte HSTS preload list gepflegt. Steht eine Domain auf dieser Liste, überspringt der Browser die Erstanfrage und verschlüsselt sämtliche Kommunikation sofort.[1] Die Eintragung zusätzlicher Domains ist kostenlos möglich.[2]