2009-12-08 9 views
7

In Linux, wie zufällig ist /dev/urandom/? Ist es sicher?Wie zufällig ist urandom?

Ist es auch möglich, einen Strom von 1 zu bekommen?

+3

* "Ist es sicher in Betracht gezogen?" * Safe für * was *? Die Antwort hängt vollständig vom Kontext ab. – dmckee

Antwort

9

Note 4,5 Jahre später: Das schlechte Beratung ist. Details siehe unter theselinks.

Wenn Sie kryptografische Schlüssel unter Linux generieren, möchten Sie /dev/random, selbst wenn es blockiert - Sie brauchen nicht so viele Bits.

Für fast alles andere, wie das Erzeugen von zufälligen Testdaten oder unvorhersehbaren Sitzungs-IDs, ist /dev/urandom in Ordnung. Es gibt genug Entropiequellen in den meisten Systemen (Timing von Tastatur- und Mausereignissen, Netzwerkpaketen usw.), dass die Ausgabe unvorhersehbar ist.

+1

+1, obwohl es oft einfacher und schneller ist, seine eigene Entropie zu sammeln, als auf eine Blockierung/dev/random zu warten. Ich fülle große Dateien auf diese Weise für "Flaschen" -Entropie, wenn ich an Monte-Carlo-Simulationen arbeite. Es ist viel schneller, die Tasten zu schlagen und die Maus zu bewegen als auf/dev/random –

+0

Ich bin verwirrt: wie ist das besser als mit/dev/urandom? –

+2

Das letzte Mal, dass ich/dev/urandom auf Linux gesucht habe, gab die gleiche Ausgabe wie/dev/random * zurück, solange Entropie im Pool * ist, weil beide den Pool benutzen. Der Unterschied besteht darin, dass urandom auf einen einfachen rehashing-Algorithmus zurückgreift, wenn es keine gespeicherte Entropie gibt, während random warten wird, bis neue Entropie hinzugefügt wurde. – dmckee

4

Bitte überprüfen Sie die man page:

Yarrow is a fairly resilient algorithm, and is believed to be resistant 
    to non-root. The quality of its output is however dependent on regular 
    addition of appropriate entropy. If the SecurityServer system daemon 
    fails for any reason, output quality will suffer over time without any 
    explicit indication from the random device itself. 

    Paranoid programmers can counteract this risk somewhat by collecting 
    entropy of their choice (e.g. from keystroke or mouse timings) and seed- 
    ing it into random directly before obtaining important random numbers. 
+0

Aber lassen Sie uns sagen, Sie ziehen aus zufälligen oder urandom. und das System sitzt nur da, sagen wir eine Live-CD. Wäre die Entropie nicht jedes Mal, wenn das gleiche Szenario auftrat, ähnlich? – Recursion

+0

Das ist ein Link zu einer BSD-Manpage, und in diesem Fall ist das Linux-Verhalten anders:/dev/random ist "stärker" als/dev/urandom. –

0

Verwenden Sie/dev/urandom, es ist kryptographisch sicher.

gut zu lesen: http://www.2uo.de/myths-about-urandom/

„Wenn Sie sich nicht sicher sind, ob Sie/dev/random oder/dev/urandom sollte, dann wahrscheinlich wollen Sie diese nutzen.“

Im Zweifelsfall im frühen Boot, ob Sie genügend Entropie gesammelt haben. Verwenden Sie stattdessen den Systemaufruf getrandom(). [1] Sein Bestes aus beiden Welten, es blockiert, bis (nur einmal!) Genug Entropie gesammelt wird, danach wird es nie wieder blockieren.

[1] git kernel commit