HTTP Strict Transport SecurityHTTP Strict Transport Security (kurz HSTS) ist ein Sicherheitsmechanismus für HTTPS-Verbindungen, der sowohl vor Aushebelung der Verbindungsverschlüsselung durch einen Downgrade-Angriff als auch vor Session Hijacking schützen soll. Hierzu kann ein Server mittels des HTTP response header Strict-Transport-Security dem Browser des Anwenders mitteilen, in Zukunft für eine definierte Zeit (max-age) ausschließlich verschlüsselte Verbindungen für diese Domain zu nutzen. Optional lässt sich dieses über den Parameter includeSubDomains auf alle Subdomains ausweiten, also nicht nur auf Ein grundsätzliches Problem des Standards ist, dass beim Erstaufruf einer Domain zunächst ein Request vom Client zum Server abgeschickt werden muss, um zu prüfen, ob dieser Verschlüsselung fordert. Bei dieser initialen Abfrage könnte ein Angreifer ansetzen, bevor die zukünftige Kommunikation zu der aufgerufenen Domain verschlüsselt wird. Um diesem Problem entgegenzuwirken, wird eine von Google Chrome betreute und den anderen großen Webbrowsern genutzte HSTS preload list gepflegt. Steht eine Domain auf dieser Liste, überspringt der Browser die Erstanfrage und verschlüsselt sämtliche Kommunikation sofort.[1] Die Eintragung zusätzlicher Domains ist kostenlos möglich.[2] GeschichteDer Standard wurde 2012 von der IETF als RFC 6797[3] veröffentlicht[4] und wird unter anderem von den jüngsten Versionen der gängigen Webbrowser unterstützt.[5] Anlass für die Entwicklung waren von Moxie Marlinspike 2009 demonstrierte Attacken auf verschlüsselte Verbindungen durch Man-in-the-Middle-Angriffe, die sich bereits vor Zustandekommen einer verschlüsselten Verbindung dazwischen schalten.[4] FunktionsweiseUm HSTS anzuwenden, müssen sich sowohl der Server als auch die Browser der Anwender entsprechend der Vorgabe verhalten. ServerDer Server versendet bei HTTPS-Verbindungen einen zusätzlichen Header mit der Information, dass die angeforderte Seite in der Zukunft nur über eine verschlüsselte Verbindung verfügbar ist. Dieser Header muss dann vom Browser des Anwenders entsprechend interpretiert werden. Der Header ist
den Browser des Anwenders an, für die Dauer eines Jahres nur verschlüsselte Verbindungen zu dieser Seite aufzubauen. BrowserWenn ein Browser einen HSTS-Header erhält, muss er sich für alle zukünftigen Verbindungen zu dieser Domain bis zum Ablauf der angegebenen Gültigkeit folgendermaßen verhalten:[6]
Wird ein HSTS-Header über eine unverschlüsselte Verbindung übertragen oder ist das Zertifikat der Verbindung nicht gültig, muss der Browser diesen ignorieren. Browser-UnterstützungFolgende Browser unterstützen seit der angegebenen Versionsnummer den HSTS-Standard (in Reihenfolge der Erstveröffentlichung):[7]
KritikDie Speicherung der HSTS-Informationen durch den Client lässt sich für ein Tracking von Benutzern ausnutzen. Besonders kritisch wurde in diesem Zusammenhang diskutiert, dass Google Chrome die HSTS-Informationen auch in den für besonderen Datenschutz ausgelegten Inkognito-Modus übernahm.[11] Stand 2018 war das Problem für gängige Browser nicht mehr gegeben.[12] Verwandte ProtokolleWas HSTS für HTTP(S)-Verbindungen leistet, soll MTA-STS (SMTP MTA Strict Transport Security)[13] für Mailserver bzw. SMTP bieten.[14] Weblinks
Einzelnachweise
Information related to HTTP Strict Transport Security |