PHP 5.5 soll Passwort-Schlamperei eindämmen

Mit Hilfe einer neuen Funktion man mit nur einer Zeile Code einen sicheren, gesalzenen Passwort-Hash nach dem bcrypt-Verfahren erzeugen, auch das Verifizieren des Passworts ist so leicht.

In Pocket speichern vorlesen Druckansicht 116 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Ronald Eikenberg

Die PHP-Version 5.5 wird eine API mitbringen, die Admins beim sicheren Speichern von Passwörtern unterstützt. Mit ihrer Hilfe kann man mit nur einer Zeile Code einen sicheren, gesalzenen Passwort-Hash nach dem bcrypt-Verfahren erzeugen:

$hash = password_hash($password, PASSWORD_DEFAULT);

Um ein Salt muss man sich dabei nicht kümmern; es wird automatisch eingebaut und ergänzt das Passwort um eine zufällige Komponente. Das Verifizieren des Passworts ist genauso leicht:

password_verify($password, $hash);

Gelangen die generierten Hashes mal in die falschen Hände, kann der Datendieb die dazugehörige Klartext-Passwörter nur mit erheblichen Aufwand rekonstruieren – vorausgesetzt, die Passwörter sind lang genug. Das Hash-Verfahren Bcrypt ist nämlich zum einen sehr rechenintensiv und braucht zum anderen viel Speicher, was das Knacken mit GPUs erschwert. Ein Rechner mit acht CPU-Kernen kann gerade mal rund 5000 Hashes pro Sekunde erzeugen, eine aktuelle GPU liefert ähnliche Werte. Zum Vergleich: bei SHA1 liegen diese Werte normalerweise im mehrstelligen Millionenbereich.

Durch den Einsatz von Salts fällt auch der Einsatz von Rainbow-Tabellen flach. Wer will, kann der Hash-Funktion auch einen eigenen Salt vorgeben, die Komplexität von Bcrypt (cost) beeinflussen oder das Hash-Verfahren ändern. Auch diese Einstellungen speichert die API mit in der Hash-Variable.

In der Vergangenheit sind immer wieder Datenbankauszüge namhafter Webseits ins Netz gelangt, wodurch bekannt wurde, dass die Anbieter die Passwörter ihrer Nutzer entweder nur als ungesalzene Hashes oder gar im Klartext speichern. Mit der neuen API haben Admins für derartige Schlampereien nun keine Ausreden mehr – viel leichter kann es nicht mehr werden. Wer nicht mehr bis PHP 5.5 warten möchte, kann die neue API bereits jetzt bei Github herunterladen.

Siehe dazu auch: