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. IT-Teamleiter (m/w/d) Netzwerk-Infrastruktur Inhouse
    STEMMER IMAGING AG, Puchheim
  2. (Junior) SAP HCM Key User People Operations (w/m/d)
    Helmholtz-Zentrum Berlin für Materialien und Energie GmbH, Berlin
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 Karrierewelt
  1. First Response auf Security Incidents: Ein-Tages-Workshop
    28.02.2023, Virtuell
  2. AZ-104 Microsoft Azure Administrator: virtueller Vier-Tage-Workshop
    19.-22.12.2022, 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
Urheberrechtsverletzung
US-Marine muss Strafe an deutsche Firma bezahlen

Noch während der Lizenzverhandlungen installierte die US-Marine eine Software auf über 500.000 Rechnern. Sechs Jahre später muss sie dafür bezahlen.

Urheberrechtsverletzung: US-Marine muss Strafe an deutsche Firma bezahlen
Artikel
  1. Karmesin und Purpur: Nintendo entschuldigt sich für Probleme mit Pokémon
    Karmesin und Purpur
    Nintendo entschuldigt sich für Probleme mit Pokémon

    Schwache Grafik und trotzdem Ruckler: Viele Spieler ärgern sich über den technischen Zustand von Pokémon Karmesin/Purpur.

  2. Bayern: Arbeitszeit von mehr als 10 Stunden am Tag gefordert
    Bayern
    Arbeitszeit von mehr als 10 Stunden am Tag gefordert

    Die bayerische Arbeitsministerin plädiert für mehr Flexibilität am Arbeitsplatz und will mehr als zehn Stunden Arbeit pro Tag erlauben.

  3. EuGH: Google legt erneut Einspruch gegen Milliardenstrafe ein
    EuGH
    Google legt erneut Einspruch gegen Milliardenstrafe ein

    Google will keine 4,125 Milliarden Euro zahlen und zieht mit dem Fall vor den Europäischen Gerichthof. Es geht um Android.

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 • PS5 jetzt bestellbar • LG OLED TV (2022) 55" 120Hz 949€ • Mindstar: Geforce RTX 4080 1.449€ • Tiefstpreise: G.Skill 32GB Kitt DDR5-7200 • 351,99€ Crucial SSD 4TB 319€, HTC Vive Pro 2 659€ • Samsung Cyber Week • Top-TVs (2022) LG & Samsung über 40% günstiger [Werbung]
    •  /