HSTS ist ein in RFC 6797 definierter Sicherheitsmechanismus, der Browser dazu zwingt, HTTPS für alle zukünftigen Verbindungen zu einer Domain zu verwenden und Downgrade-Angriffe sowie Man-in-the-Middle-Anfällbarkeiten verhindert.
Wenn ein Server mit dem Header Strict-Transport-Security antwortet, speichert der Browser die Richtlinie für die im max-age-Direktive angegebene Dauer (in Sekunden). Jeder nachfolgende Zugriff auf die Domain über HTTP wird automatisch zu HTTPS upgegraded, auch wenn ein Nutzer http:// in die Adressleiste eingibt oder einen unsicheren Link klickt.
Header-Beispiel:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Die Direktive includeSubDomains erweitert die Richtlinie auf alle Subdomains, und preload ermöglicht es, die Domain in Browser-Preload-Listen aufzunehmen – diese sind in Chrome, Firefox, Safari und Edge integriert – damit HTTPS auch beim ersten Besuch erzwungen wird, bevor der Header überhaupt empfangen wird.
Preload-Anforderungen: Bei Verwendung von Preload muss max-age mindestens 31536000 (1 Jahr) betragen und includeSubDomains muss vorhanden sein. Domains müssen auch manuell zur HSTS-Preload-Liste zur Überprüfung eingereicht werden.
WarningOhne Preload-Eintrag schützt HSTS Nutzer nur nach ihrem ersten Besuch über HTTPS. Beim ersten Besuch bleiben sie anfällig für Downgrade-Angriffe, es sei denn, Ihr Server leitet alle HTTP-Anfragen zu HTTPS weiter, bevor der Header gesendet wird.
HSTS ist unverzichtbar für hochsichere Anwendungen und wird häufig zusammen mit SSL-Zertifikaten verwendet, um Browser auf ausschließlich sichere Verbindungen zu beschränken.