Papier

HSTS, was es ist und wie man es angeht

HSTS (HTTP Strict Transport Security) ist ein Standard, der in RFC 6797beschrieben ist Einführung der Möglichkeit, „Strict-Transport-Security“ im Header anzugeben, was nach der Interpretation durch den Browser dazu führt, dass alle Anfragen an eine bestimmte Domain auf HTTPS umgeleitet werden, und wenn das nicht möglich ist (keine Unterstützung für HTTPs), sollte der Browser eine Fehlermeldung anzeigen und eine solche Anfrage blockieren und den Benutzer über den Fehler und einen möglichen Versuch, einen MITM-Angriff zu starten, informieren. Der Browser merkt sich die HSTS-Einstellungen nur bei einer verschlüsselten Verbindung, bei einer unverschlüsselten Verbindung wird der Header ignoriert. Da es keine Möglichkeit gibt, die strenge Sicherheit über eine unverschlüsselte Verbindung zu deaktivieren, müssen Sie vorsichtig sein, wenn Sie diese Einstellungen vornehmen, siehe hsts-Fallen unten. Es ist auch wichtig, daran zu denken, dass alle neuen Benutzer, die unsere Website zum ersten Mal betreten, keinen STS-Eintrag für unsere Domain haben und dann anfällig für Angriffe sind. Diese Einschränkung kann jedoch durch eine Preload-Anforderung umgangen werden, die im Folgenden beschrieben wird.

Warum und wann Sie HSTS verwenden sollten

HSTS sollte in erster Linie von Domains verwendet werden, die eine vollständige Datenverschlüsselung nutzen; zum Beispiel Websites von Banken und Finanzinstituten oder Online-Shops, bei denen wir nicht wollen, dass unsere Daten in falsche Hände geraten oder unser Kunde, der am Flughafen eine WI-FI-Verbindung nutzt, Opfer einer MITM-Attacke (Man-in-the-Middle-Attacke) wird, bei der ein DNS-Poisoning stattfindet und eine ahnungslose Person auf einer mit unserer identischen Website landet, versucht, sich einzuloggen und jemand anderes das Passwort übernimmt. Wenn jemand nicht auf die Adressleiste schaut, wo kein Vorhängeschloss zu sehen ist – wird er nicht wissen, dass die Seite nur ein typisches Phishing ist (gefälschte Originalseite, die verwendet wird, um nach einem Passwort oder anderen Daten zu fischen). Hier kommt HSTS ins Spiel. Wenn wir auf eine Website „beispiel.de“ zugreifen wollen, auf der HSTS-Informationen gespeichert sind, lehnen wir die Umleitung auf ein unverschlüsseltes Protokoll automatisch ab und zeigen dem Benutzer eine Warnung an, wodurch das Problem beseitigt wird, dass der Benutzer nicht auf die Adressleiste geschaut hat, um sicherzustellen, dass das Vorhängeschloss vorhanden ist.

Wann sollte man HSTS NICHT verwenden und warum?

Verwenden Sie HSTS nicht, wenn Ihre Domain auch unverschlüsselte Elemente, wie z. B. Bilder, enthält und nur bei der Anmeldung oder bei Einkäufen eine Verschlüsselung verwendet. Weil es die Serverlast aufgrund des erhöhten Volumens des verschlüsselten Datenverkehrs erhöhen kann. Es ist jedoch zu bedenken, dass nur teilweise verschlüsselte Seiten ihre Benutzer der Gefahr eines Angriffs aussetzen.

Das Problem kann auch auftreten, wenn wir keine zuverlässige Quelle für ein Zertifikat haben, z. B. wenn wir jetzt ein Zertifikat gekauft haben, aber nicht vorhaben, es zu erneuern, weil es zu teuer ist. Sie können dies umgehen, indem Sie das kostenlose Zertifikat auf der StartSSL-Website verwenden.

Wie schalte ich das HSTS ein?

HSTS wird aktiviert, indem der Client-Browser einen Header mit dem entsprechenden Inhalt sendet, z. B:
Strict-Transport-Security: max-age=31536000; includeSubDomains
Strict-Transport-Security: – Sagt dem Browser, dass wir Strict Transport Security oder HSTS verwenden,
max-age=31536000 – in diesem Fall Jahr, Wert in Sekunden, d. h. wie lange der Browser unsere Domain als HSTS behandeln und sich daran erinnern soll, das SSL/TLS-Protokoll zu verwenden, um sich mit ihr zu verbinden,
includeSubDomains – bedeutet, dass auch Subdomains verschlüsselt werden sollen; hier müssen Sie vorsichtig sein, wenn Sie eine typische Subdomain für einen Blog haben, auf dem wordpress installiert ist. Es speichert keine gültigen Daten und verwendet daher keine Verschlüsselung. Wenn unser Zertifikat diese Domain nicht unterstützt, sollten wir diese Direktive nicht hinzufügen und nur max-age verwenden. Denn wenn jemand unsere Website example.pl betritt, von der er zu unserem Blog blog.example.pl geht, wird er aufgrund der Tatsache, dass wir Subdomains einschließen, gezwungen sein, eine verschlüsselte Verbindung zu verwenden und unser Zertifikat ist nur auf example.pl gültig. An diesem Punkt kann die Person nicht mehr auf blog.beispiel.de zugreifen.
Kurz gesagt: Fügen Sie einfach Folgendes in die .htaccess-Datei unserer Website ein:
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"

Um die HSTS-Daten für das nächste Jahr auf unserer Seite zu speichern und Subdomains einzubeziehen, erfordert dies – im Falle des Apache-Servers – ein aktiviertes Header-Modul, das auf unserem Server unterstützt wird.
Zum Schluss sollten wir, wie von Google empfohlen, eine 301-Weiterleitung auf die https-Version einrichten, nur für den Fall, dass ein Link falsch zeigt oder jemand bei der ersten Anmeldung die falsche Adresse eingegeben hat und noch keinen STS-Eintrag hatte. Dies kann mit einer einfachen Eingabe geschehen:

Durch dieses Manöver werden alle Besucher von der ungesicherten Verbindung auf die gesicherte Verbindung umgeleitet. Dies erfordert die Unterstützung für das Rewrite-Modul im Apache-Server.
Dann testen wir die Einstellungen:
curl -s -D- https://przyklad.pl/ | grep "Strict-Transport-Security:"
Wenn der Befehl den STS-Header zurückgibt, dann haben wir den Server korrekt konfiguriert.

HSTS-Fallen und was zu vermeiden ist

Bitte beachten Sie, dass HSTS im Client-Browser aufzeichnet, dass unsere Website über HTTPS laufen sollte, und wenn dies nicht der Fall ist, wird ein Fehler angezeigt und das Hinzufügen einer Ausnahme nicht zugelassen. Ein zusätzliches Problem kann auftreten, wenn die Gültigkeit des Zertifikats abläuft und wir es nicht erneuern oder wir einfach darauf verzichten wollen; es kann den Zugang des Kunden zu unserer Website einschränken, besonders wenn er z.B. vor einem Monat auf unserer Website war und wir den STS-Header deaktiviert haben (Einstellung max-age=0 erst vor einer Woche) Eine solche Person wird unsere Website nicht betreten können. Wenn Sie planen, das Zertifikat zu kündigen, oder Sie ein kostenloses Zertifikat verwenden und dieses kompromittiert wird, müssen Sie ein neues, wahrscheinlich ein kostenpflichtiges, erstellen, um Ihre alten Kunden nicht zu verlieren, die einfach nicht mehr auf Ihre Website zugreifen können. Sie müssen also sicher sein, dass Sie ein gültiges Zertifikat haben und Ihr Server auch in sechs Monaten noch SSL-Verbindungen unterstützt.
Wir müssen uns auch daran erinnern, dass der Benutzer erst nach dem ersten Besuch unserer Seite geschützt ist, denn nur dann hat der Browser die Möglichkeit, den Header herunterzuladen, die Ausnahme ist, wenn unsere Seite einen Preload-Eintrag hat.

HSTS-Vorspannung

Sie besteht darin, ein Preload-Tag in den HSTS-Header einzufügen und die Seite dann an die entsprechenden Browser-Entwickler zu übergeben, z. B. können Sie für Chrome und Firefox die hsts preload, das eine Verbindung zu unserem Server herstellt, prüft die Header und wenn der Header einen Eintrag hat, preload und includeSubDomains, der z. B. ist: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload dann wird unsere Seite in die Liste der vorgeladenen Seiten aufgenommen. Dadurch weiß jeder Browser auf der Welt, der diese Liste verwendet, dass die Verbindung mit unserer Seite nur über HTTPS erfolgen darf, und es gibt keine Ausnahmen im Falle eines Fehlers, z. B. bei einem Zertifikat. Ein Beispiel für eine Prüfung wäre der Versuch, eine Verbindung mit der Domäne https://hsts.roan24.pl herzustellen. Sollte diese Seite einen HSTS-Fehler anzeigen und das Hinzufügen einer Ausnahme nicht zulassen. Im Falle des IE Version 11 zeigt der Browser nur eine Warnung über ein ungültiges Zertifikat an, erlaubt aber das Hinzufügen einer Ausnahme, was bedeutet, dass er HSTS noch nicht unterstützt, was sich voraussichtlich mit der Veröffentlichung einer neuen Version, die bereits Microsoft Edge heißt, ändern wird.

Ich erhalte einen HSTS-Fehler, wie kann ich ihn umgehen?

Das sollten Sie nicht. Meistens bedeutet der HSTS-Fehler, dass jemand versucht, sich als die Website auszugeben, die Sie besuchen möchten. Wenn Sie jedoch sicher sind, dass es sich um einen Fehler handelt, der z. B. durch eine falsche Einstellung auf Ihrer Testseite oder Ähnliches verursacht wird, können Sie den HSTS-Eintrag entfernen, indem Sie:

In Firefox:
Błąd HSTS - Firefox

Schließen Sie alle Registerkarten dieser Domain, und suchen Sie in der Historie (Strg + h) nach dieser Domain, klicken Sie mit der rechten Maustaste und geben Sie Alle Seiten löschen ein.

In der Adressleiste geben wir ein: „about:permissions“ und dort geben wir die Adresse der Seite ein und in der oberen rechten Ecke geben wir „forget page“ ein. Starten Sie den Browser neu und rufen Sie die Website ohne hsts auf.

In Chrom:
Błąd HSTS - Chrome

Geben Sie in der Adressleiste „chrome://net-internals/#hsts“ ein und geben Sie dann die zu löschende Domain in das Kreisfeld ein: „Domäne löschen“. Und wir versuchen erneut, auf die Seite zuzugreifen.

Bitte beachten Sie, dass Sie durch die Nutzung der Website, ohne Ihre Browsereinstellungen zu ändern, der Datenschutzerklärung und der Speicherung von Cookies zustimmen, die ein effizientes Funktionieren unserer Website ermöglichen.