HEIST: Wiederbelebter Angriff auf HTTPS vorgestellt

Mit HEIST soll es möglich sein, Geheimnisse aus eigentlich verschlüsselt übertragenen Web-Seiten zu extrahieren – und zwar ohne den üblichen Man-in-the-Middle.

In Pocket speichern vorlesen Druckansicht 50 Kommentare lesen
Wiederbelebter Angriff auf HTTPS vorgestellt
Lesezeit: 3 Min.

"HTTP Encrypted Information can be Stolen through TCP-windows", kurz HEIST, haben Forscher der Universität Leuven ihren Angriff getauft. Es geht dabei darum, in HTTPS-Verbindungen verschlüsselt übertragene Daten zu stehlen. Ob der auf der Sicherheits-Konferenz Blackhat vorgestellte HEIST-Angriff jedoch wirklich relevant ist, lässt sich noch nicht sagen.

HEIST beruht auf dem vor über drei Jahren vorgestellten BREACH-Angriff. Anders als bei BREACH muss der Angreifer jedoch den verschlüsselten Verkehr gar nicht mitlesen; er muss sich also nicht in der Position eines Man-in-the-Middle befinden. Vielmehr erfolgt der Angriff über JavaScript-Code, den der Angreifer etwa über eine bösartige Anzeige in der attackierten Seite platziert. Dieser JavaScript-Code misst die Zeit für eine TCP-Antwort. Durch geschicktes Ausnutzen der sogenannten TCP-Windows kann er damit testen, ob ein einzelnes Zeichen einen bestimmten Wert hat.

So könnten die Angreifer etwa ein CSRF-Token ermitteln und anschließend die authentifizierte Verbindung missbrauchen. TCP-Windows sind eine Optimierungsfunktion des TCP/IP-Protokolls und haben nichts mit Microsofts Betriebssystem zu tun. Die Grundlage der Timing-Angriffe sind die recht neuen JavaScript APIs Fetch und Resource Timing. Damit kann JavaScript im Browser die Ladezeiten einzelner Teile einer anderen Web-Seite sehr exakt ermitteln (auch Cross Origin).

Im wesentlichen beruht der Angriff darauf, dass sich die Ladezeit durch minimale Vergrößerung der übertragenen Nutzdaten deutlich ändert, wenn man damit die Größe eines TCP-Windows überschreitet. Die Größenänderung erreicht Breach, weil sich wiederholte Daten besser komprimieren lassen. Der Angreifer rät einfach eine Zeichenkette und sorgt dafür, dass diese in der Web-Seite auftaucht. Liegt er richtig, ist das komprimierte Resultat kleiner als bei einem falschen Test – er hat sich ein sogenanntes Ja/Nein-Orakel gebaut.

Als Schutz empfehlen die Forscher die Unterstützung von Third Party Cookies abzuschalten, was aber bei einigen Seiten zu Problemen führt. Konkrete Details des Angriffs erläutert das Paper HEIST: HTTP Encrypted Information can be Stolen through TCP-windows (PDF) der Forscher.

Von einem schwerwiegenden Problem für TLS oder nahezu alle verschlüsselten HTTPS-Seiten zu reden, ist derzeit verfrüht. Breach ist ein eher theoretisches Angriffsszenario; jedenfalls sind keine realen Breach-Angriffe bekannt. Ob HEIST das, wie von den Forschern postuliert, ändern könnte, lässt sich nur schwer beurteilen. Es stellt sich etwa die Frage, ob es tatsächlich ein realistisches Angriffsszenario ist, dass ein Angreifer, der etwa über Anzeigen bösartigen JavaScript-Code im Browser ausführen kann, dies für komplexe Timing-Attacken auf HTTPS-Verschlüsselung nutzt. Schließlich könnte dieser JavaScript-Code eine ganze Reihe anderer Dinge anstellen.

Update 4.8.2016, 18:30: Details zur Funktionsweise des Angriffs nachgetragen und die Einschätzung präzisiert. Den Verweis auf die Niederlanden entfernt; Leuven liegt natürlich in Flandern und damit in Belgien. (ju)