Jörg Reinholz: Kleine Bibliothek für Passwort-Hash-Erzeugug und Verifizierung

Beitrag lesen

password_hash aus PHP 5.5 liest /dev/urandom meines Wissens. Das wird einen Grund haben.

Dann lese mal im manual: (man 4 urandom)

When the entropy pool is empty, reads from /dev/random will block until additional environmental noise is gathered.

Zitat {
A read from the /dev/urandom device will not block waiting for more entropy.  As a result, if there is not sufficient entropy in the entropy pool, the returned values are theoretically vulnerable to a cryptographic attack on the  algorithms used by the driver.  Knowledge of how to do this is not available in the current unclassified literature, but it is theoretically possible that such an attack may exist.  If this is a concern in your application, use /dev/random instead.
}

Auf deutsch: /dev/random blockiert (liefert nichts mehr) wenn die entropie ausgeht. /dev/urandom liefert weiter, die gelieferten Werte sind aber nicht mehr wirklich zufällig, was theoretisch die Chance auf eine crytopgrafische Attacke eröffnet. Wenn das ein Hinderungsgrund sei, solle man auf /dev/random zurückgreifen.

Der Hinweis auf die theoretisch möglich werdende Attacke bezieht sich dann übrigens nicht auf das Password-Hashing, sondern ganz allgemein auf die Weiterverwendung. Beim Passwort-Hashing gibt es den Punkt, dass der Salt ja mit dem Hash bekannt wird - er steht im KLARTEXT drin und es kommt letztlich nur darauf an, dass es der Salt (möglichst) nicht mehrfach vorkommt, weil das dem Angreifer die Wiederverwendung einmal erzeugter Rainbow-Tables ermöglicht.

Das sieht z.B. bei der Generierung und Erneuerung eines session-keys ganz anders aus. Da geht es aber um Verschlüsselung und nicht um das Hashen.

Jörg Reinholz