md5-Passwörter mit Salt // mediawiki/includes/User.php

Autor: Raphael H. Becker <Raphael.Becker_at_gmx.de>
Datum: 08.05.2006
Hallo zusammen,

ich habe mich die Tage in die Abgründe der Passwörter von mediawiki
begeben, da ich wissen wollte, wie aus einem Klartext-Passwort das
gehashte Passwort in der user-Tabelle entsteht und bin dabei auf
folgendes Konstrukt gestoßen:


includes/User.php

function addSalt( $p ) {
        global $wgPasswordSalt;
        if($wgPasswordSalt)
                return md5( "{$this->mId}-{$p}" );
        else
                return $p;
}
[...]
function encryptPassword( $p ) {
        return $this->addSalt( md5( $p ) );
}

$this->mId      Numerische User-ID
$p              Passwort-String


Aus der User-ID "4711" mit dem Passwort "foobar" wird

md5("4711-".md5("foobar")) bzw
md5("4711-3858f62230ac3c915f300c664312c63f") oder letztlich
 ffb7631cfa7ab9c97fd510b7111ecd70


Warum ein Salt für ein Passwort? Ganz einfach, damit verhindert man
gewissermaßen Wörterbuchattacken (precompilierte md5-Summen bekannter
Wörter). Mit dem Salt will man noch etwas mehr "Zufall" reinbringen, als
ein vom Mensch generiertes Passwort haben kann.

Soweit noch klar, dann würde doch aber reichen: md5("salt-password").

Da bei md5 der Salt nicht irgendwie als Prefix im verschlüsselten
Passwort mit abgelegt wird, nimmt mediawiki die vom System vergebene
user_id, die interne Nummer eines Users, diese ist bei der Prüfung von
Passwörtern ohnehin verfügbar, wenn auch nicht wirklich "zufällig".

Welchen Vorteil hat md5(salt-md5(passwort)) gegenüber
md5(salt-passwort)?

Es gibt für 6-8 stellige "Standardpasswörter" vorhersagbar viele
Ergebnisse für md5(password), rein statistisch gibt es also keinen
Vorteil, 2x md5 anzuwenden. 

Vermutlich ist es ganz trivial zu beantworten, ich kapiers nicht.
Warum macht es mediawiki so und nicht anders? Ideen?

Gruß
-- 
Raphael Becker                                    http://rabe.uugrn.org/
                      http://schnitzelmitkartoffelsalat.und.rahmspin.at/
.........|.........|.........|.........|.........|.........|.........|..


Received on Mon May 8 14:23:55 2006

Dieses Archiv wurde generiert von hypermail 2.1.8.
Zurück zur UUGRN-Homepage.