Hsts Strict Transport Security

Was ist Strict Transport Security?

HTTP Strict Transport Security (HSTS) ist ein schützender Mechanismus bei HTTPS-Verbindungen. Der Sicherheitsmechanismus verhindert eine Downgrade-Attacke und schützt vor Session Hijacking. Über den HTTP response header Strict Transport Security kann ein Server einem Client mitteilen, dass für einen per max-age Parameter definierten Zeitraum nur verschlüsselte Verbindungen zur Domain genutzt werden können. Über den Parameter „includeSubDomains“ lässt sich die Regel für alle Subdomains anwenden. Grund für die Entwicklung waren im Jahr 2009 demonstrierte Attacken auf solche verschlüsselten Verbindungen mit Man-in-the-Middle-Angriffen. Diese Angriffe schalten sich bereits dazwischen, bevor die verschlüsselte Verbindung zustande kommt. Die HSTS-Erweiterung ist im RFC 6797 standardisiert. Ruft ein Anwender die Webseite später mit „http://..“ auf, kommuniziert der Client dennoch direkt über HTTPS mit dem Host. Der Anwender profitiert zusätzlich, denn durch die wegfallende Umleitung von http zu https verkürzt sich die Antwortzeit. Eine Liste mit Domains, bei denen HSTS aktiviert ist, findet sich unter https://hstspreload.org/. Der Eintrag der eigenen Webseite in diese Preload-Liste ist kostenlos. Die Liste löst das Trust-on-first-use-Problem und garantiert bereits beim ersten Aufruf der Seite den Aufbau einer sicheren Verbindung.

Was passiert beim Server?

Bei einer HTTPS-Verbindung sendet der Server den zusätzlichen Header Strict-Transport-Security. Die Information im Header informiert darüber, dass die gewünschte Seite nur bei Verwendung einer verschlüsselten Verbindung erreichbar ist. Damit das funktioniert, muss der Browser des Clients den Header richtig interpretieren. Die Zeitangabe für die Gültigkeit erfolgt in Sekunden.

Beispiel für den Eintrag in der .htaccess: Header set Strict-Transport-Security "max-age=3600"

Der Beispiel-Header informiert den Browser darüber, für 3600 Sekunden ausschließlich verschlüsselte Verbindungen zur Zielseite aufzubauen.

Was passiert beim Browser?

Erhält ein Browser einen HSTS-Header, muss dieser bis zum Ablauf der definierten Gültigkeit unverschlüsselte Seitenlinks automatisch in verschlüsselte Links umwandeln. Über eine unverschlüsselte Verbindung verschickte HSTS-Header ignoriert der Browser. Aus http://beispiel.de wird dann https://beispiel.de. Ist das Zertifikat des Servers unzulässig oder die Sicherheit der Verbindung gilt aus einem anderen Grund als unsicher, trennt der Browser diese automatisch und zeigt eine entsprechende Fehlermeldung an. Das Öffnen der Webseite ist für den Anwender dann nicht mehr möglich.

Welche Probleme gibt es mit Strict Transport Security?

Der Client speichert die HSTS-Informationen ab und die gesammelten Daten ermöglichen das Tracking des Anwenders. Die Anwendung ist für Webserver dennoch sinnvoll, da der Datenaustausch sicherer ist als bei einer nicht verschlüsselten Übertragung.