Zum Inhalt springen

Dual_EC_DRBG

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 6. April 2026 um 13:45 Uhr durch imported>Matthäus Wander (Sicherheit: Aussagen näher an Quellen (siehe Diskussion)).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Dual_EC_DRBG ({{Modul:Vorlage:lang}} Modul:Vorlage:lang:103: attempt to index field 'wikibase' (a nil value)) ist ein von der National Security Agency entwickelter und veröffentlichter kryptographisch sicherer Zufallszahlengenerator (PRNG). Trotz öffentlicher Kritik war das Verfahren eines von vier (jetzt drei) in der NIST Special Publication 800-90 standardisierten PRNGs.<ref name="NIST-800-90-rev1" />

Kurz nach der Publikation durch das NIST im Jahr 2007 wurden Vermutungen laut, der Algorithmus enthalte eine kleptographische Backdoor.<ref name="wired-schneier" /> Im Zuge der Enthüllungen von Edward Snowden wurden 2013 Dokumente bekannt, die weithin als Beleg für eine von der NSA bewusst eingebaute Backdoor betrachtet werden.<ref name="nytimes-2013-1" /><ref name="bernstein-2016" /><ref name="green-2017" />

Algorithmus

Gegeben seien:

  • Zwei konstante und öffentlich bekannte Punkte <math>P, Q</math> auf der elliptischen Kurve NIST P-256 (alternativ P-384 oder P-521).
  • Ein interner Zustand <math>s_i</math> als 256 Bit Integer (bzw. je nach Kurve 384 oder 521 Bit). Der Startwert <math>s_0</math> wird durch eine Entropiequelle erzeugt.<ref name="bernstein-2016" />
  • <math>s_i*P</math> ist die skalare Multiplikation eines Punktes, wobei <math>\varphi(s_i*P)</math> die <math>x</math>-Koordinate des neuen Punkts zurückgibt. Es handelt sich hierbei um eine Einwegfunktion basierend auf dem Problem des diskreten Logarithmus in elliptischen Kurven (ECDLP).

Datei:DUAL EC DRBG.jpg

Der Algorithmus ist in zwei Varianten aus den Jahren 2006<ref name="NIST-800-90" /> und 2007<ref name="NIST-800-90-rev1" /> bekannt. Der Unterschied der überarbeiteten Variante ist eine zusätzliche Punktmultiplikation bei der Rückkopplung in den internen Zustand. Eine Iteration des Algorithmus arbeitet wie folgt:

  1. Berechne <math>r_i = \varphi(s_i*P)</math>.
  2. Setze den internen Zustand für die nächste Iteration auf <math>s_{i+1}=r_i</math>. In Variante 2007 erfolgt dies als <math>s_{i+1}=\varphi(r_i*P)</math>.
  3. Berechne <math>t_i = \varphi(r_i*Q)</math>.
  4. Schneide die höchstwertigen 16 Bit von <math>t_i</math> ab und gib die restlichen 240 Bit (bzw. je nach Kurve 368 oder 504 Bit) als Pseudozufallsbits zurück.

Falls mehr Zufallsbits benötigt werden, werden weitere Iterationen durchgeführt.

Sicherheit

Der Grund für die Aufnahme von Dual_EC_DRBG in den Standard war, dass sich seine Sicherheit auf ein schwieriges zahlentheoretisches Problem, das Decisional-Diffie-Hellman-Problem (DDH) in der verwendeten elliptischen Kurve reduzieren lässt. Unter der Annahme, dass DDH ein schwieriges Problem ist, sind die vom Verfahren erzeugten Zwischenwerte, eine Folge von Punkten auf der elliptischen Kurve, ununterscheidbar von einer Folge zufälliger Punkte.<ref name="Gj06" /><ref name="Br06" /><ref name="BG07" /> Dual_EC_DRBG war der einzige PRNG im NIST-Standard, dessen Sicherheit auf einem zahlentheoretischen Problem basiert.<ref name="NIST-800-90-rev1" /> Dessen Geschwindigkeit ist allerdings auch um drei Größenordnungen langsamer gegenüber den drei anderen standardisierten Verfahren.<ref name="wired-schneier" />

Nach der Veröffentlichung des Standards fanden Forscher zwei Sicherheitsprobleme:

  • Die Bitfolge, die aus der Punktfolge erzeugt wird, kann für manche Parameter von einer gleichverteilt zufälligen Bitfolge unterschieden werden. Damit ist der PRNG für eine Anwendung als Stromchiffre und für weitere Anwendungen ungeeignet.<ref name="Gj06" /><ref name="BG07"/><ref name="SS06" />
  • Die Sicherheit des PRNG basiert auf der Annahme, dass das DDH-Problem schwierig ist. Für die von NIST empfohlene Kurve besteht aber die Möglichkeit, dass die Parameter der Kurve ausgehend von weiteren Werten gewählt wurden, die das Lösen dieses Problems wesentlich erleichtern (siehe Abschnitt #Kontroverse).

Kontroverse

Im August 2007 warnten die damaligen Microsoft-Mitarbeiter Dan Shumow und Niels Ferguson, dass der Algorithmus eine Schwäche aufweist, die als Backdoor ausgenutzt werden kann.<ref name="SF07" /> PRNGs sind ein vielfach genutztes kryptographisches Primitiv, und diese Schwäche kann ausgenutzt werden, um jedes kryptographische Verfahren, das auf Dual EC beruht, zu brechen.

Tanja Lange und Daniel Bernstein fanden 2013 die erste Beschreibung der Hintertür – ausdrücklich gegen das TLS-Protokoll gerichtet – in einer vorläufigen Patentanmeldung der Firma Certicom vom 21. Januar 2005.<ref>Dual EC: Das Patent auf die NSA-Hintertür. In: golem.de. 16. Juni 2014, abgerufen am 3. Februar 2024.</ref>

Auf der im Standard definierten Kurve ist ein Punkt P vorgegeben, der die zyklische Gruppe erzeugt. Zusätzlich ist ein Punkt Q definiert. Da die Gruppe zyklisch ist, existiert eine Zahl d, mit Q = dP, der diskrete Logarithmus von Q zur Basis P in der hier additiv geschriebenen Gruppe. Shumow und Ferguson konnten zeigen, dass die Kenntnis von d es einem Angreifer erlauben würde, das Verfahren zu brechen. Es ist nicht klar, wie diese Konstanten P und Q gewählt wurden. Wenn Q echt zufällig gewählt wurde, ist es praktisch unmöglich, d zu berechnen. Es besteht jedoch die Möglichkeit, dass P und d gewählt wurden und Q = dP berechnet wurde. In diesem Fall könnte derjenige, der die beiden Punkte wählte, jede Instanz des PRNG auf dieser Kurve brechen.<ref>Matthew Green: The Many Flaws of Dual_EC_DRBG</ref><ref>Aris Adamantiadis: Dual_Ec_Drbg backdoor: a proof of concept, 28. April 2014.</ref> Da es sich bei den Punkten nicht um unverdächtige Konstanten handelt, kann eine Hintertür nicht ausgeschlossen werden. Im Anhang A des Standards ist allerdings eine Methode definiert, wie eine eigene Kurve mit selbstgewählten Konstanten erzeugt werden kann.

Im Zuge der Enthüllungen des Whistleblowers Edward Snowden berichteten New York Times und Guardian im September 2013 über geheime Dokumente, denen zufolge die NSA als Teil des Projekts „Bullrun“ Verschlüsselungsverfahren geschwächt hat.<ref name="nytimes-2013-2"/><ref name="guardian-2013" /> Laut Beschreibung der New York Times soll unter anderem ein NIST-Standard aus 2006, in dem zwei Microsoft-Kryptographen 2007 eine schwere Schwachstelle entdeckt hätten, Teil des Projekts sein. Der Bericht wird weitgehend als Bestätigung einer Backdoor in Dual_EC_DRBG gewertet.<ref name="nytimes-2013-1" /><ref name="bernstein-2016" /><ref name="green-2017" />

Mitte September 2013 veröffentlichte das Unternehmen RSA Security, unter anderem Anbieter der Kryptografie-Programmbibliothek RSA BSafe und des Authentifizierungssystem SecurID, eine Empfehlung an Entwickler die mit ihren Programmbibliotheken arbeiten, den darin als Standard enthaltenen Dual_EC_DRBG nicht weiter zu verwenden und stattdessen einen anderen Zufallszahlengenerator einzusetzen. Betroffen davon sind alle Anwendungen, die auf RSA BSafe zurückgreifen.<ref>Wired: RSA Tells Its Developer Customers: Stop Using NSA-Linked Algorithm, 19. September 2013.</ref><ref>Zeit Online: NSA hackt Kryptografie: Sicherheitsfirma RSA warnt vor sich selbst, 20. September 2013.</ref> Laut einem Bericht von Reuters hatte RSA Security von der NSA 10 Millionen US-Dollar erhalten, um das Verfahren als Standard in BSafe zu verwenden.<ref name="reuters-2013" />

Als Reaktion auf die Kontroverse unterzog das NIST Dual_EC_DRBG einer neuen Überprüfung und entschied schließlich, das Verfahren aus dem Standard zu entfernen.<ref>NIST Removes Cryptography Algorithm from Random Number Generator Recommendations. 21. April 2014, abgerufen am 6. April 2026.</ref> Am 21. April 2014 bat das NIST um Kommentare zu einem Entwurf für eine überarbeitete Version des Standards SP 800-90A, die Dual_EC_DRBG nicht mehr enthält.<ref><templatestyles src="Webarchiv/styles.css" />Archivlink (Memento vom 23. Juli 2014 im Internet Archive)</ref> Die überarbeitete Version wurde 2015 als SP 800-90A Revision 1 veröffentlicht.<ref name="NIST-800-90A-rev1" />

Sicherheitslücke in Juniper ScreenOS

Im Dezember 2015 gab der Netzwerkausrüster Juniper bekannt, in seinem Betriebssystem ScreenOS „unautorisierten Code“ entdeckt zu haben.<ref name="juniper-2015" /> Dies steht in Zusammenhang mit Dual_EC_DRBG: Laut Analysen unabhängiger Sicherheitsforscher<ref name="green-2015" /><ref name="checkoway-2016" /> sollten mittels Dual_EC_DRBG erzeugte Zufallszahlen eigentlich durch einen weiteren Zufallszahlengenerator weiterverarbeitet werden, was jedoch durch einen (absichtlichen oder unabsichtlichen) Programmierfehler verhindert wurde. Dadurch wurden die mit dem Verfahren erzeugten Zufallszahlen direkt verwendet, was aufgrund von dessen Schwäche einer Backdoor gleichkommt.

Im Jahr 2012 tauschten unbekannte Angreifer den Parameter Q im ScreenOS-Quellcode aus, wodurch sie prinzipiell die Schwachstelle in Dual_EC_DRBG ausnutzen konnten.<ref name="green-2015" /> Es handelte sich also um einen Supply-Chain-Angriff gegen Kunden von Juniper. Dabei wurde eine vorhandene Backdoor angepasst, um eine neue Backdoor zu erzeugen.

Einzelnachweise

<references> <ref name="NIST-800-90">National Institute of Standards and Technology (Hrsg.): NIST SP 800-90: Recommendation for Random Number Generation Using Deterministic Random Bit Generators. Juni 2006, doi:10.6028/NIST.SP.800-90 (nist.gov).</ref> <ref name="NIST-800-90-rev1">National Institute of Standards and Technology (Hrsg.): NIST SP 800-90: Recommendation for Random Number Generation Using Deterministic Random Bit Generators (Revised). März 2007, doi:10.6028/NIST.SP.800-90r (nist.gov).</ref> <ref name="NIST-800-90A-rev1">National Institute of Standards and Technology (Hrsg.): NIST SP 800-90 Revision 1: Recommendation for Random Number Generation Using Deterministic Random Bit Generators. Juni 2015, doi:10.6028/NIST.SP.800-90Ar1 (nist.gov).</ref> <ref name="wired-schneier">Bruce Schneier: Did NSA Put a Secret Backdoor in New Encryption Standard? Wired, 15. November 2007, archiviert vom Vorlage:IconExternal am 6. Juni 2012; abgerufen am 9. Oktober 2011 (Lua-Fehler in Modul:Multilingual, Zeile 153: attempt to index field 'data' (a nil value)).</ref> <ref name="nytimes-2013-1">Nicole Perlroth: Government Announces Steps to Restore Confidence on Encryption Standards. In: New York Times Bits Blog. 10. September 2013, abgerufen am 18. Oktober 2023.</ref> <ref name="bernstein-2016">Daniel J. Bernstein, Tanja Lange, Ruben Niederhagen: Dual EC: A Standardized Back Door. In: Peter Y. A. Ryan, David Naccache, Jean-Jacques Quisquater (Hrsg.): The New Codebreakers. Lecture Notes in Computer Science. Band 9100. Springer, Berlin/Heidelberg 18. März 2016, doi:10.1007/978-3-662-49301-4_17.</ref> <ref name="green-2017">Matthew Green: The strange story of “Extended Random”. In: A Few Thoughts on Cryptographic Engineering. 19. Dezember 2017, abgerufen am 18. Oktober 2023.</ref> <ref name=Gj06> Kristian Gjøsteen: Comments on Dual-EC-DRBG/NIST SP 800-90. 2006 (ntnu.no [PDF]). <templatestyles src="Webarchiv/styles.css" />Comments on Dual-EC-DRBG/NIST SP 800-90 (Memento vom 25. Mai 2011 im Internet Archive) </ref> <ref name="Br06">Daniel R. L. Brown: Conjectured Security of the ANSI-NIST Elliptic Curve RNG. 2006 (iacr.org).</ref> <ref name="BG07">Daniel R. L. Brown and Kristian Gjøsteen: A Security Analysis of the NIST SP 800-90 Elliptic Curve Random Number Generator. In: CRYPTO 2007. Band 4622. Springer, 2007, S. 466–481, doi:10.1007/978-3-540-74143-5_26 (iacr.org).</ref> <ref name="SS06">Berry Schoenmakers und Andrey Sidorenko: Cryptanalysis of the Dual Elliptic Curve Pseudorandom Generator. 2006 (iacr.org).</ref> <ref name="SF07">Dan Shumow und Niels Ferguson: On the Possibility of a Back Door in the NIST SP800-90 Dual EC PRNG. In: CRYPTO Rump Session 2007. 2007 (yp.to [PDF]).</ref> <ref name="nytimes-2013-2">Nicole Perlroth, Jeff Larson, Scott Shane: N.S.A. Able to Foil Basic Safeguards of Privacy on Web. In: New York Times. 5. September 2013, abgerufen am 18. Oktober 2023.</ref> <ref name="guardian-2013">James Ball, Julian Borger, Glenn Greenwald: Revealed: how US and UK spy agencies defeat internet privacy and security. In: The Guardian. 6. September 2013, abgerufen am 18. Oktober 2023.</ref> <ref name="reuters-2013">Joseph Menn: Exclusive: Secret contract tied NSA and security industry pioneer. In: Reuters. 20. Dezember 2013, abgerufen am 18. Oktober 2023.</ref> <ref name="juniper-2015">Derrick Scholl: Important Announcement about ScreenOS®. 17. Dezember 2015, abgerufen am 18. Oktober 2023.</ref> <ref name="green-2015">Matthew Green: On the Juniper backdoor. In: A Few Thoughts on Cryptographic Engineering. 22. Dezember 2015, abgerufen am 18. Oktober 2023.</ref> <ref name="checkoway-2016">Stephen Checkoway, Jacob Maskiewicz, Christina Garman, Joshua Fried, Shaanan Cohney, Matthew Green, Nadia Heninger, Ralf-Philipp Weinmann, Eric Rescorla, Hovav Shacham: A Systematic Analysis of the Juniper Dual EC Incident. In: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. ACM, Wien 24. Oktober 2016, doi:10.1145/2976749.2978395.</ref> </references>