[Python-de] urandom "suitable for cryptographic use"?

Christian Heimes lists at cheimes.de
Mi Mai 9 15:34:01 CEST 2012


Am 09.05.2012 14:51, schrieb Thomas Rachel:
> Hallo,
>
> Das verwundert mich ein wenig; ich dachte eigentlich, /dev/urandom sei
> gerade nicht für "cryptographic use" geeignet, wegen des potentiell
> leeren Entropiepols, und daß man für diese Einsatzwecke where
> /dev/random nehmen sollte.

Es kommt darauf an, für was du die Zufallszahlen brauchst. /dev/urandom
ist im Gegensatz zum Mersenne-Twister im random Module für einfache
kryptographische Sachen geeignet. Darunter zählt die Erstellung von
Session Keys (SSL Session, web sessions), Salts oder
Initialisierungsvektoren für Blockchiffren.

Für Fälle andere Fälle wie SSL-Zertifikate, PGP-Schlüssel, SSH-Schlüssel
o.ä. sollte nur streng zufällige Zahlen aus /dev/random verwenden. Da
kann es schon mal einige Minuten mit viel Mauswackeln und
Tastaturhämmern dauern, bis man ein paar gute Bytes zusammengekratzt hat.

Faustregel: Für temporäre Schlüssel oder Zufallsdaten, die die
Sicherheit nur erhöhen (Stichwort Salt) reicht /dev/urandom in der Regel
aus. Wenn man auf der Basis der Zufallszahl jahrelang große Datenmengen
verschlüsselt (Stichworte asymmetrisches Verschlüsselung, X.509), dann
sollte man /dev/random verwenden.

man random(4)

Christian



Mehr Informationen über die Mailingliste python-de