Absichern des HTTPS-Protokolls: HSTS und HPKP
Moderne Browser warnen mittlerweile vor unverschlüsselten, also unsicheren Websites, sodass der verschlüsselte Internetverkehr immens zugenommen hat. Sie können die Sicherheit von HTTPS, also dem verschlüsselten Internetverkehr, weiter stärken, denn in den letzten Jahren haben sich diverse Mechanismen etabliert. Nicht alle sind bezüglich des Datenschutzes unbedenklich. Deshalb beschäftigen wir uns im heutigen Beitrag mit dem Absichern des HTTPS-Protokolls und zeigen Ihnen, wie Sie Ihre Websicherheit weiter steigern können.
Bedrohungen im World Wide Web
Überall dort, wo sensible Daten übertragen werden, sind SSL- bzw. TLS-Zertifikate unverzichtbar. TLS gehört zu den sichersten Protokollen und konnte sich gegen Angriffsversuche immer gut behaupten. Es gibt jedoch Gefahren, die wir Ihnen nun näher vorstellen:
SSL-Stripping: Datenzugriff vor Verschlüsselungsbeginn
Moxie Marlinspike, Kryptograf, Unternehmer, Sicherheitsforscher und Mitbegründer von Signal, stellte im Jahre 2009 auf der Black Hat sein Programm sslstrip vor. Dabei handelt es sich um einen Proxy, welches sich zwischen Client und Server positioniert. Die vom Server ausgelieferten Sites werden von dem Tool gezielt auf eingebettete Links oder Weiterleitungen untersucht, die auf TLS-geschützte Login-Sites verweisen. Ein solcher Link wird durch das Tool auf einen HTTP-Link umgewandelt. Anstelle der verschlüsselten Anmeldung klickt sich der Anwendende so auf eine Seite, die Daten im Klartext versendet. Nutzen Angreifer sslstrip als Zwischenstation, ist das Mitlesen problemlos möglich. Der Anwendende bekommt davon nichts mit, da das SSL-Stripping keine Warnmeldung im Browser erzeugt.
Der Bösewicht ist in diesem Fall also das kleine Tool sslstrip, welches die Daten vor der Verschlüsselung abgreift. Die eigentlich sichere Verschlüsselung wird übergangen. SSL bzw. TLS bietet den notwendigen Schutz: Die Option, dass Datenpakete abgefangen und mitgelesen werden können, resultiert nicht aus einer Unsicherheit im Protokoll – die Verschlüsselung wird verhindert.
Websitebetreiber können, um SSL-Stripping zu verhindern, die Verschlüsselung für alle Unterseiten der Webpräsenz aktivieren. Weiter gilt es, eingehende http-Verbindungen auf sichere HTTPS-Verbindungen umzuleiten. Setzen Sie Cookies ein, stellen Sie idealerweise sicher, dass diese keinesfalls über ungesicherte HTTP-Verbindungen zurückgesendet werden. Indem Sie Cookies mit dem Attribut „secure“ auszeichnen, können Sie sicherstellen, dass Ihr Server ausschließlich Rückmeldungen per HTTPS erhält. Auch der IETF-Standard HSTS kann hilfreich sein; weiter unten beleuchten wir diese Sicherheitsmaßnahme.
MitM-Angriffe: Zwischenstelle in der Verbindung
Spricht man von Man-in-the-middle-Attacken (MitM-Attacken), so meint man ein Angriffsszenario, bei dem sich der Angreifer zwischen das Opfer und der durch das Opfer verwendeten Ressource schaltet. Auch das eben vorgestellte Programm sslstrip von Marlinspike ist eine Form des MitM-Angriffs; in dem Fall schaltet sich der Proxy dazwischen. Damit Angreifer hierbei erfolgreich sein können, müssen sie ihr Tun vor dem Opfer sowie der Ressource – in unserem Fall: Client und Server – verbergen. Sowohl vor dem Client als auch vor dem Server gibt sich der Angreifer als eigentlicher Kommunikationspartner aus.
Mit den so abgefangenen Informationen können Angreifer verschiedene Aktionen starten: Identitätsdiebstahl ist genauso möglich wie das Fälschen von Transaktionen oder das Stehlen geistigen Eigentums. Eine starke Ende-zu-Ende-Verschlüsselung gehört zu den wirksamsten Mitteln gegen Man-in-the-Middle-Attacken. Denn so liegen Daten auch auf den Teilstrecken nie in unverschlüsselter Form vor.
HPKP: Doppelte Prüfung
Das HTTP Public Key Pinning ist als Verfahren eingeführt worden, um Verschlüsselung zu stärken. Es dient dazu, dem Browser mitzuteilen, dass ein SSL-/TLS-Zertifikat aus der Zertifikatskette vertrauenswürdig ist. Die Erweiterung für das HTTP-Protokoll erlaubt es, Public-Key-Sets für künftige verschlüsselte Verbindungen zu bestimmten Hosts festzulegen. Ein Client, der auf einen Server zugreift, erfährt dadurch erst bei der Kontaktaufnahme, welcher öffentliche Schlüssel des Hosts vertrauenswürdig ist („Trust on First Use“-Verfahren; „Vertrauen bei der Erstanwendung). Einträge von verifizierten Schlüsseln werden als „Pin“ bezeichnet, daher auch der Name des Verfahrens. Erstellte Pins können dem Client als HTTP-Header mitgeteilt und so für eine bestimmte Zeit gespeichert werden.
Ziel der Einführung von HPKP war es, MitM-Angriffe, wie wir sie oben beschrieben haben, zu verhindern. Der sinnvoll klingende „Trust on First Use“-Ansatz zeigte sich in der Praxis als problematisch: Das Verfahren kann nicht den ersten Besuch schützen, bei dem es darum geht, die gepinnten Keys zu übermitteln. Eine hohe Komplexität bei der Konfiguration, die sogar zur langfristigen Aussperrung von Nutzern führen kann, sowie eine geringe Verbreitung sind weitere Probleme des Verfahrens. All das führte dazu, dass Google mit der Chrome-Version 72 die Unterstützung für HPKP einstampfte. Diesem Beispiel folgten weitere: HPKP wird von modernen Browsern nicht mehr unterstützt.
CT: Durch Transparenz zu Sicherheit
Eine weitere Maßnahme, Verschlüsselung sicherer werden zu lassen, stammt aus dem Hause Google und nennt sich Certificate Transparency (CT). Wie es zu CT kam und wie diese Maßnahme arbeitet, können Sie in unserem Blogbeitrag „Certificate Transparency: wichtige Änderungen bei Ihren TLS-Zertifikaten“ nachlesen.
Google hat mit der Umsetzung ernstgemacht: Versäumen es Zertifizierungsstellen, Zertifikate gemäß IETF-RFC 6962 auszustellen, zeigt Chrome beim Besuch einer solchen Website eine entsprechende CT-Warnung an. CT ist letztlich ein öffentliches Logbuch, in dem Zertifizierungsstellen ihre Aktivitäten eintragen müssen. Kryptografisch gesichert, lassen sich diese Einträge rückwirkend nicht mehr ändern. So soll es gelingen, missbräuchlicher Verwendung von Zertifikaten auf die Spur zu kommen.
HSTS: Erweiterung für Pflichtverschlüsselung
HSTS kürzt HTTP Strict Transport Security ab. Durch diese Erweiterung wird Browsern mitgeteilt, dass sie für eine bestimmte Zeit ausschließlich auf sichere, also verschlüsselte Verbindungen zugreifen sollen. Schon zu Beginn einer Verbindung wird dank HSTS also eine HTTPS-Verschlüsselung erzwungen, sodass auch die Gefahr von MitM-Angriffen sinkt.
Sowohl Server als auch Browser müssen bei HSTS bestimmte Aufgaben erfüllen: Bei Anfragen antwortet der Server, indem er ein Strict-Transport-Security-Flag im Header mitsendet. Dies fordert den Browser dazu auf, künftig ausschließlich verschlüsselte Sitzungen für diese Domain aufzubauen. Wie lange dies so bleibt, ist in dem Flag als max-age in Sekunden angegeben. Gängiger Weise werden hier Werte von einem Jahr eingetragen.
HSTS konnte sich etablieren – neben Facebook nutzen beispielsweise auch Google, Twitter oder PayPal diese Erweiterung. Allerdings gibt es tatsächlich ein Problem mit dem Datenschutz: Damit sich der Browser des Nutzenden merken kann, auf welchen Sites HSTS genutzt wird, werden Einträge, die Cookies ähneln, in Browserdatenbanken gespeichert. Aufgrund der Schutzfunktion von HSTS werden HSTS-Einträge auch im privaten Modus aktiviert, sodass sie von besuchten Sites überprüft werden können. Genau hier liegt die Gefahr, denn so wird HSTS zu einer effizienten Methode der Nutzerverfolgung. HSTS-Einträge sind somit als sogenannte SuperCookies zu bezeichnen.
Eine Zeitlang blieben diese Überlegungen theoretisch – bis Brent Fulgham vom WebKit-Team in einem Blog-Post berichtete, solch einen Missbrauch real beobachtet zu haben. Die HSTS-Implementierung in WebKit, die u. a. in Apples Browser Safari zum Einsatz kommt, wurde mit zwei Einschränkungen versehen. HSTS kann eigentlich für jede beliebige Subdomain gesetzt werden. WebKit hat dies beschränkt auf den jeweils aktuellen Hostnamen oder auf die Top Level Domain +1. Blockt WebKit bereits Third-Party-Cookies auf Domains, wird auch der HSTS-Zustand von Subressource-Requests ignoriert.
Mit diesen Maßnahmen soll die Schutzwirkung von HSTS nicht herabgesetzt werden, während Tracking wirkungsvoll unterbunden wird. Alle modernen Browser unterstützen HSTS, sodass diese Erweiterung – richtig eingesetzt und als SuperCookie entschärft – die Sicherheit im Internet tatsächlich weiter stärken kann.
Absichern des HTTPS-Protokolls
Sie sehen: Es gibt Bedrohungen im World Wide Web, denen nicht leicht beizukommen ist. Verschlüsselung erhöht die Sicherheit im Internet ganz wesentlich. Dabei ist die Verschlüsselung – ordentlich implementiert und sinnvoll konfiguriert – nach wie vor schwer zu knacken und sicher. Nichtsdestotrotz gibt es Kriminelle, die sich davon nicht einschüchtern lassen, und denen es durch MitM-Angriffe gelingen kann, die Verschlüsselung zu umgehen. Eine erzwungene Verschlüsselung mittels HSTS schafft Abhilfe. Leider hat HSTS selbst mit Datenschutzproblemen zu kämpfen, jedoch kann das Tracking mit HSTS-Einträgen als SuperCookies leicht unterbunden werden. Während HPKP nur kurze Zeit existierte, schafft CT ein vertrauensvolles Umfeld.
Schreibe einen Kommentar