Microtime ist grob bekannt.
Woher denn? Wer will woher (und wozu) wissen, wann das Passort gesalzen, gehasht und gespeichert wurde?
Wenn man's möchte, ist /proc/uptime ein Wert nahe Null (Maschine durch Überlast zum Neustart zwingen, oder Neustart durch Dauer-Ping beobachten).
ja klar. Aber die Passwörter sind da bereits gehashed.
Man zieht also eine bekannte Konstante von der aktuellen Zeit ab. FAIL!
Fail?
Nochmal:
(1)
Es kommt nur darauf an, dass jedes Passwort zusammen mit einem ANDEREN (und für dieses Passwort konstantem Salt) mehrfach gehasht wurde.
(2)
Ob der Salt vorhersehbar ist, das ist absolut SCHEISSEGAL. Und zwar weil der Salt zusammen mit dem Passwort gespeichert wird. Der Salt muss nämlich auch bekannt sein um das Passwort zu prüfen. Üblich ist es, den Salt zusammen mit dem Hasch zu speichern. In meiner Funktion 'craeteSaltedHash($passwd)' wird er auch so zurück gegeben:
return ( $salt.'~'.my_hash($passwd, $salt) );
Also:
Wenn ein Angreifer aus den Salt 0 bis x-1 vorhersagen kann, dass der Salt für das Passwort x "foobar" ist, dann ist das egal, weil er das auch DIREKT LESEN kann. Die Mühe, die Vorhersage zu treffen, ist schlicht und einfach völlig sinnlos.
heise schreibt im bezogenen Artikel:
---------------------
Bcrypt nutzt einen aufwändigen Schlüsselinitialisierungsalgorithmus und verschlüsselt das resultierende Chiffrat immer wieder abwechselnd mit dem Salt und dem Passwort. Die Zahl der Runden ist eine Potenz von 2, der benutzte Exponent wird der erzeugten Zeichenkette vorangestellt. Diese hat üblicherweise folgendes Format:
$2a$08$Ra4upKLreqDA18E/OtFSIu/ED6iTmorUKyNJF6aVwbpO9AIBS/j7u
Die am Anfang zwischen die Dollarzeichen eingeklemmte Zeichenkette 2a steht für den bcrypt-Algorithmus, die darauffolgende Zahl 08 signalisiert den Exponten zur Potenz 2 – 2 hoch 8 ergibt die Anzahl der Runden: 256. Die sich anschließende Zeichenfolge ist das 16-stellige Salt und das verschlüsselte Passwort.
---------------------
Noch mal, weil es so schön ist:
"Die sich anschließende Zeichenfolge ist das 16-stellige Salt."
Im Beispiel von heise "Ra4upKLreqDA18E".
Und nochmal: Es entspricht voll und ganz der Idee des Salzenz, dass der Salt bekannt ist.
Damit ist aber auch jede Kritik an meiner Methode, den Salt "quasizufällig" zu bilden, glatt für den Arsch.
Rainbow-Tabellen werden kaum noch genutzt. Sie bringen keinen wirklichen Gewinn mehr. Der Aufwand der
Erzeugung und Speicherung steht in keinem Verhältnis zur schlichten Bearbeitung mit Brute Force und
relativ günstiger Hardware.
Wenn es denn so wäre könnte man auf das Salzen ganz verzichten.