Zum Hauptinhalt Zur Navigation Zur Suche

Bleichenbacher-Angriff: TLS-Probleme in Java

In der TLS-Bibliothek von Java wurde ein Problem gefunden, welches unter Umständen das Entschlüsseln von Verbindungen erlaubt. Es handelt sich dabei um die Wiederbelebung eines Angriffs, der bereits seit 1998 bekannt ist.
/ Hanno Böck
23 Kommentare Auf Google folgen (öffnet im neuen Fenster)
Das Padding von RSA schafft Probleme. (Bild: Chris Meyer)
Das Padding von RSA schafft Probleme. Bild: Chris Meyer

Der Sicherheitsforscher Chris Meyer hat mehrere Probleme in JSSE entdeckt(öffnet im neuen Fenster), der Verschlüsselungsbibliothek von Java. Meyer ist es gelungen, ein uraltes und längst bekanntes Problem der RSA-Verschlüsselung erneut auszunutzen: Die sogenannte "Million Message Attack", die Daniel Bleichenbacher 1998 erstmals beschrieben hat(öffnet im neuen Fenster). Oracle hat ein Update von Java veröffentlicht, welches das Problem behebt.

Das Vorgehen von Bleichenbacher: Eine mit dem RSA-Schlüssel eines Servers verschlüsselte Nachricht wird gezielt mit Fehlern versehen und in vielen Variationen an einen Server gesendet. Die Antworten der Fehlerbehandlung des Servers lassen Rückschlüsse auf den verschlüsselten Inhalt zu. Um sich vor diesem Angriff zu schützen, müssen Server gewährleisten, dass die Fehlermeldungen keine Informationen über die Art des Entschlüsselungsfehlers enthalten. Auch die Geschwindigkeit der Antwort darf keine Rückschlüsse auf den Nachrichteninhalt zulassen.

Meyer entdeckte nun, dass Java bei bestimmten Fehlern in der Codierung von RSA-verschlüsselten Nachrichten eine andere Fehlermeldung schickte als gewöhnlich. Damit ließ sich die Bleichenbacher-Attacke wiederholen. Bereits 2012 gab es eine Forschungsarbeit, die eine beschleunigte Version des originalen Bleichenbacher-Angriffs entwickelt hatte(öffnet im neuen Fenster). Diese Verfahren konnte Meyer ausnutzen und brauchte für seinen Angriff weit weniger als eine Million Versuche. Nach circa 70.000 Serverantworten gelang es, eine mit einem 4096-Bit-RSA-Schlüssel verschlüsselte Nachricht zu entschlüsseln.

Für TLS-Verbindungen bedeutet das, dass ein Angreifer damit das sogenannte Pre-Master Secret herausfinden kann. Daraus wird der Sitzungsschlüssel für eine TLS-Verbindung erzeugt. Wird kein Forward Secrecy eingesetzt, lässt sich damit ein vorher belauschter Datenverkehr mitlesen.

Doch selbst wenn JSSE nur noch eine Fehlermeldung schickt, ist das Problem nicht völlig aus der Welt. Denn nach wie vor besteht ein Timing-Problem, da der Dekodierungsfehler eine Java-Exception auslöst. Diese benötigt so viel Rechenzeit, dass ein Angreifer aufgrund der Antwortzeit erfahren kann, ob ein solcher Dekodierungsfehler aufgetreten ist.

Meyer weist darauf hin, dass offenbar OpenSSL bis vor kurzem ein ähnliches Problem hatte. Ein entsprechender Patch, der dieses Problem behebt, wurde im Juni vergangenen Jahres in den Code von OpenSSL eingepflegt(öffnet im neuen Fenster).

Der Bleichenbacher-Angriff macht sich die besonders einfache Struktur der RSA-Verschlüsselung nach dem alten Standard PKCS #1 1.5(öffnet im neuen Fenster) zunutze. Zwar gibt es schon länger den neueren Standard PKCS #1 2.1(öffnet im neuen Fenster), der die verbesserten RSA-Modi OAEP (für Verschlüsselung) und PSS (für Signaturen) unterstützt, doch TLS und die meisten anderen Anwendungen setzen weiterhin auf den alten Standard. Meyer warnt jedoch davor, OAEP als Allheilmittel zu betrachten. Manche Probleme von RSA würden damit zwar verhindert, doch Meyer verweist auf eine Forschungsarbeit von James Manger aus dem Jahr 2001(öffnet im neuen Fenster), in der ein ähnliches Problem in OAEP beschrieben wird. Meyer untersuchte daraufhin den OAEP-Code von JSSE und stellte fest, dass sich ein solcher Fehler eingeschlichen hatte und vermutlich ein ähnlicher Angriff möglich wäre, wenn TLS bereits OAEP unterstützen würde.

Die Fehler in JSSE hat Chris Meyer im Rahmen seiner Dissertation mit dem Titel 20 Years of SSL/TLS Research(öffnet im neuen Fenster) entdeckt. Alle beschriebenen Fehler in JSSE wurden von Oracle behoben, allerdings erklärt Meyer, dass er noch weitere Probleme entdeckt habe, an deren Behebung gearbeitet werde und zu denen er in Kürze weitere Details veröffentlichen werde.


Relevante Themen