Sicherheit und Datenschutz werden für Benutzer und Organisationen immer wichtiger. Technologien wie HTTPSHTTPS, eine Kombination aus HTTP- und SSL/TLS-Protokollen, wurde entwickelt, um die Vertraulichkeit und Integrität des Web-Browsings zu gewährleisten. Viele Organisationen haben Maßnahmen ergriffen, um die Einführung von HTTPS zu fördern. Seit 2014 verbessert Google das Ranking von Websites, die HTTPS verwenden. Darüber hinaus können Websites in Chrome, die kein HTTPS nutzen, weder geografische Standorte noch den Anwendungscache verwenden. Nutzer können Websites ohne aktiviertes HTTPS unter Umständen gar nicht erst besuchen. Dies führt schließlich zu einem Warnsymbol in der Adressleiste des Chrome-Browsers. Früher war die Beschaffung und Verwaltung digitaler Zertifikate sehr kostspielig. Daher verzichteten kleine Unternehmen oder große Unternehmen mit vielen Domains aufgrund der Kosten oft auf die Einführung von HTTPS. Let's Encrypt hat mit seinem ACME-Protokoll die Beschaffung digitaler Zertifikate kürzlich vereinfacht und verbilligt. SSL / TLS Zertifikate und stellen Domain Validation (DV)-Zertifikate kostenlos über einen vollautomatischen Prozess bereit. Neben Let's Encrypt stellen mehrere Content-Distribution-Netzwerke und Cloud-Service-Provider, darunter Cloudflare und Amazon, ihren Kunden kostenlose TLS-Zertifikate zur Verfügung.
Es existieren jedoch weiterhin zahlreiche HTTP-Verbindungen im Internet. Die nahtlose Verarbeitung von HTTP- und HTTPS-Verbindungen stellt Browser aufgrund von HTTP-Stripping-Angriffen vor die Herausforderung, diese Angriffe zu umgehen. HTTPS-Stripping-Angriffe haben seit Marlinspikes Vorstellung von sslstrip auf der Black Hat Konferenz 2009 weitreichende Besorgnis ausgelöst. Angreifer können die Kommunikation zwischen der Zielwebsite und dem Client abfangen und alle HTTPS-Einträge in den Antwortpaketen der Website durch HTTP-Einträge ersetzen. Obwohl dieser Angriff gegen die Regel verstößt, dass TLS/SSL Ende-zu-Ende-Verschlüsselung gewährleisten soll, bemerken weder Client noch Server den Angriff, da die vom Server gesendeten Pakete weiterhin verschlüsselt sind.
Zum Schutz vor Stripping-Angriffen wurde 2012 das HTTP Strict Transport Security (HSTS)-Protokoll vorgestellt. Es definiert einen Mechanismus, der es Webseiten ermöglicht, sich als nur über sichere Verbindungen zugänglich zu deklarieren.
Stripping-Angriff
Vor einigen Jahren wurde HTTPS nur auf Zahlungs- und Anmeldeseiten von Finanzdienstleistern und E-Commerce-Anbietern eingesetzt. Mittlerweile nutzen jedoch immer mehr Websites HTTPS. Ein Grund dafür ist, dass zahlreiche Studien belegen, dass Website-Betreiber HTTPS auf allen Seiten ihrer Website, einschließlich aller Ressourcendateien, anbieten sollten. Die Verschlüsselung nur eines Teils der Website gilt daher als unsicher. Ein weiterer Grund ist die Verfügbarkeit kostenloser Zertifikate und des TLS-Beschleunigers. Die Aufrechterhaltung eines HTTPS-Dienstes war sehr kostspielig und umfasste die Kosten für die Zertifikatsbeantragung und -aktualisierung sowie den durch zusätzliche Verschlüsselung verursachten Leistungsverlust. Verschlüsselung or EntschlüsselungGlücklicherweise wurden diese Probleme in den letzten Jahren gelöst. Viele Organisationen begannen, kostenlose TLS/SSL-Zertifikate anzubieten, und Websites profitierten stark von HTTPS.
Dennoch stellt ein HTTPS-Stripping-Angriff ein Risiko für HTTPS dar. Wenn Nutzer einen Domainnamen ohne Angabe des Protokolltyps (HTTP oder HTTPS) eingeben, wird standardmäßig HTTP anstelle von HTTPS verwendet. Normalerweise leitet ein Server, der HTTPS-Dienste anbietet, eine HTTP-Anfrage mit dem Statuscode 302 weiter. Angreifer können jedoch den Datenverkehr durch ARP-Spoofing abfangen und alle HTTPS-Angaben im Antwortpaket durch HTTP ersetzen. Dadurch fordert der Browser trotz der 302-Weiterleitungen weiterhin eine HTTP-Website an. Der Angreifer kann auch im Anfragepaket alle HTTP-Angaben durch HTTPS-Angaben ersetzen. Die Kommunikation zwischen Angreifer und Server ist verschlüsselt, die Kommunikation zwischen Angreifer und Browser hingegen erfolgt im Klartext. Dieser Angriff wird als HTTPS-Stripping-Angriff bezeichnet und ist für Browser und Server nicht erkennbar, da er das HTTP-Kommunikationsprotokoll nutzt.

HSTS-Protokoll
Um HTTPS-Stripping-Angriffe zu verhindern, wurde 2012 die HSTS-Richtlinie eingeführt. Webseiten deklarieren diese Richtlinie über den HTTP-Antwortheader „Strict-Transport-Security“ oder auf anderem Wege, beispielsweise über die Konfiguration des Browsers. Möchte ein Server dauerhaft HTTPS-Dienste bereitstellen, sendet er einen HSTS-Header an den Browser. Anhand der Informationen in den Headern merkt sich der Browser die Domains, die zwangsweise über HTTPS aufgerufen werden sollen. Beim nächsten HTTP-Aufruf wandelt der Browser die Anfrage automatisch im Hintergrund in HTTPS um. Die HSTS-Richtlinie definiert den Standard für HSTS-Header. Diese bestehen im Wesentlichen aus drei Feldern: dem obligatorischen Feld „max-age“, das die Gültigkeitsdauer angibt; dem optionalen Feld „includeSubdomains“, das angibt, ob die HSTS-Richtlinie auch für Subdomains der Domain gilt; und dem ebenfalls optionalen Feld „preload“. Dieses Feld gibt an, ob die Domain dauerhaft in die von Browseranbietern verwaltete Preload-Liste aufgenommen wurde. Nur HTTPS-Anfragen dürfen diese Header senden. Daher kann der Angreifer die HSTS-Richtlinie nicht willkürlich manipulieren, um sie zu deaktivieren.
Fazit
Das HSTS-Protokoll bietet eine Möglichkeit, SSL-Stripping-Angriffe zu verhindern. Viele Website-Betreiber und Entwickler verstehen die HSTS-Richtlinien jedoch nicht ausreichend. Ein SSL-Stripping-Angriff ermöglicht es Angreifern, die Daten eines Website-Besuchers im Klartext auszulesen. Die Datenübertragung zwischen Browser und Angreifer ist unverschlüsselt, wodurch der Angreifer Zugriff auf alle Daten erhält, einschließlich Passwörter, Kreditkarteninformationen und mehr. Die Verwendung des HSTS-Protokolls verhindert diese Probleme und zwingt den Browser zur Verschlüsselung der Kommunikation zwischen Server und Browser.
