HSTS ist ein Websicherheits-Antwortheader. Der Name ist ein Akronym für „HTTP Strict Transport Security“. Die Funktion des HSTS-Headers besteht darin, Browser dazu zu zwingen, sich über HTTPS mit Websites zu verbinden.
Tipp: HTTPS verwendet Verschlüsselung, um Ihre Webverbindung vor Hackern zu schützen, die versuchen, sie zu ändern oder zu überwachen. HTTP verfügt nicht über diese Schutzmaßnahmen, sodass ein Hacker an der richtigen Stelle Ihren HTTP-Datenverkehr überwachen und ändern könnte.
Ein Web-Antwort-Header ist ein Stück Metadaten, das vom Server gesendet wird, wenn er auf Web-Anfragen antwortet. Eine Teilmenge dieser Header wird oft als Sicherheits-Header bezeichnet, da ihr Zweck darin besteht, die Sicherheit der Website und des Benutzers zu erhöhen.
Der HSTS-Header besteht aus zwei obligatorischen und zwei optionalen Teilen. Der Header-Name „Strict-Transport-Security“ und dann der „max-age“-Operator und der Wert sind beide obligatorisch. Manchmal wird auch ein anderes Operatorpaar verwendet, „includeSubDomains“ und „preload“.
Wenn der Browser eine HTTPS-Antwort mit dem HSTS-Header empfängt, wird er angewiesen, sich mit dieser Website und allen darauf befindlichen Ressourcen ausschließlich über HTTPS für die Dauer des „Max-Age“-Timers zu verbinden. „Max-Alter“ ist eine Variable, die beschreibt, wie lange eine Einstellung vom Browser gespeichert werden muss. Der Wert von „max-age“ wird in Sekunden angegeben, der empfohlene Wert ist „31536000“, was einem Jahr entspricht.
Die Idee ist, dass der Browser während der Dauer dieses Timers, der bei jedem nachfolgenden Seitenladen zurückgesetzt wird, eine HTTPS-Verbindung benötigt und alle HTTP-Ressourcen ablehnt. Dies schützt vor Person-in-the-Middle-Angriffen, bei denen ein Hacker zwischen Ihnen und dem Webserver die erhaltenen Antworten manipulieren kann.
Der wichtigste Punkt, an dem Sie dadurch geschützt werden, ist die erste Verbindung. Wenn Sie eine Verbindung zu einer Website herstellen, können Sie normalerweise die HTTP-Website anfordern und dann zur HTTPS-Website weitergeleitet werden. Leider könnte ein Hacker in einer Person-in-the-Middle-Position dieses Upgrade auf HTTPS verhindern und dann Ihre Aktivitäten auf der Website stehlen oder überwachen. Sobald der HSTS-Header jedoch vom Browser erkannt wurde, stellt Ihr Browser bereits die erste Verbindung über HTTPS her und schützt Sie so vor Hackern.
HSTS verhindert auch, dass unsichere Ressourcen geladen werden, die auch von einem Angreifer böswillig modifiziert werden könnten, wenn sie über HTTP bereitgestellt werden.
Mit dem Operator „includeSubDomains“ wird angegeben, dass der Header auch für alle Subdomains der Website gelten soll.
Die HSTS-Preload-Liste
Sie werden vielleicht feststellen, dass HSTS Sie immer noch nicht schützt, wenn Sie sich zum ersten Mal mit einer Website verbinden. Hier kommt der „Preload“-Operator ins Spiel. Webseiten können sich zur Aufnahme in die HSTS-Preload-Liste anmelden, der „Preload“-Operator ist in diesem Fall ein Pflichtindikator. Die HSTS-Preload-Liste wird regelmäßig aktualisiert und im Browser gespeichert. Wenn eine Site darin enthalten ist, wendet der Browser die HSTS-Schutzmaßnahmen darauf an. Dies geschieht sogar bei der allerersten Verbindung, bevor der Browser jemals den HSTS-Antwortheader gesehen haben könnte.
Tipp: Ein „Max-Alter“ von mindestens einem Jahr ist erforderlich, um der HSTS-Preload-Liste hinzugefügt zu werden.
Probleme mit HSTS
Einer der Hauptpunkte von HSTS ist, dass bei Problemen mit der HTTPS-Verbindung eine Fehlermeldung angezeigt wird. Als zusätzliche Sicherheitsvorkehrung sollen Benutzer HSTS-Fehlermeldungen nicht umgehen können, wie dies bei normalen HTTPS-Fehlern der Fall wäre.
Leider kann dies zu Problemen führen, wenn ein Unternehmen HSTS einführt, bevor die gesamte Website und alle darauf verwendeten Ressourcen HTTPS unterstützen. In diesem Fall werden den Benutzern HSTS-Sicherheitsfehlermeldungen angezeigt, die sie nicht umgehen können, was im Wesentlichen die Website vollständig zerstört. Das Schlimmste daran ist, dass das einfache Entfernen des HSTS-Headers das Problem für diese Benutzer nicht behebt, da ihr Browser weiterhin HSTS für das potenziell monatelange „Max-Alter“ erzwingt.
Daher ist es von entscheidender Bedeutung, dass bei der ersten Bereitstellung des Headers ein kurzes „max-age“ verwendet wird. Wenn es Probleme gibt, bleiben diese nur für kurze Zeit bestehen, nachdem sie entdeckt wurden. Erst wenn Sie sicher sind, dass Ihre Website vollständig HSTS-kompatibel ist, sollten Sie einen langen HSTS-Timer konfigurieren.
Tipp: Es ist auch möglich, ein „max-age“ von 0 festzulegen, dies entfernt den gespeicherten HSTS-Eintrag im Wesentlichen von jedem, der ihn sieht. Dies kann hilfreich sein, wenn ein Problem auftritt, aber es betrifft nur Benutzer, wenn sie es erneut versuchen.