Sicherheitsproblem mit OpenSSL/OpenSSH

15. Mai 2008

Das Debian Projekt hat eine Warnung zu einem Sicherheitsproblem mit OpenSSL/OpenSSH veröffentlicht.

Die einschlägigen Medien haben schon ausführlich berichtet, ob der Dringlichkeit und des Umfangs des Problems bittet CERT.at nochmals um Beachtung der folgenden Hinweise:

Beschreibung

Die unter Debian erzeugten OpenSSH und OpenSSL Keys waren verwundbar, da die vom Pseudo Random Number Generator erzeugten Zufallszahlen nicht wirklich zufällig waren.

Auswirkungen

Dies bedeutet, dass gewisse SSH Keys und OpenSSL Zertifikate für einen Angreifer erratbar und die damit verschlüsselten Nachrichten entschlüsselbar sind.

Damit ist die Serverauthentizitätsprüfung mittels Hostkeys und die Userauthentisierung durch SSH Authorized Keys nicht mehr sicher.

Betroffene Systeme

Der Fehler betrifft OpenSSL ab Version 0.9.8c-1, diese wurde 17. 9. 2006 von Debian veröffentlicht und auch von abgeleiteten Linux-Distributionen wie Ubuntu oder Knoppix übernommen. Die alte "stable" Version "sarge" ist nicht betroffen.

Der Fehler betrifft die Erzeugung von Schlüsseln: wo diese dann eingesetzt werden spielt keine Rolle. Ein simpler Update der Software löst das Problem daher nicht: es müssen auch alle mit den besagten Versionen erstellten Schlüssel ersetzt werden!

Abhilfe

Es wird dringend empfohlen, die von Debian und Ubuntu bereitgestellten Patches zu installieren.
Siehe http://www.debian.org/security/2008/dsa-1571, http://www.debian.org/security/2008/dsa-1576 und http://www.ubuntu.com/usn/usn-612-1.

Hintergrund

Ursprünglich haben die Debian Entwicker einen Funktionsaufruf in OpenSSL entfernt, der die Zufallszahlen durchmischen sollte, weil das Analysetool 'valgrind' ziemlich viele Warnungen wegen nicht initialisierter Variablen aufwarf. Das hat zur Folge dass der Zuffallszahlengenerator nur noch die PID (ProzessID) als Grundlage der Zufallszahl heranzieht: also eine Zahl zwischen 0 und 32768.

Nach Bekanntwerden der Sicherheitslücke hatte Debian zuerst ein Vulnerability Check Tool bereitgestellt (http://security.debian.org/project/extra/dowkd/dowkd.pl.gz), welches eine Liste aller verwundbaren Schlüssel in allen ihren gängigen Kombinationen (also Format wie OpenSSL, OpenSSH, OpenVPN ... , Bit-Breite wie 1024, 2048... Typ RSA, DSA, etc..) enthält.

Diese Liste aller möglichen Schlüsselpaare ist auch schon in automatisierten Test- aber auch Angriffstools eingebaut worden. Dies bedeutet, dass auch technisch wenig versierte Angreifer ("script kiddies") diese Lücke trivial ausnützen können.

Was bedeutet dies in der Praxis?

Überall, wo die Schlüssel direkt zur Authentisierung verwendet werden, kann ein Attacker mittels Durchprobieren der entsprechenden Schlüssel in das System eindringen. (z.b.: authorized_keys bei SSH)

Jede aufgezeichnete Kommunikation, die mit diesen Schlüsseln gesichert war, ist innerhalb kurzer Zeit entschlüsselbar.

Überall, wo Schlüssel, Signaturen oder Zertifikate zur Verifikation des Gegenübers oder der Nutzdaten eingesetzt werden, ist eine Verfälschung dieser Informationen möglich.

Das betrifft auch gekaufte (HTTPS-) Zertifikate oder CACert-Zertifikate, wenn sie vom User mit OpenSSL direkt erstellt wurden und nur zur Signierung an die CA geschickt wurden.

Bei Fragen: Kontakt

Quellen: Debian, Ubuntu, ISC, Adrian Dabrowski