HEIST: Timing- und Kompressionsangriff auf TLS

Durch die geschickte Kombination eines Timing-Angriffs in Javascript und der bereits bekannten Breach-Attacke ist es möglich, Geheimnisse in TLS-Verbindungen zu entschlüsseln. Anders als früher ist dafür kein Man-in-the-Middle-Angriff nötig.

Artikel veröffentlicht am , Hanno Böck
HEIST - ein neuer Angriff auf TLS kombiniert einen Timing-Angriff und einen Angriff auf die HTTP-Kompression.
HEIST - ein neuer Angriff auf TLS kombiniert einen Timing-Angriff und einen Angriff auf die HTTP-Kompression. (Bild: Black-Hat-Slides)

Zwei Forscher der Universität Leuven haben auf der Sicherheitskonferenz Black Hat in Las Vegas einen neuen Angriff gegen HTTPS-verschlüsselte Webseiten namens HEIST vorgestellt (HTTP Encrypted Information can be Stolen through TCP-windows). Dieser kombiniert einen Timing-Angriff mittels Javascript mit bereits bekannten Schwächen von TLS in Kombination mit komprimierten Daten.

Crime und Breach

Stellenmarkt
  1. Koordinator (m/w/d) IT-Infrastructure & -Services
    Automotive Safety Technologies GmbH, Gaimersheim
  2. Softwareentwickler*in (m/w/d) Embedded Systems
    SCHOTT AG, Mitterteich
Detailsuche

2012 entdeckten die Sicherheitsforscher Juliano Rizzo und Thai Duong den sogenannten Crime-Angriff. Sie nutzten dabei die Tatsache aus, dass die Kompression von TLS Informationen über die verschlüsselten Daten preisgibt. Der Crime-Angriff war jedoch in der Praxis nicht relevant, da die TLS-eigene Kompression nur selten genutzt wurde. Ein Jahr später wurde jedoch auf der Black Hat der Breach-Angriff präsentiert, der die von HTTP genutzte Gzip-Kompression ausnutzte. Nahezu alle Webseiten nutzen Gzip, um die übertragenen HTML-Daten zu komprimieren.

Beide Angriffe benötigen eine Webseite, die einen vom Angreifer kontrollierten String enthält. Das kann beispielsweise ein GET- oder POST-Parameter sein, der in irgendeiner Weise in der ausgelieferten HTML-Seite reflektiert wird und in deren HTML-Code enthalten ist. Befindet sich in derselben Webseite ein für den Angreifer interessantes Geheimnis - beispielsweise ein CSRF-Token für ein Formular -, kann der Angreifer durch Ausprobieren dieses Geheimnis schrittweise herausfinden. Immer wenn der Angreifer ein weiteres Zeichen des gesuchten Geheimnisses errät, werden die komprimierten Daten kleiner. Dadurch erhält der Angreifer Feedback und kann letztendlich den gesamten geheimen String entschlüsseln. Dieser bereits bekannte Angriff funktioniert jedoch nur, wenn der Angreifer die übertragenen Daten belauschen kann.

Timing-Angriff auf TCP-Verbindung

Mathy Vanhoef und Tom Van Goethem von der KU Leuven fanden jedoch heraus, dass sich die Information über die Länge der komprimierten und verschlüsselten Daten auch mittels Javascript extrahieren lässt. Dabei nutzten die Forscher die Funktionsweise von TCP aus. Üblicherweise werden bei TCP zunächst vom Server zehn Pakete übertragen, anschließend wartet der Server auf Antworten vom Client und überträgt dann eine höhere Anzahl von Paketen. Mittels zwei Javascript-Funktionen kann ein Angreifer herausfinden, wie lange eine TCP-Antwort eines durch das Skript abgesendeten Requests benötigt.

Golem Akademie
  1. AZ-104 Microsoft Azure Administrator: virtueller Vier-Tage-Workshop
    13.–16. Dezember 2021, virtuell
  2. Terraform mit AWS: virtueller Zwei-Tage-Workshop
    14.–15. Dezember 2021, Virtuell
Weitere IT-Trainings

Eine Antwort des Servers, die in die ersten zehn TCP-Pakete passt, ist dabei schneller als eine, die mehr Pakete benötigt, da dafür ein weiterer Roundtrip notwendig ist. Durch Ausprobieren mit dem reflektierten Parameter kann der Angreifer herausfinden, wie groß er diesen Parameter setzen muss, damit er entweder genau in die ersten zehn TCP-Pakete passt oder genau ein Byte zu groß ist.

Mit dieser Information ist der Breach-Angriff wieder möglich. Der Angreifer muss lediglich die Länge der Antwort entsprechend anpassen und kann dann anhand der Zeit, die eine Antwort benötigt, darauf schließen, ob das nächste geratene Zeichen korrekt ist.

Mit HTTP/2 funktioniert dieser Angriff noch in einer zusätzlichen Variante. Bei HTTP/2 werden alle HTTP-Requests, auch wenn sie parallel abgeschickt werden, über eine einzige TCP-Verbindung gesendet. Das führt dazu, dass der Angriff auch dann funktioniert, wenn der reflektierte String und das gesuchte Geheimnis sich auf unterschiedlichen Seiten befinden.

Einem Opfer eine Seite mit vom Angreifer kontrolliertem Javascript unterzuschieben, ist oft nicht schwer. Die Entdecker erwähnen als Beispiel, dass dieses Javascript durch eine Werbeanzeige kommen könnte, da Ad-Netzwerke oft nicht besonders sicher seien.

Kein Man in the Middle nötig

Der entscheidende Unterschied zwischen dem neuen Angriff und dem bisher schon bekannten Breach-Angriff ist, dass der Angreifer hier den Netzwerkverkehr des Opfers nicht mitlesen muss. Somit ist kein Man-in-the-Middle-Angriff nötig.

Abhilfe gegen den Breach-Angriff ist nicht einfach. Zwar könnte man die Kompression abschalten, aber das ist kaum erwünscht, da sich HTML-Daten sehr gut komprimieren lassen. Auf die Kompression zu verzichten, würde erhebliche Performanceeinbußen bedeuten. Denkbar wäre es, geheime Daten von der Kompression auszunehmen. Das wird in der HTTP2-Header-Kompression HPACK versucht. Für Daten, die sich innerhalb des HTML-Teils befinden, beispielsweise CSRF-Tokens, ist ein derartiger Mechanismus aber nur schwer umsetzbar.

Verhindern lässt sich der Angriff, wenn man Third-Party-Cookies im Browser deaktiviert. Einige Webseiten könnten dann jedoch nicht mehr funktionieren.

Same-Site-Cookies könnten Abhilfe schaffen

Eine neuere Möglichkeit, die gegen solche und ähnliche Angriffe Schutz bietet, sind sogenannte Same-Site-Cookies. Damit kann eine Webapplikation verhindern, dass Seitenzugriffe, die von einer anderen Webseite kommen, in einem Account eingeloggt sind. Allerdings existiert für Same-Site-Cookies bislang nur ein Entwurf. In Chrome werden Same-Site-Cookies bereits unterstützt.

Nachtrag vom 8. August 2016, 11:13 Uhr

Tal Be'ery weist auf Twitter darauf hin, dass der wesentliche Teil des HEIST-Angriffs - die Ausnutzung mittels Javascript und Timing - keine Neuheit ist. Be'ery hatte bereits 2013 auf der Black Hat einen ähnlichen Angriff mit dem Namen TIME vorgestellt. Offenbar war dieser frühere Angriff den Autoren des HEIST-Angriffs und vielen anderen - darunter auch dem Autor dieses Artikels - nicht bekannt.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


mustermensch 09. Aug 2016

Nein habe ich nicht. Das mit Http2 ist eine weitere Variante des Angriffs (du benötigst...

hab (Golem.de) 04. Aug 2016

Die Same Origin Policy schützt davor, dass ein Angreifer Daten von einem fremden Host...

LASERwalker 04. Aug 2016

Dann müsste man einfach mehr Daten sammeln um den "Zufall" herauszurechnen. Das ist immer...

kayozz 04. Aug 2016

Ist auch noch nicht Freitag



Aktuell auf der Startseite von Golem.de
Pornhub, Youporn, Mydirtyhobby
Gericht bestätigt Zugangsverbot für Pornoportale

Die Landesmedienanstalt NRW hat zu Recht gegen drei Pornoportale mit Sitz in Zypern ein Zugangsverbot verhängt.

Pornhub, Youporn, Mydirtyhobby: Gericht bestätigt Zugangsverbot für Pornoportale
Artikel
  1. Zip: Ratenzahlung in Microsoft Edge empört die Community
    Zip
    Ratenzahlung in Microsoft Edge empört die Community

    Die App Zip wird seit Microsoft Edge 96 standardmäßig aktiviert. Diese bietet Ratenzahlung an, schürt aber nur Hass in der Community.

  2. Ericsson Mobility Report: Datenverkehr wächst auch durch Hybridzugänge stark
    Ericsson Mobility Report
    Datenverkehr wächst auch durch Hybridzugänge stark

    Die Zahl der Zugänge mit Fixed Wireless Access (FWA) soll sich in den nächsten Jahren voraussichtlich fast verdreifachen. Ericsson berechnet auf Grundlage von Netzdaten.

  3. Razer Zephyr im Test: Gesichtsmaske mit Stil bringt nicht viel
    Razer Zephyr im Test
    Gesichtsmaske mit Stil bringt nicht viel

    Einmal Cyberpunk mit Beleuchtung bitte: Tragen wir Razers Zephyr in der U-Bahn, fallen wir auf. Allerdings ist das Produkt nicht ausgereift.
    Ein Test von Oliver Nickel

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Last Minute Angebote bei Amazon • Crucial-RAM zu Bestpreisen (u. a. 16GB Kit DDR4-3600 73,99€) • HP 27" FHD 165Hz 199,90€ • Razer Iskur X Gaming-Stuhl 239,99€ • Adventskalender bei MM/Saturn (u. a. Surface Pro 7+ 849€) • Alternate (u. a. Adata 1TB PCIe-4.0-SSD für 129,90€) [Werbung]
    •  /