GlobalSign Blog

16 Mai 2017

Was ist HSTS und wie führen Sie es ein?

Stellen Sie sich vor Sie sind in Ihrem Lieblingsrestaurant oder kommen von einer Konferenz in Ihr Hotelzimmer zurück und wollen das kostenlose WLan-Netz nutzen. Ist Ihnen schon mal aufgefallen, dass die WLan-Passwörter meist auf Papier gedruckt sind und nie geändert werden?

Ein böswilliger Hacker hat im gleichen Hotel ein Zimmer gebucht. Er verfolgt alle Verbindungen, die über das unsichere WLan-Netz erfolgen.

Zu den vielen böswilligen Talenten des Hackers gehört auch der sogenannte ‚Packet Sniffer‘. Darunter versteht man eine Art Netzwerkversorgung, die Datenströme analysiert und Anwendungen in den Datenfluss des ausgewählten Netzwerks einspeist.

Der Hacker kann Ihren HTTP Netzwerk-Traffic für alle Websites, die nur 301 Redirects von HTTP zu HTTPS nutzen abfangen. Dies kann dem Hacker als Einstieg dienen; um dann Ihre SSL Verschlüsselung zu deaktivieren und wertvolle Daten zu stehlen, oder noch schlimmer, eine falsche Login-Seite einzuspeisen.

Deshalb muss Ihre Website auf HTTP Strict Transport Security basieren, anstatt nur auf HTTPS. Nur ein SSL Zertifikat reicht nicht.

Was ist HSTS?

HTTP Strict Transport Security (HSTS) ist ein Webserver Verzeichnis, das Benutzer und Webbrowser informiert, wie die Verbindung zwischen Response Header, der ganz am Anfang gesendet und später zurück zum Browser gesendet wird, zu handhaben ist.

Damit wird der ‚Strict-Transport-Security‘ Parameter festgelegt. Es zwingt diese Verbindungen zur HTTPS Verschlüsselung, und ignoriert jedes Skript, das Ressourcen der Domain über HTTP laden will. HSTS ist ein Teil eines großen Bündels an Sicherheitsmaßnahmen, das Sie für Ihren Webserver oder Webhosting-Dienst nutzen können.

Warum sollte Ihr Unternehmen HSTS einführen?

Sie würden nie Ihr Geschäft oder Ihr Haus verlassen, ohne die Tür abzuschließen, oder? Vielleicht haben Sie sogar Sicherheitsschranken am Ausgang, um Diebstahl zu verhindern. Daten können genauso wertvoll wie Dinge in Ihrem Laden oder Haus sein. Deshalb ist es genauso wichtig, diese wegzuschließen und zu schützen. Nur ein Schlosssymbol in der Adresszeile Ihrer Website ist möglicherweise nicht genug, da Leute andere Wege finden Ihre Website über http:// zu erreichen. HSTS zwingt Browser und App-Verbindungen wo möglich HTTPS zu nutzen. Auch wenn jemand nur www oder http:// eingibt.

HTTPS ist Teil des Suchmaschinenrankings von Google und fällt unter die Kategorie ‚Website Qualität‘, zusammen mit vielen anderen Faktoren, wie Ladezeit und mobile Version der Seite.

Einfach nur einen 301 Redirect von http:// zu https:// zu erstellen reicht nicht, um Ihre Domain komplett zu sichern. Es besteht immer noch eine Angriffsstelle bei der unsicheren Umleitung von HTTP zu HTTPS.

$ curl --head http://www.facebook.com HTTP/1.1 301 Moved Permanently Location: https://www.facebook.com/

Die Hacker können weiterhin Cookies oder Session IDs der Seite (werden normal als URL Parameter versandt) sammeln oder den Traffic auf ihre Phishing-Seite umleiten, die genau wie Ihre Seite aussieht.

Mit einem Strict-Transport-Security Header ist es für Angreifer so gut wie unmöglich irgendwelche Informationen ausfindig machen. Nicht mal Ihren Yogastundenplan!

$ curl --head https://www.facebook.com HTTP/1.1 200 OK Strict-Transport-Security: max-age=15552000; preload

Wie beliebt ist HSTS?

Das milliardenschwere Unternehmen Google hat am 29. Juli 2016 offiziell eine HSTS Sicherheitsrichtlinie eingeführt.

Das HSTS Projekt wurde aber schon 2009 in die Wege geleitet. Am 8. Juni 2015 wurde von CIO Tony Scott dazu eine Notiz verschickt, und seit 2015 wurde die Arbeit am Projekt HSTS verstärkt.

Facebook, Google, Gmail, Twitter und PayPal, um nur ein paar der großen sozialen Netzwerke und Zahlungsportale zu nennen, haben alle bis heute HSTS eingeführt. Sogar die US Regierung, Executive Office des Präsidenten hat das Memento M-15-13 verschickt – Richtlinie für sichere Verbindungen zwischen Bundeswebsites und Webdiensten. Das HSTS Projekt wurde schon 2009 begonnen.

Wie Sie HSTS für Ihre Website einführen

Falls Sie Subdomains für Ihren Website-Inhalt nutzen, brauchen Sie ein Wildcard Zertifikat nur für HTTPS. Ansonsten reicht ein Domain Validated, Organization Validated oder Extended Validation SSL Zertifikat. Stellen Sie sicher, dass es installiert ist und ordnungsgemäß funktioniert.

Die Anfangsschritte unterhalb testen Ihre Webanwendungen, Benutzerlogins und das Sessionmanagement. Alle 5 Minuten läuft HSTS ab. Testen Sie erst eine Woche und dann einen Monat lang. Beheben Sie alle Probleme, die dabei auftreten. Passen Sie max-age=xxx an. Eine Woche = 604800; Ein Monat = 2592000. Fügen Sie den Preload hinzu, nachdem Ihre Testphase beendet ist.

Nachdem Sie sicher sind, dass HSTS für Ihre Webanwendung funktioniert, stellen Sie max-age auf 63072000 um. Das ist zwei Jahre. Dies wird vom Chromium Projekt von Ihrer Preload Eingabe erwartet!

Allgemeine Voraussetzungen für HSTS

  • Ihre Website muss ein gültiges SSL Zertifikat haben. Sie können die Gültigkeit Ihres SSL Zertifikats mit dem GlobalSign SSL Checker prüfen.
  • Leiten Sie ALLE HTTP Links auf HTTPS weiter, indem Sie einen 301 Permanent Redirect erstellen.
  • Alle Subdomains müssen von Ihrem SSL Zertifikat abgedeckt sein. Möglicherweise ist ein Wildcard Zertifikat die beste Wahl für Sie.
  • Erstellen Sie einen HSTS Header für die Basis-Domain für HTTPS Anfragen.
  • Max-age muss mindestens 10886400 Sekunden oder 18 Wochen sein. Wählen Sie den 2-jährigen Wert, wie oben erwähnt!
  • Die includeSubDomains Anweisung muss, wenn vorhanden, bestimmt sein!
  • Das Preload Anweisung muss bestimmt sein.

Diese Anforderungen gelten am oder ab dem 29.Februar 2016. Wenn die Kriterien nicht erfüllt werden, wird Ihr Eintrag entfernt. Falls Sie aus irgendeinem Grund Ihre HTTPS Domain von der Liste entfernen müssen folgen Sie dieser Anleitung.

HSTS Installation auf Apache Webserver

Sie können dies zu Ihrer .htaccess Datei im Toplevel Rootordner, wie z.B. public_html oder httpdoc hinzufügen.

# Use HTTP Strict Transport Security to force client to use secure connections only Header always set Strict-Transport-Security "max-age=300; includeSubDomains; preload"

HSTS Installation für lighttpd

Fügen Sie dies zu Ihrer Lighttpd Konfigurationsdatei /etc/lighttpd/lighttpd.conf hinzu.

server.modules += ( "mod_setenv" ) $HTTP["scheme"] == "https" { setenv.add-response-header = ("Strict-Transport-Security" => "max-age=300; includeSubDomains; preload") }

HSTS Installation für NGINX

Dies wird in Ihre site.conf Datei eingefügt und wir haben eine angepassten Code mit zusätzlichen Sicherheitsparametern erstellt.

add_header Strict-Transport-Security 'max-age=300; includeSubDomains; preload; always;'

Während wir NGIX-Einstellungen recherchiert haben, ist uns eine Regierungswebsite aufgefallen, die falsche Informationen weitergibt und haben die notwendigen Änderungen am Code weitergegeben, der HSTS erzwingt, egal welche Antwort der HTTP Code gibt.

HSTS Installation für IIS Servers

protected void Application_BeginRequest(Object sender, EventArgs e) { switch (Request.Url.Scheme) { case "https": Response.AddHeader("Strict-Transport-Security", "max-age=31536000; includeSubDomains; preload"); break; case "http": var path = "https://" + Request.Url.Host + Request.Url.PathAndQuery; Response.Status = "301 Moved Permanently"; Response.AddHeader("Location", path); break; } }

Wenn Sie unsere Empfehlung installiert haben, gehen Sie zum Formular HSTS Preloading Application und fügen Sie Ihre Website zur Preload-Liste hinzu. Es wird eine Zeit lang dauern, bis Ihre Website in der Liste angeführt wird.

Was ist HSTS Preloading?

HSTS Preloading ist eine Funktion, die in Browser eingefügt ist und eine globale Liste an Hosts dazu zwingt, alleinig HTTPS auf Ihrer Seite zu nutzen.

Die Liste wird vom Chromium Project erstellt und wird von Chrome, Firefox und Safari genutzt. Diese Seiten sind nicht abhängig davon, ob HSTS Response Headers erstellt wurden, um die Richtlinie durchzusetzen. Stattdessen weiß der Browser schon, dass der Domainname alleinig HTTPS benötigt und führt HSTS durch, bevor irgendeine Verbindung oder Kommunikation zustande kommt.

Dadurch hat der Hacker keine Möglichkeit über HTTP Redirects anzugreifen oder Inhalte abzuändern. Der HSTS Response Header wird in dem Szenario aber nach wie vor benötigt und muss weiterhin für die Browser vorhanden sein, die keine HSTS Preloading Listen nutzen.

Referenzen

HTTP Strict Transport Security gibt es nun seit mehr als acht Jahren. Die Richtlinie nach der alleinig HTTPS in Ihrer Web-Infrastruktur genutzt wird, hilft die Bösen fern zu halten und sichert Ihre vertraulichen Daten. Es dauert nur wenige Minuten, um dies in Ihrem Webmaster oder Webhosting-Dienst zu installieren und verbessert gleichzeitig Ihr SSL Ergebnis im GlobalSign SSL Checker.

HSTS Referenzen

  1. HTTP Strict Transport Security
  2. Google Starts Giving A Ranking Boost To Secure HTTPS/SSL Sites
  3. Google I/O 2014 - HTTPS Everywhere
  4. Bringing HSTS to www.google.com
  5. Strict Transport Security W3 List Archives
  6. Compliance Guide OMB - CIO
  7. Policy to Require Secure Connections across Federal Websites and Web Services

Über Denver

Denver ist Präsident der StrikeHawk eCommerce, Inc. und ist seit 2005 in sicherem Webhosting involviert. Er ist ein Open Source Software Vorreiter und hat viele Open Source Projekte im Web betreut. Er ist Mitbegründer der StrikHawk eCommerce, Inc., die sich auf sicheres Hosting von Open Source eCommerce Webanwendungen spezialisiert haben. Denver lebt im Süden der Vereinigten Staaten.

StrikeHawk eCommerce, Inc. bietet geteilte Hosting-Lösungen, Cloud und fest zugeteiltes Hosting mit Support für die verschiedenen Warenkorb-Anwendungen wie PrestaShop, Woocommerce und WHMCS. Strikehawk ist außerdem autorisierter Weiterverkäufer von GlobalSign Produkten und Diensten.

Artikel teilen