OpenSSL-Lücke: Die Sache mit den sicheren Primzahlen
OpenSSL hat mit einem Sicherheitsupdate eine Sicherheitslücke im Diffie-Hellman-Schlüsselaustausch behoben, deren Risiko als "hoch" eingestuft wird. Allerdings dürfte kaum jemand von der Lücke praktisch betroffen sein.

Auch wenn die Auswirkungen begrenzt sein dürften: Eine neu entdeckte Sicherheitslücke in OpenSSL zeigt erneut, welche Fallstricke es bei der Implementierung des Diffie-Hellman-Schlüsselaustauschverfahrens gibt. Eine Rolle spielen dabei sogenannte "sichere" Primzahlen und die Wiederverwendung von Ephemeral-Diffie-Hellman-Keys über mehrere Verbindungen. Eine weitere Sicherheitslücke erlaubt unter bestimmten Umständen die Nutzung von Uralt-Ciphern aus dem SSL-Protokoll Version 2.
OpenSSL hat die Versionen 1.0.1r und 1.0.2f veröffentlicht. Die älteren Versionszweige 0.9.8 und 1.0.0 werden seit kurzem nicht mehr unterstützt.
Safe Primes und Sophie-Germain-Primzahlen
Der Diffie-Hellman-Schlüsselaustausch benötigt als Parameter für Verbindungen eine Primzahl. Für diese Primzahl wird üblicherweise eine sogenannte "safe Prime" ("sichere Primzahl") eingesetzt. Doch der Name ist missverständlich, denn es gibt auch andere Primzahlen, die in sicherer Art und Weise verwendet werden können. Dabei muss man allerdings einiges beachten.
Diese "safe Primes" zeichnen sich dadurch aus, dass es zu einer Primzahl p eine weitere Primzahl gibt, die man durch die Formel (p-1)/2 berechnen kann. Diese weitere Primzahl nennt sich Sophie-Germain-Primzahl. Ob eine Primzahl eine "safe Prime" ist, lässt sich so relativ einfach testen.
OpenSSL 1.0.2 nutzte standardmäßig jedoch keine Primzahlen dieser Form, es verwendete Primzahlen aus dem RFC 5114, die andere Eigenschaften haben. Diese Primzahlen können eine höhere Performance bieten, allerdings muss man dabei eine Sache beachten: Mit demselben Schlüssel darf jeweils nur ein Schlüsselaustausch durchgeführt werden, andernfalls ist ein Angriff möglich. Auch ältere Versionen von OpenSSL unterstützen bereits die Erzeugung von anfälligen Diffie-Hellman-Primzahlen mit dem Parameter -dsaparam.
Mehrfach verwendete Ephemeral-Keys
Hier wird nun eine andere Eigenschaft von OpenSSL zum Verhängnis: Die Ephemeral-Keys beim Diffie-Hellman-Schlüsselaustausch werden - zumindest standardmäßig - mehrfach verwendet. Doch man kann dieses Wiederverwenden von Ephemeral-Keys abschalten, dafür hat OpenSSL die Option SSL_OP_SINGLE_DH_USE. Diese Option ist auch der Grund, weshalb die Auswirkungen der Lücke begrenzt sein dürften: Alle wichtigen Serveranwendungen, darunter etwa Apache und Nginx, haben diese Option bereits gesetzt.
Entdeckt wurde die Lücke von Antonio Sanso, einem Sicherheitsforscher von Adobe. In seinem Blog hat Sansodie Details und auch den möglichen Angriff erläutert. Die Lücke hat die Id CVE-2015-1788 erhalten.
Neben den wiederverwendeten Ephemeral-Keys gibt es eine weitere Situation, in der die Lücke problematisch sein kann: beim statischen Diffie-Hellman-Verfahren. Das verwendet allerdings sowieso fast niemand und es ist auch eher nicht empfehlenswert, auf dieses ungewöhnliche Verfahren zu setzen. Im vergangenen Jahr sorgte bereits der sogenannte KCI-Angriff für Zweifel an diesen Ciphern.
Das problematische Wiederverwenden von Ephemeral-Keys hat OpenSSL nun deaktiviert. Die Option SSL_OP_SINGLE_DH_USE ist standardmäßig gesetzt und lässt sich auch nicht mehr ausschalten. Das sorgt für geringe Performanceeinbußen, vermeidet jedoch einige Risiken. Beim Diffie-Hellman-Verfahren mit elliptischen Kurven wird der Ephemeral-Key jedoch weiterhin wiederverwendet. Allerdings gilt auch hier: Fast alle wichtigen Serveranwendungen deaktivieren diese Funktion.
Da sich der Einsatz der sogenannten "safe Primes" leicht testen lässt, hat der Autor dieses Textes bereits vor einiger Zeit ein Skript erstellt, mit dem sich Server testen lassen. Dazu sei allerdings nochmal betont: Wenn ein Server keine "safe Prime" einsetzt, heißt das noch nicht, dass eine Sicherheitslücke besteht. Nur die Kombination aus einer anderen Primzahl und dem Cachen von Ephemeral-Keys ist ein Risiko.
SSLv2-Cipher können trotz Abschaltung aktiv bleiben
Die zweite Lücke, die mit diesem Update behoben wird, betrifft das uralte SSL Version 2. Schaltet ein Server alle Cipher-Suites für dieses alte Verfahren aus, vergisst jedoch, auch das zugehörige Protokoll auszuschalten, sind weiterhin Verbindungen mit diesen Cipher-Suites möglich. Diese Lücke hat die Id CVE-2015-3197 erhalten und wurde von Nimrod Aviram und Sebastian Schinzel entdeckt. In fast allen modernen Anwendungen ist SSL Version 2 sowieso ausgeschaltet. Selbst wenn ein Server von dieser Lücke betroffen ist, dürften die Auswirkungen begrenzt sein: Kaum eine Software kann sich damit noch verbinden.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Falls die Frage aufkommen sollte, ja Libressl ist auch betroffen. 2.2.6 wird mit dem...
Also... ich persönlich bin froh, dass die Bugs, welche man in den letzten Jahren gefunden...
(59-1)/2=29 Der Artikel sagte ziemlich klar, dass p eine safe prime ist, wenn man durch...