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-Antwortheader Strict-Transport-Security (oft abgekürzt als HSTS) informiert Browser darüber, dass auf die Website nur über HTTPS zugegriffen werden sollte und dass alle zukünftigen Zugriffsversuche über HTTP automatisch auf HTTPS umgeleitet werden sollen.

Hinweis: Dies ist sicherer als die Konfiguration einer HTTP-zu-HTTPS-Weiterleitung (301) auf Ihrem Server, da die anfängliche HTTP-Verbindung immer noch anfällig für einen Man-in-the-Middle-Angriff ist.

Header-Typ Antwortheader
Unzulässiger Anforderungsheader Nein

Syntax

http
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 auf eine Seite nur über HTTPS zugegriffen werden darf.

includeSubDomains Optional

Wenn dieser optionale Parameter angegeben wird, gilt diese Regel auch für alle Subdomains der Webseite.

preload Optional Nicht standardisiert

Siehe Preloading Strict Transport Security für Details. Bei Verwendung von preload muss die max-age-Direktive mindestens 31536000 (1 Jahr) betragen und die includeSubDomains-Direktive muss vorhanden sein. Nicht Teil der Spezifikation.

Beschreibung

Wenn eine Website eine Verbindung über HTTP akzeptiert und auf HTTPS umleitet, können Besucher zunächst mit der nicht verschlüsselten Version der Seite kommunizieren, bevor sie weitergeleitet werden, wenn sie beispielsweise http://www.foo.com/ oder sogar nur foo.com eingeben. Dies schafft die Möglichkeit eines Man-in-the-Middle-Angriffs. Die Weiterleitung könnte ausgenutzt werden, um Besucher zu einer bösartigen Seite statt zur sicheren Version der ursprünglichen Seite zu leiten.

Der Strict-Transport-Security-Header informiert den Browser, dass eine Seite niemals über HTTP geladen werden sollte und konvertiert automatisch alle Versuche, die Seite über HTTP zuzugreifen, in HTTPS-Anfragen.

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, erkennt der Browser, dass Ihre Seite HTTPS-fähig ist, und respektiert den Strict-Transport-Security-Header. Browser tun dies, da Angreifer HTTP-Verbindungen zur Seite abfangen und den Header einfügen oder entfernen könnten.

Beispielszenario für Strict Transport Security

Angenommen, Sie haben sich bei einem kostenlosen WLAN-Zugangspunkt an einem Flughafen angemeldet und surfen im Internet, besuchen Ihren Online-Banking-Dienst, um Ihren Kontostand zu prüfen und einige Rechnungen zu bezahlen. Unglücklicherweise ist der Zugangspunkt, den Sie verwenden, tatsächlich ein Laptop eines Hackers, und sie fangen Ihre ursprüngliche HTTP-Anfrage ab und leiten Sie zu einer Clone-Seite Ihrer Bank statt zur echten weiter. Jetzt sind Ihre privaten Daten dem Hacker ausgesetzt.

Strict Transport Security löst dieses Problem; solange Sie die Website Ihrer Bank einmal über HTTPS aufgerufen haben und die Website der Bank Strict Transport Security verwendet, wird Ihr Browser automatisch nur HTTPS verwenden, was verhindert, dass Hacker diese Art von Man-in-the-Middle-Angriff durchführen.

Wie der Browser Strict Transport Security handhabt

Das erste Mal, wenn eine Seite über HTTPS aufgerufen wird und sie den Strict-Transport-Security-Header zurückgibt, speichert der Browser diese Information, sodass zukünftige Versuche, die Seite über HTTP zu laden, automatisch stattdessen HTTPS verwenden.

Wenn die im Strict-Transport-Security-Header angegebene Ablaufzeit verstreicht, wird der nächste Versuch, die Seite über HTTP zu laden, wie gewohnt fortfahren, anstatt automatisch HTTPS zu verwenden.

Wann immer der Strict-Transport-Security-Header an den Browser übermittelt wird, wird er die Ablaufzeit für diese Seite aktualisieren, sodass Seiten diese Informationen aktualisieren und das Ablaufen des Timeouts verhindern können. Sollte es notwendig sein, Strict Transport Security zu deaktivieren, führt das Setzen von max-age auf 0 (über eine HTTPS-Verbindung) zum sofortigen Ablaufen des Strict-Transport-Security-Headers, wodurch der Zugriff über HTTP ermöglicht wird.

Preloading Strict Transport Security

Google betreibt einen HSTS-Preload-Dienst. Durch Befolgen der Richtlinien und erfolgreiches Einreichen Ihrer Domain können Sie sicherstellen, dass Browser nur über sichere Verbindungen mit Ihrer Domain verbunden werden. Obwohl der Dienst von Google gehostet wird, verwenden alle Browser diese Preload-Liste. Allerdings ist er kein Teil der HSTS-Spezifikation und sollte nicht als offiziell angesehen werden.

Beispiele

Verwendung von Strict-Transport-Security

Alle jetzigen und zukünftigen Subdomains werden für eine max-age von 1 Jahr HTTPS sein. Dies blockiert den Zugriff auf Seiten oder Subdomains, die nur über HTTP bereitgestellt werden können.

http
Strict-Transport-Security: max-age=31536000; includeSubDomains

Obwohl eine max-age von 1 Jahr für eine Domain akzeptabel ist, wird ein Zeitraum von zwei Jahren empfohlen, wie auf https://hstspreload.org erklärt wird.

Im folgenden Beispiel ist 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.

http
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