Wie die BBC HSTS zur Verbesserung der Sicherheit und Leistung einführt

Die BBC führt HSTS für ihre Website ein, um die Sicherheit und Leistung zu verbessern. Hier erfährst du, was das bedeutet und wie HSTS dir dabei helfen kann.

Die Nutzung von HTTPS hat in den letzten Jahren stetig zugenommen. Laut dem Web Almanac des HTTP-Archivs aus dem Jahr 2021 wurden etwa 91% aller Anfragen für Computer und Mobilgeräte über HTTPS verarbeitet. HTTPS wird nicht nur dauerhaft erhalten, es ist auch eine unverzichtbare Voraussetzung für die Verwendung von Funktionen wie Service Worker und modernen Protokollen wie HTTP/2 und HTTP/3.

Neil Craig, Lead Technical Architect bei der BBC, hat kürzlich getwittert, dass HTTP Strict Transport Security (HSTS) nach und nach für bbc.com eingeführt wird. Sehen wir uns einmal an, was das für die BBC bedeutet und was das für Sie bedeuten könnte.

Das Problem

Webserver warten oft auf Anfragen an beiden Ports 80 und 443. Port 80 steht für unsichere HTTP-Anfragen, 443 für sicheres HTTPS. Dies kann zu einem Problem führen, denn wenn Sie eine Adresse ohne das Protokollpräfix https:// in die Adressleiste eingeben, wie es bei den meisten Nutzern der Fall ist, leiten einige Browser aus Gründen der alten Version Traffic zur unsicheren HTTP-Version einer Website um. Das ist aber nicht immer der Fall.

Eine gängige Methode, um sicherzustellen, dass Nutzer nicht auf eine ungesicherte Version einer Website zugreifen, besteht darin, eine HTTP-zu-HTTPS-Weiterleitung für alle Anfragen zu verwenden. Das funktioniert zwar, löst aber die folgende Ereigniskette aus:

  1. Der Server empfängt eine Anfrage über HTTP.
  2. Der Server führt eine Weiterleitung aus, um zum HTTPS-Äquivalent der angeforderten Ressource zu wechseln.
  3. Der Server über HTTPS muss eine sichere Verbindung mit dem Browser aushandeln.
  4. Die Inhalte werden wie gewohnt geladen.

Weiterleitungen funktionieren zwar problemlos, können aber so falsch konfiguriert sein, dass dennoch der Zugriff auf die unsichere Version einer Website möglich ist. Selbst wenn alles ordnungsgemäß konfiguriert ist, besteht dennoch ein Sicherheitsproblem darin, dass der Nutzer während der Weiterleitungsphase weiterhin über unsicheres HTTP eine Verbindung herstellt. Dadurch steigt die Gefahr von gefährlichen Man-in-the-Middle-Angriffen.

HSTS eingeben

Unterstützte Browser

  • 4
  • 12
  • 4
  • 7

Quelle

HSTS wird durch den HTTP-Antwortheader Strict-Transport-Security für HTTPS-Anfragen vorgegeben. Wenn diese Richtlinie festgelegt ist, lösen wiederkehrende Besuche auf einer Website eine spezielle Weiterleitung aus, die als „Interne Weiterleitung 307“ bezeichnet wird. Bei dieser Methode kümmert sich der Browser um die Weiterleitungslogik, nicht der Server. Dadurch wird verhindert, dass die Anfrage abgefangen wird, da sie den Browser nie verlässt und somit sicherer ist. Ein weiterer Vorteil ist, dass diese Art der Weiterleitung extrem schnell ist, sodass jede spürbare Latenz während eines HTTP-zu-HTTPS-Hops eliminiert wird.

Eine interne 307-Weiterleitung von HTTP zu HTTPS, ausgelöst durch einen HSTS-Header. Die Weiterleitung per 307 dauert nur 2 Millisekunden.

Ähnlich wie die Syntax der max-age-Anweisung von Cache-Control gibt ein HSTS-Header eine max-age-Anweisung an. Diese Anweisung verwendet einen Wert in Sekunden, der angibt, wie lange die Richtlinie gilt:

Strict-Transport-Security: max-age=3600

Im obigen Beispiel sollte die Richtlinie nur für eine Stunde wirksam werden.

HSTS bereitstellen

Der größte Nachteil der Bereitstellung von HSTS besteht darin, dass Sie Ihren Ursprung nicht als strikt sicher behandeln möchten. Angenommen, Sie stellen Ressourcen über mehrere Subdomains bereit, aber möglicherweise sind nicht alle sicher. In diesem Szenario könnte ein HSTS-Header Ihre Website beschädigen.

Die BBC verfolgte bei der Bereitstellung von HSTS den richtigen Ansatz. Wie Neil Craig in seinem Tweet erwähnt hat, wurde für bbc.com anfangs der Wert max-age=10 festgelegt.

Das bedeutet, dass die Richtlinie anfangs nur zehn Sekunden lang wirksam war. Das bringt keinen großen Vorteil mit sich, aber es geht darum, herauszufinden, ob es überhaupt Probleme bei der Anwendung von HSTS gibt. Im Laufe der Zeit können Sie die Richtlinie schrittweise erhöhen und feststellen, ob Probleme auftreten. Zum Zeitpunkt der Veröffentlichung dieses Dokuments legt bbc.com eine HSTS-Richtlinie von max-age=86400 fest, die höchstwahrscheinlich mit der Zeit zunehmen wird.

Bei der Bereitstellung von HSTS sollten Sie auf keinen Fall mit einem langen max-age-Wert aus dem Gate kommen. Es kann sein, dass Nutzer plötzlich Schwierigkeiten haben, um Probleme zu beheben. Fang klein an und steigere deine Werte im Laufe der Zeit. Wenn Sie sicher sind, dass alles in Ordnung ist, können Sie die Anweisung max-age auf einen viel längeren Zeitraum festlegen. Es wird empfohlen, max-age nach der vollständigen Einführung auf ein oder zwei Jahre festzulegen.

Sichere und schnellere Navigation bei der ersten Navigation mit der HSTS-Preload-Liste

Eine HSTS-Richtlinie tritt erst nach dem ersten Besuch einer Website in Kraft, sodass die Vorteile beim ersten Besuch der Website noch nicht angezeigt werden. Dafür ist immer noch die unsichere Weiterleitung erforderlich. Sie können Ihre HSTS-Richtlinie jedoch vorabladen, indem Sie Ihre Website an die HSTS-Preload-Liste einreichen. Dabei handelt es sich um eine hartcodierte Liste von Websites, von denen der Browser weiß, dass sie ausschließlich HTTPS sind. Wenn Ihre Website auf der Liste der Vorabladevorgänge steht, ist auch der erste Besuch geschützt und die Latenz der HTTP-zu-HTTPS-Weiterleitung über HSTS tritt sofort ein.

Probiere es selbst aus

Wenn die BBC gerne HSTS testen möchte, stehen die Chancen gut, dass Sie das auch für Ihre Website tun können. Probiert es einfach mal mit eurer Website und fügt sie der HSTS-Vorabladeliste hinzu, wenn ihr sicher seid, dass es keine Programmfehler gibt, um eure Nutzer sicherer und schneller zu machen.