Nutzer und Organisationen legen zunehmend Wert auf Sicherheit und Datenschutz. Technologien wie HTTPS , eine Kombination aus HTTP- und SSL/TLS-Protokollen, wurden 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 mit HTTPS. Darüber hinaus können Websites ohne HTTPS in Chrome weder geografische Standorte noch den Anwendungscache nutzen. Nutzer können Websites ohne HTTPS unter Umständen gar nicht erst besuchen. Dies führt schließlich zu einem Warnsymbol in der Adressleiste des Chrome-Browsers. Früher waren der Erwerb und die Verwaltung digitaler Zertifikate sehr kostspielig. Daher verzichteten kleine Unternehmen oder große Firmen mit vielen Domains aufgrund der Kosten oft auf die Einführung von HTTPS. Let's Encrypt hat mit seinem ACME-Protokoll den Erwerb von SSL/TLS -Zertifikaten vereinfacht und verbilligt und bietet Domain-Validierungszertifikate (DV-Zertifikate) kostenlos über einen vollautomatisierten Prozess an. Neben Let's Encrypt bieten auch verschiedene Content-Delivery-Netzwerke und Cloud-Service-Anbieter, darunter Cloudflare und Amazon, ihren Kunden kostenlose TLS-Zertifikate an.
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 einzelner Bereiche hat sich als unsicher erwiesen. Ein weiterer Grund ist die Verfügbarkeit kostenloser Zertifikate und TLS-Beschleuniger. Die Aufrechterhaltung eines HTTPS-Dienstes war sehr kostspielig, da sie die Kosten für die Zertifikatsbeantragung und -aktualisierung sowie den Leistungsverlust durch zusätzliche Ver- und Entschlüsselung umfasste . Glücklicherweise konnten diese Probleme in den letzten Jahren gelöst werden. Viele Organisationen bieten nun kostenlose TLS/SSL-Zertifikate an, und Websites profitieren erheblich 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.
