Strict-Transport-Security
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Der HTTP Strict-Transport-Security
response header (oft abgekürzt als HSTS) informiert Browser darüber, dass die Seite nur über HTTPS zugänglich sein soll und dass zukünftige Versuche, auf sie über HTTP zuzugreifen, automatisch auf HTTPS hochgestuft werden sollen.
Hinweis:
Dies ist sicherer als das Konfigurieren einer HTTP-zu-HTTPS-(301
)-Weiterleitung auf Ihrem Server, da die anfängliche HTTP-Verbindung immer noch für einen Man-in-the-Middle-Angriff anfällig ist.
Headertyp | Response header |
---|---|
Verbotener Headername | Nein |
Syntax
Strict-Transport-Security: max-age=<expire-time>
Strict-Transport-Security: max-age=<expire-time>; includeSubDomains
Strict-Transport-Security: max-age=<expire-time>; includeSubDomains; preload
Direktiven
max-age=<expire-time>
-
Die Zeit in Sekunden, die der Browser sich merken soll, dass eine Seite nur über HTTPS aufgerufen werden darf.
includeSubDomains
Optional-
Wenn dieser optionale Parameter angegeben wird, gilt diese Regel auch für alle Subdomains der Seite.
preload
Optional Nicht standardisiert-
Siehe Preloading Strict Transport Security für Details. Bei der Verwendung von
preload
muss diemax-age
-Direktive mindestens31536000
(1 Jahr) betragen, und dieincludeSubDomains
-Direktive muss vorhanden sein. Nicht Teil der Spezifikation.
Beschreibung
Wenn eine Website eine Verbindung über HTTP akzeptiert und zu HTTPS umleitet, können Besucher zunächst mit der nicht verschlüsselten Version der Seite kommunizieren, bevor sie umgeleitet werden, wenn sie beispielsweise http://www.foo.com/
oder sogar nur foo.com
eingeben.
Dies schafft eine Möglichkeit für einen Man-in-the-Middle-Angriff.
Die Umleitung könnte ausgenutzt werden, um Besucher auf eine bösartige Seite anstelle der sicheren Version der ursprünglichen Seite zu leiten.
Der Strict-Transport-Security
-Header informiert den Browser, dass er niemals eine Seite über HTTP laden soll und automatisch alle Versuche, auf die Seite zuzugreifen, in HTTPS-Anfragen umwandeln soll.
Hinweis:
Der Strict-Transport-Security
-Header wird vom Browser ignoriert, wenn Ihre Seite nur über HTTP aufgerufen wurde.
Sobald Ihre Seite über HTTPS ohne Zertifikatsfehler aufgerufen wird, weiß der Browser, dass Ihre Seite HTTPS-fähig ist und wird den Strict-Transport-Security
-Header beachten.
Browser tun dies, da Angreifer HTTP-Verbindungen zur Seite abfangen und den Header einfügen oder entfernen können.
Beispiel-Szenario für Strict Transport Security
Angenommen, Sie haben sich in einen kostenlosen WLAN-Zugangspunkt an einem Flughafen eingeloggt und beginnen, im Internet zu surfen, wobei Sie Ihr Online-Banking-Dienst besuchen, um Ihren Kontostand zu überprüfen und ein paar Rechnungen zu bezahlen. Leider ist der Zugangspunkt, den Sie verwenden, tatsächlich der Laptop eines Hackers, und er fängt Ihre ursprüngliche HTTP-Anfrage ab und leitet Sie zu einem Klon der Seite Ihrer Bank anstelle des echten Weiteren. Nun sind Ihre privaten Daten für den Hacker zugänglich.
Strict Transport Security löst dieses Problem; solange Sie die Webseite Ihrer Bank einmal über HTTPS aufgerufen haben und die Webseite der Bank Strict Transport Security verwendet, weiß Ihr Browser, dass er automatisch nur HTTPS verwenden soll, was verhindert, dass Hacker diese Art von Man-in-the-Middle-Angriff durchführen.
Wie der Browser Strict Transport Security behandelt
Das erste Mal, wenn eine Site über HTTPS aufgerufen wird und sie den Strict-Transport-Security
-Header zurückgibt, speichert der Browser diese Information, sodass zukünftige Versuche, die Site über HTTP zu laden, automatisch HTTPS verwenden.
Wenn die im Strict-Transport-Security
-Header angegebene Ablaufzeit abläuft, wird der nächste Versuch, die Seite über HTTP zu laden, wie gewohnt fortgesetzt und nicht automatisch HTTPS verwenden.
Jedes Mal, wenn der Strict-Transport-Security
-Header an den Browser geliefert wird, wird die Ablaufzeit für diese Seite aktualisiert, sodass Seiten diese Informationen aktualisieren und ein Ablaufdatum verhindern können.
Falls es erforderlich ist, Strict Transport Security zu deaktivieren, führt das Setzen von max-age
auf 0
(über eine HTTPS-Verbindung) dazu, dass der Strict-Transport-Security
-Header sofort abläuft und der Zugriff über HTTP ermöglicht wird.
Preloading Strict Transport Security
Google betreibt einen HSTS-Preload-Service. Indem Sie die Richtlinien befolgen und Ihre Domain erfolgreich einreichen, können Sie sicherstellen, dass Browser nur über sichere Verbindungen mit Ihrer Domain verbunden werden. Obwohl der Service von Google gehostet wird, verwenden alle Browser diese Preload-Liste. Es ist jedoch nicht Teil der HSTS-Spezifikation und sollte nicht als offiziell behandelt werden.
- Informationen über die HSTS-Preload-Liste in Chrome: https://www.chromium.org/hsts/
- Konsultation der Firefox HSTS-Preload-Liste: nsSTSPreloadList.inc
Beispiele
Verwendung von Strict-Transport-Security
Alle gegenwärtigen und zukünftigen Subdomains werden für eine max-age
von 1 Jahr über HTTPS bereitgestellt.
Dies blockiert den Zugriff auf Seiten oder Subdomains, die nur über HTTP bereitgestellt werden können.
Strict-Transport-Security: max-age=31536000; includeSubDomains
Obwohl eine max-age
von 1 Jahr für eine Domain akzeptabel ist, sind zwei Jahre der empfohlene Wert, wie auf https://hstspreload.org erklärt.
Im folgenden Beispiel wird max-age
auf 2 Jahre gesetzt und mit preload
versehen, was für die Aufnahme in die HSTS-Preload-Listen aller großen Webbrowser wie Chromium, Edge und Firefox erforderlich ist.
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
Spezifikationen
Specification |
---|
HTTP Strict Transport Security (HSTS) # section-6.1 |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Funktionen auf sichere Kontexte beschränkt
- HTTP Strict Transport Security hat Einzug gehalten! auf blog.sidstamm.com (2010)
- HTTP Strict Transport Security (erzwinge HTTPS) auf hacks.mozilla.org (2010)
- HTTP Strict Transport Security Cheatsheet auf owasp.org
- HTTP Strict Transport Security auf Wikipedia
- HSTS-Preload-Service