![]() |
![]() |
||||||||||||
|
|||||||||||||
|
Fr, 9. Mai 2008
DER GROSSE BRUDER
2000 - 2006 |
25.12.2007
Elliptische Kurven und die NSA: Hintertür in Zufallszahlengenerator
Mountain View
Bruce Schneier berichtete am 15. November von einer Hintertür im neuen Zufallszahlengenerator DUAL_EC_DRBG. Dieser wurde auf Anraten der NSA im März in den NIST-Standard aufgenommen. Microsoft hat ihn jetzt mit Service Pack 1 in Vista eingeführt
Bruce Schneier berichtete am 15. November über eine mögliche Hintertür im Zufallszahlengenerator DUAL_EC_DRBG. Dieser wurde auf Empfehlung des US-amerikanischen Geheimdienstes
Eine Antwort auf die Frage, warum die NSA genau diesen (bereits einige Jahre vorher erstmals veröffentlichten Algorithmus) in der NIST-Empfehlung sehen wollte, mag die Möglichkeit einer existierendende Hintertür sein, mit der sich DUAL_EC_DRBG aushebeln läßt. Auf diese Schwäche machten erstmals Dan Shumow und Niels Ferguson auf der Der DUAL_EC_DRBG verwendet zwei Konstanten P und Q, die im Appendix A.1 des SP800-90 aufgeführt sind. Deren Ursprung ist aber unbekannt, d.h. wir wissen nicht, wie diese Konstanten ausgewählt wurden. Aus mathematischer Sicht besteht ein Verbindung zwischen P und Q in Form einer Zahl k. Ist jemand in Besitz dieser Zahl k, kann er aufgrund der Struktur des Algorithmus mit Hilfe von nur 32 Byte des Outputs den internen Zustand des Systems berechnen, d.h. den Zufallsgenerator knacken. Wer die Bedenken von Shumow und Ferguson genauer verstehen möchte, braucht etwas Zahlentheorie bzw. Algebra: DUAL_EC_DRBG arbeitet mit elliptischen Kurven (eelliptic curves) über endlichen Körpern. Die Punkte einer solchen elliptischen Kurve bilden dann mit der punktweisen Addition eine endlische abelsche Gruppe. Diese habe die Ordnung p mit p prim. Es gilt dann: Zu zwei Punkten P und Q auf dieser Kurve (also zu Elementen P und Q aus der Gruppe) existiert nun ein k mit Q = kP. Sei nun P das Erzeugende der elliptischen Kurve E, d.h. jeder Punkt läßt sich als k-faches von P darstellen. Dann gilt das natürlich insbesondere für Q.
DUAL_EC_DRBG verwendet nun zwei solcher Punkte P und Q als Konstanten. Allgemein läßt sich dann daraus nicht der Faktor k berechnen (Problem des diskreten Logrithmus über endlichen Körpern). Gleichwohl wird nichts darüber ausgesagt, wie diese Konstanten gewonnen wurden. Es ist also möglich, daß P und Q systematisch in Kenntnis von k bestimmt wurden. Wäre dies der Fall, kann der ganze Algorithmus ausgehebelt werden: Mit nur 32 Byte des Outputs kann dann aufgrund der Struktur des Algorithmus auf den internen Zustand des Systems schließen. Mehr dazu lese man bei [...] The security of Dual_EC_DRBG requires that the points P and Q be properly generated. To avoid using potentially weak points, the points specified in Appendix A.1 should be used. However, an implementation may use different pairs of points, provided that they are verifiably random [...] Ungeachtet dessen hat Microsoft im Service Pack 1 für Windows Vista den neuen Standard SP800-90 samt DUAL_EC_DRBG als Programmierschnittstelle implementiert. Bruche Schneier rät jedoch dringend von der Verwendung dieses offensichtlich gefährdeten Algorithmus zur Erzeugung von Zufallszahlen ab. Speziell kryptographische Software, die gute Zufallszahlen für die Erzeugung der Schlüssel benötigt, sollte unbedingt auf DUAL_EC_DRBG verzichten. Leider ist es für den Nutzer kaum nachzuvollziehen, welche Zufallsgeneratoren ein Programm oder Betriebssystem verwendet. Das als "sicherstes Windows" gepriesene Vista wird deshalb mit der Einführung von DUAL_EC_DRBG viel weniger sicher.
![]() |
|
|||||||||||