Schlechte Zufallszahlen führen zu Sicherheitsproblemen.
Schlechte Zufallszahlen führen zu Sicherheitsproblemen. (Bild: Screenshot / Hanno Böck)

OpenSSL: Fork und der Zufall

Der Zufallsgenerator von OpenSSL liefert unter bestimmten Umständen bei mehreren Aufrufen identische Werte, wenn er aus mehreren parallel ablaufenden Prozessen desselben Programms aufgerufen wird.

Anzeige

Nachdem in der vergangenen Woche eine gravierende Schwachstelle im Zufallszahlengenerator von Android bekannt wurde, hat Ruby-Entwickler Martin Boßlet die Hintergründe des Problems analysiert. Besonders in kryptografischen Applikationen spielen Zufallszahlen eine wichtige Rolle und Probleme können dazu führen, dass Verschlüsselungssysteme unsicher werden.

Eine Schwachstelle in OpenSSL führt dazu, dass der Zufallsgenerator der Verschlüsselungsbibliothek in Programmen, die mehrere Unterprozesse nutzen, unter bestimmten Umständen denselben Wert zurückliefert. Das Problem tritt auf, wenn der Zufallszahlengenerator im Hauptprogramm initialisiert wird und anschließend mehrere per Fork gestartete Unterprozesse Zufallszahlen abrufen. In diesem Fall liefert die Zufallsfunktion in allen Prozessen denselben Wert. Grund dafür: Die einzige zusätzliche Zufallsquelle, die in den Unterprozessen genutzt wird, ist die Prozess-ID (PID). Diese wiederholt sich allerdings bereits nach 32768 Unterprozessen, weshalb Programme, die sehr viele Unterprozesse aufrufen, von dem Problem betroffen sind

Bereits vor zwei Jahren hatte Ruby-Entwickler Eric Wong auf der OpenSSL-Mailingliste auf das Problem hingewiesen. Es entspann sich eine Diskussion darüber, ob der Fehler in der OpenSSL-Bibliothek liegt oder ob es sich vielmehr um eine unzulässige Nutzung des Zufallszahlengenerators handelt. Letztere Ansicht setzte sich zunächst durch und am OpenSSL-Code wurde nichts verändert.

Nachdem nun bereits mehrere große Projekte von dem Problem betroffen waren - neben Android und Ruby wurde auch in PostgreSQL bereits ein entsprechender Bug gefunden - plädiert Martin Boßlet dafür, das Problem in OpenSSL selbst zu lösen. Auf der OpenSSL-Mailingliste wird nun diskutiert, ob man neben der PID die Systemzeit als weitere Zufallsquelle nutzen sollte. Ähnlich arbeiten auch die FIPS-Standards der US-Regierung für sichere Zufallszahlengeneratoren.

Generell kritisiert Boßlet, dass Zufallsgeneratoren oft wenig systematisch entwickelt werden und sich somit viele überraschende Probleme darin verbergen können. Eine Möglichkeit wäre, generell auf bewährte Standards zu setzen, Boßlet verweist etwa auf den Fortuna-Zufallszahlengenerator von Bruce Schneier und Niels Ferguson oder auf die Standards der US-Standardisierungsbehörde NIST, die auch Teil der FIPS-Standards sind. Eine andere Möglichkeit wäre, dass Zufallszahlen unter Linux generell über /dev/urandom erzeugt werden. Der Code hierfür hat laut Boßlet einen vergleichsweise guten Ruf. Allerdings steht diese Möglichkeit nur unter Linux bereit.

Bei seinen Tests stellte Martin Boßlet weiterhin fest, dass das Problem in C-Code nur unter bestimmten Umständen auftrat - und zwar in Abhängigkeit von der Linux-Distribution. Nur in Debian-basierten Distributionen konnte er das Problem zunächst reproduzieren. Der Hintergrund dazu erinnert an das OpenSSL-Debakel in Debian von 2008. Demnach nutzt OpenSSL für seinen Zufallszahlengenerator einen unter bestimmten Umständen uninitialisierten Speicherbereich. Dieser enthält meist irgendwelche bereits vorhandenen Nutzerdaten, wodurch eine weitere Zufallsquelle besteht. In Debian ist der entsprechende Code auskommentiert und der Zufallsgenerator startet mit einem durch Nullen initialisierten Speicherbereich. Auf die Zufallszahlen im uninitialisierten Speicher verlassen sollte man sich allerdings auch nicht. Wird dieser vorher vom Nutzer selbst initialisiert, enthält er ebenfalls bereits Nulldaten.


petera 26. Aug 2013

Btw. Timer =/= Uhrzeit/Zeitstempel, sequentielle, korrelierbare Informationen haben...

petera 26. Aug 2013

/dev/random unter Linux kann besser sein weil er blockt, wenn er nicht mehr ausreichend...

petera 26. Aug 2013

Jeder PRNG der nicht aussreichend Entropie im Seed oder seinem Akkumulator verwendet...

Unwichtig 23. Aug 2013

https://blog.startcom.org/wp-content/uploads/2008/05/debian-rng.jpg Schoenes Wochenende...

Kommentieren



Anzeige

  1. Systemarchitekt (m/w)
    LANXESS Deutschland GmbH, Leverkusen
  2. Mitarbeiter/-in IT-Support
    Lechler GmbH, Metzingen
  3. Senior Software-Entwickler (m/w)
    Optimize My Day GmbH, Düsseldorf
  4. Leiter der Softwareentwicklung (m/w)
    VEPRO AG, Pfungstadt bei Darmstadt

Detailsuche


Top-Angebote
  1. TV-Staffeln unter 10 EUR
    (u. a. True Detective, The Big Bang Theory, The Mentalist, The Vampire Diaries)
  2. TIPP: PS4- und Xbox-One-Spiele stark reduziert
    (u. a. F1 2015 PS4 43,79€, Metro Redux PS4 37,64€, Singstar Ultimate Party PS4 19,61€, GTA 5...
  3. TV-Komplettboxen reduziert
    (u. a. Lost 39,97€, The Closer 37,97€, Desperate Housewives 49,97€, Hör mal wer da hämmert...

Weitere Angebote


Folgen Sie uns
       


  1. Präsentation

    Apples iPhone-Event findet am 9. September 2015 statt

  2. Vectoring

    Landkreise wollen Glasfaser statt Dobrindts Breitband

  3. Swisscom

    Mobilfunkbetreiber startet Wifi-Calling in Gebäuden

  4. Honor 7 im Hands on

    Neues Honor-Smartphone kommt für 350 Euro nach Deutschland

  5. Radeon R9 Nano

    AMDs winzige Grafikkarte läuft theoretisch mit 1 GHz

  6. LG Rolly Keyboard

    Bluetooth-Tastatur lässt sich zu einem Stab falten

  7. Breitbandausbau

    Bitkom sieht 50 MBit/s nur als Zwischenschritt

  8. Datenschutz

    Verfassungsschutz darf Xkeyscore gegen Datentausch nutzen

  9. Computerhersteller

    Gründer bietet Acer zum Verkauf an

  10. CD Projekt Red

    73 Millionen Euro Entwicklungskosten für The Witcher 3



Haben wir etwas übersehen?

E-Mail an news@golem.de



20 Jahre im Einsatz: Lebenserhaltende Maßnahmen bei Windows 95
20 Jahre im Einsatz
Lebenserhaltende Maßnahmen bei Windows 95
  1. Windows 10 Updates lassen sich unter Umständen 12 Monate aufschieben
  2. Windows-10-Updates Microsoft intensiviert die Geheimniskrämerei
  3. Vor dem Start von Windows 10 Steigender Marktanteil für Windows 7

The Flock im Test: Versteck spielen, bis alle tot sind
The Flock im Test
Versteck spielen, bis alle tot sind
  1. Hearthstone Das Große Turnier im Test Mit Fanfaren in das neue Glücksspiel-Meta
  2. Ronin im Test Auftragsmord mit Knobelpausen
  3. Test Til Morning's Light Abenteuer von Amazon

Windows 10 im Upgrade-Test: Der Umstieg von Windows 7 auf 10 lohnt sich!
Windows 10 im Upgrade-Test
Der Umstieg von Windows 7 auf 10 lohnt sich!
  1. Microsoft Erster Insider-Build seit dem Erscheinen von Windows 10
  2. Neue Nutzungsbedingungen Microsoft darf unautorisierte Hardware blockieren
  3. Windows 10 Spiele-Streaming von der Xbox One in sehr hoher Auflösung

  1. Re: Dobrindt ...

    c322650 | 22:09

  2. Re: Yosemite -> El Capitan (kwT)

    Lala Satalin... | 22:06

  3. Erfolgreich wird Win10 erst...

    Captain | 22:06

  4. Re: Das macht mir Angst

    Lala Satalin... | 22:02

  5. Re: EMP

    plutoniumsulfat | 21:59


  1. 21:06

  2. 20:53

  3. 20:16

  4. 20:00

  5. 19:52

  6. 17:53

  7. 17:40

  8. 17:35


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel