Der Krypto-Forscher David Wong beschreibt in einem Blogpost zwei so genannte Downgrade-Angriffe auf das neue Verschlüsselungsprotokoll TLS 1.3.
TLS 1.3 ist noch recht jung, aber enorm wichtig für die Zukunft der Verschlüsselung. Kein Wunder also, dass sich Sicherheitsforscher zurzeit auch auf diese Bibliothek stürzen. Nun sind einige Sicherheitsforscher fündig geworden. Darunter David Wong (“mimoo”), der unter anderem am TLS-1.3-Spec mitgearbeitet hat, und die Erkenntnisse zu TLS 1.3 und RSA-Handshakes ausführlich in einem Blogpost zusammen.
Eine davon: Mittlerweile rät selbst Adi Shamir, einer der Erfinder von RSA, davon ab, RSA in TLS weiterhin zu verwenden. Schuld sind unter anderem einige Timing-Cache-Attacken auf TLS-Implementierungen, die sich auf Daniel Bleichbachers Paper von 1998 stützen. Der Angriff nutzt ein Side-Channel-Leak, das beim Timing der Cache-Zugriffe entsteht und torpedieren so den RSA-Schlüsselaustausch der TLS-Implementierungen.
Zusammen mit einem Forscherteam hat Wong diese Attacke gegen neun TLS-Implementierung ausgeführt, in sieben Fällen mit Erfolg. Anfällig für den Angriff waren Open SSL, Amazon S2N, Mbed TLS, Apple Core TLS, Mozilla NSS, Wolf SSL, and Gnu TLS. Lediglich Boring SSL (Google) und Bear SSL ließ der Angriff unbeeindruckt.
Interessant an den Caching-Angriffen sei unter anderem, dass er alle TLS-Versionen betreffe, eingeschlossen Quic und TLS 1.3, die gar keinen RSA-Verschlüsselungsalgorithmus mehr für die Handshakes einsetzen. Wong argumentiert jedoch, dass der Angriff dennoch klappe, wenn der Angreifer mit dem einzigen bekannten Downgrade-Angriff auf TLS 1.3 starte und der Server auch TLS 1.2 anbiete.
Die Angreifer setzten dabei auf State-of-the-Art-Angriffstechniken und konnten Browser erfolgreich aktiv angreifen. Zudem nutzten sie eine noch effizientere Methode als die von Bleichenbacher. Ben Ors Algorithmus [1] wurde bereits 1983 veröffentlicht und sei effizienter. Auch eine Methode von Manger [2] sei zum Einsatz gekommen. Alles in allem basieren die Angriffe auf altbekannten Mustern. Die von den Entwicklern entworfenen Abwehrstrategien helfen laut Wong oft nicht. In einigen Fällen vereinfachen sie die Angriffe noch.
TLS 1.3 selbst ist sicher
Im Prinzip ist TLS 1.3 von den Angriffen ausgenommen, weil es beim Schlüsselaustausch keine RSA-Verschlüsselungsalgorithmen verwendet. Doch das ist nur die halbe Wahrheit. Grundsätzlich gibt es für TLS 1.3 laut dem Blogpost zwei Angriffsszenarien. Beide setzen voraus, dass der Server auch TLS 1.2 unterstützt, was aber üblich ist, weil sonst ältere Clients keinen Zugriff erhalten.
Im ersten Fall fordert die “ClientHello”-Anfrage TLS 1.3 vom Server. Der Angreifer fängt sie ab und sendet ein “ClientHello” weiter, das nach TLS 1.2 und einem RSA-Schlüsselaustausch verlangt. Die Attacke ließe sich stoppen, wenn der Client einen RSA-Schlüsselaustausch ablehnt oder der Server diesen nicht anbietet. In beiden Fällen besteht aber das Risiko erhöhter Inkompatibilität.
Der zweite Angriff nutzt aus, dass TLS 1.3 zwar keine RSA-Verschlüsselungsalgorithmen verwendet, aber dessen Signatur-Algorithmen. Wenn das Zertifikat des Servers einen RSA-basierten öffentlichen Schlüssel einsetzt, signiert der Server mit diesem Schlüssel den temporären Public Key beim Handshake. Weil die Server für ältere TLS-Implementierungen meist auch TLS 1.2 anbieten, verwenden sie den RSA-Signaturalgorithmus ihres Zertifikats anstelle des neueren RSA-PSS. Die RSA-Signaturalgorithmen ähneln aber denen der RSA-Verschlüsselungsalgorithmen hinreichend, um dann einen leicht modifizierten Bleichenbacher-Angriff zu fahren.
Wer sich für die weiteren Details dieser Angriffe interessiert, findet diese in dem erwähnten Blogpost. Klar scheint aber, dass der Einsatz von RSA beim ersten Schlüsselaustausch diese Angriffe ermöglicht. Je schneller Server und Clients TLS 1.3 adoptieren und TLS 1.2 und ältere Versionen abschmettern, desto schwieriger wird es, diese Angriffe auszuführen.
[1] M. Ben-Or, B. Chor, and A. Shamir, “On the cryptographic security ofsingle RSA bits,” inSTOC, 1983.
[2] J. Manger, “A chosen ciphertext attack on RSA optimal asymmetricencryption padding (OAEP) as standardized in PKCS #1 v2.0,” inCRYPTO, 2001.


