© istockphoto.com/marigold_88
Logjam und FREAK gefährden TLS

Kurze Schlüssel, große Gefahr


Die schwachen Kryptoverfahren mit viel zu kurzen Schlüsseln, die etliche Clients und Server aus historischen Gründen unterstützen, gefährden heutzutage die sichere Kommunikation im Internet.

Anfang der 1990er Jahre verbot die US-Regierung den Export von Software mit Kryptografiefunktionen, die lange und damit sichere Schlüssel verwendeten. So nutzte zum Beispiel Netscape damals für das neu entwickelte SSL in der US-Version RC4 mit 128 Bit langem Schlüssel. In der internationalen Version wurde die Schüssellänge dagegen effektiv auf 40 Bit reduziert, indem 88 Bit des Schlüssels über das SSL-Protokoll veröffentlicht wurden [1].

Die mit diesen kurzen Schlüsseln erzeugten Schlüsseltexte konnten mit ziemlicher Sicherheit von den US-Geheimdiensten geknackt werden, sonst wäre die Exportbeschränkung ja überflüssig. Im Laufe der Zeit wurde die zulässige Länge der Schlüssel zwar erhöht, aber Sie können sicher sein, dass die Schlüssel der Exportversionen immer noch so kurz waren, dass die US-Geheimdienste die Verschlüsselung brechen konnten. Aber das ist eine andere Geschichte.

Inzwischen sind diese Exportbeschränkungen zum größten Teil aufgehoben, viele Produkte unterstützen aber nach wie vor die schon damals unsicheren Schlüssellängen. Lange Zeit hat das niemand für ein größeres Problem gehalten, da Client und Server ja die verwendeten Verfahren und Schüssellängen individuell aushandeln – und natürlich würde niemand mehr solch unsichere Verfahren verwenden. Zumindest in der Theorie – denn in der Praxis sieht das wieder einmal ganz anders aus, wie Forscher dieses Jahr bereits in zwei Fällen herausgefunden haben.

Fangen wir mit den neueren Forschungsergebnissen an, die den Diffie-Hellman-Schlüsselaustausch betreffen. Die Verwendung der schwachen Schlüssel ist dabei noch das harmlosere von zwei entdeckten Problemen. Aber bevor wir zu den möglichen Angriffen kommen, ist erstmal eine kurze Einführung in den DH-Schlüsselaustausch nötig.

Der Diffie-Hellman-Schlüsselaustausch

Der Diffie-Hellman-Schlüsselaustausch wurde von Whitfield Diffie und Martin E. Hellman 1976 in ihrem Paper „New Directions in Cryptography“ [2] vorgestellt, der ersten Arbeit über asymmetrische Kryptografie. Das britische Government Communications Headquarters (GCHQ) behauptete 1997, schon davor das RSA- und Diffie-Hellman-Verfahren erfunden, aber geheimgehalten zu haben. Diese Behauptung ist durchaus plausibel, die Ehre gebührt aber üblicherweise dem, der etwas zuerst veröffentlicht [3]. Sonst könnte später ja jeder kommen und behaupten, er hätte irgendetwas schon viel früher erfunden als der eigentliche Erfinder, nur es eben aus welchen Gründen auch immer damals nicht veröffentlicht.

Das Prinzip des Diffie-Hellman-Schlüsselaustauschs besteht darin, dass sich die Kommunikationspartner über eine unsichere Verbindung je eine Nachricht zusenden, aus der sie dann einen gemeinsamen Schlüssel berechnen können. Ein Dritter, der die Nachrichten belauscht, ist dazu nicht in der Lage. Das Verfahren ist allerdings dann unsicher, wenn der Dritte als Man-in-the-Middle die Nachrichten manipulieren kann.

Die mathematische Beschreibung

Im Folgenden wird von zwei Kommunikationspartnern ausgegangen. In der Kryptografie sind das traditionell Alice und Bob, es könnten aber genauso gut ein Webserver und ein Webbrowser sein:

  • Alice und Bob einigen sich auf eine Primzahl p und eine Primitivwurzel (*) g mod p mit 1 < g < p-1. p und g müssen nicht geheim bleiben, können also über eine unsichere Verbindung übertragen werden. Außerdem können sie vorab vereinbart und immer wieder verwendet werden. Wie sich kürzlich herausstellte, sollte man das aber nicht übertreiben.

  • Alice wählt eine geheime Zahl a < p und sendet Bob A = ga mod p

  • Bob wählt eine geheime Zahl b < p und sendet Alice B = gb mod p. A und B müssen nicht geheim bleiben, können also über eine unsichere Verbindung übertragen werden.

  • Alice berechnet k = Ba mod p (und kann danach a löschen)

  • Bob berechnet k’ = Ab mod p (und kann danach b löschen)

(*) g ist eine Primitivwurzel von p, wenn sich alle Zahlen von 1 bis p-1 als Reste der Form gi mod p darstellen lassen. Die von Alice und Bob getrennt voneinander berechneten k und k’ sind identisch, denn es gilt k = gba mod p = gab mod p = k’.

Sie können als Sitzungsschlüssel für ein symmetrisches Kryptoverfahren verwendet werden.

Ein lauschender Angriff auf den DH-Schlüsselaustausch

Ein lauschender Angreifer kennt zwar p, g, A und B, aber um den Schlüssel k zu ermitteln, muss er das so genannte Diffie-Hellman-Problem lösen: Bekannt sind g, gx und gy. Welchen Wert hat gxy?

Dazu muss er diskrete Logarithmen berechnen können: Er benötigt das x aus gx mod p (oder das y aus gy mod p). Das ist ein so genanntes mathematisch hartes Problem und ähnlich schwer wie die Faktorisierung.

Die Sicherheit des Verfahrens hängt entscheidend von der Größe von p ab. Außerdem sollte (p-1)/2 ebenfalls eine Primzahl sein. g kann beliebig groß gewählt werden, es muss nur eine Primitivwurzel modulo p sein. Es spricht nichts dagegen, das kleinstmögliche g zu wählen.

Ein Man-in-the-Middle-Angriff auf den DH-Schlüsselaustausch

Kann der Angreifer Mallory als Man-in-the-Middle die ausgetauschten Nachrichten manipulieren, kann er den Schlüsselaustausch unterlaufen. Er fängt die Nachrichten ab und sendet seinen eigenen Wert M = gm mod p mit einem beliebigen m statt A und B. Es findet also je ein Schlüsselaustausch zwischen Alice und Mallory und zwischen Mallory und Bob statt – ohne dass Alice und Bob etwas von Mallory wissen. Damit ergeben sich folgende Schlüssel:

  • Alice: kA = Ma mod p = gma mod p

  • Bob: kB = Mb mod p = gmb mod p

  • Mallory: kA = Am mod p = gam mod p (mit Alice) und kB = Bm mod p = gbm mod p (mit Bob)

Mallory fängt danach die symmetrisch verschlüsselten Daten ab, entschlüsselt sie mit dem zum jeweiligen Absender gehörigen Schlüssel und verschlüsselt sie vor dem Weiterleiten mit dem zum Empfänger gehörigen Schlüssel. Dabei kann er die entschlüsselten Daten beliebig manipulieren.

Um diesen Angriff zu verhindern, müssen die ausgetauschten Nachrichten durch eine digitale Signatur oder einen Message Authentication Code authentifiziert werden. Dazu kommen wir gleich in einem Anwendungsbeispiel.

Ein Anwendungsfall: HTTPS

Kommen wir nun zu einer Anwendung des Diffie-Hellman-Schlüsselaustauschs: HTTPS. Das verläuft beim Aufruf von www.bank.example vereinfacht so ab:

  • Sie geben im Browser https://www.bank.example ein.

  • Ihr Browser baut eine Verbindung zum Webserver www.bank.example auf.

  • Der Webserver sendet sein Zertifikat mit seinem öffentlichen Schlüssel des asymmetrischen Kryptosystems an Ihren Browser.

  • Ihr Browser prüft das Zertifikat. Wurde das Zertifikat nicht von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt oder ist die Signatur nicht korrekt, gibt er eine Warnung aus und beendet den Verbindungsaufbau. Verläuft die Prüfung erfolgreich, weiß der Browser, dass er wirklich mit dem Server www.bank.example verbunden ist und kennt dessen öffentlichen Schlüssel. Er kann nun Daten verschlüsselt an den Webserver senden und die Signatur der vom Server gesendeten unverschlüsselten Daten prüfen.

  • Über den Diffie-Hellman-Schlüsselaustausch wird ein Sitzungsschlüssel für die symmetrische Verschlüsselung ausgehandelt.

  • Alle weiteren Daten werden mit diesem Sitzungsschlüssel symmetrisch ver...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang