login salten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • login salten

    Hallo Community,

    ich bin gerade dabei mir das Login System von dem wbb vorzunehmen.
    Mein vorhaben ist ein festen salt zu verwenden bei dem Login .

    Hier zu schreibe ich z.b

    PHP-Code:
    $salt "r4bl5pr33x"
    in eine globale Datei die immer mitgeladen wird.

    so und nun zu der login.php Originaler Code

    PHP-Code:
    if (isset($_POST['send'])) {
        
    $result getwbbuserdata($_POST['l_username'], "username");
        if (
    $allowloginencryption =
    && $_POST['crypted'] == "true" 
    && $result['sha1_password']) {

    $authentificationcode 
    sha1(sha1($session['authentificationcode'])
    .
    $result['sha1_password']);
    if (!
    $result['userid'] || $authentificationcode != $_POST['authentificationcode']) {
                unset(
    $result);
                unset(
    $authentificationcode);
            }
    else 
    $wbb_userpassword $result['password'];
        }
        else {    
    $wbb_userpassword md5($_POST['l_password']);    
    if (!
    $result['userid'] || $result['password'] != $wbb_userpassword) unset($result);
    else {
    if (!
    $result['sha1_password']) 
    $db->unbuffered_query("UPDATE bb".$n."_users SET sha1_password='
    "
    .sha1($_POST['l_password'])."
    ' WHERE userid='
    $result[userid]'");

    so und zwar wird hier:

    PHP-Code:
    $wbb_userpassword 
    md5($_POST['l_password']); 
    das PW verarbeitet und hier

    PHP-Code:
    if (!$result['userid'] || 
    $result['password'] != $wbb_userpassword
    unset(
    $result); 
    mit der Datenbank abgeglichen.

    So nun dachte ich mir, ich ändere das ganze so ab

    PHP-Code:
    $wbb_userpassword 
    md5($salt.$_POST['l_password']); 
    dann bekomme ich wenn ich mit echo nach kucke z.b

    PHP-Code:
    r4bl5pr33x47ec2dd791
    e31e2ef2076caf64ed9b3d 
    Hier kann man ganz klar sehen das der feste salt dem md5 hash vorne angehongen wurde.

    Mein Problem ist nun, das dieser Abgleich in der DB ja niemals stimmen wird.

    Ich dachte mir dann, ich gehe nun hin und ändere die Zeile der DB Abfrage so.

    PHP-Code:
    $salt($result['password']) 
    mein Gedanke war das er den salt Automatisch an den md5 Hash anhängt und somit der vergleich der Datenbank gleich ist.

    Leider komme ich da nun nicht weiter und sitze schon 3 Nächte dadran.

    Bitte gibt mir doch mal ein Denk anstoss

    Vielen Dank

    Ali
    Zuletzt geändert von ali_saed; 07.12.2008, 18:04.

  • #2
    Hi,

    1. Code umbrechen! Horizontale Scrollbalken will hier niemand sehen!
    2. Ein MD5-Hash beinhaltet immer nur Zahlen von 0 - 9 und Buchstaben von A - F. D.h. entweder Woltlab hat sich eine neue MD5-Funktion geschrieben und die bestehende PHP-Funktion md5() überschrieben (was ich persönlich für sehr unwahrscheinlich halte) oder aber du hast irgendwo einen Fehler.
    PHP-Code:
    $wbb_userpassword md5($salt.$_POST['l_password']) 
    Damit erzeugst du definitiv einen salted Hash.
    Bist du sicher, dass du das so getestet hast und anschließend den Hash ausgegeben hast?

    Übrigens musst du die neue Funktion auch noch in
    - Passwort vergessen
    - neues Passwort setzen
    - Registrierung
    - Admincenter: Passwort setzen
    anpassen.

    Und wenn du schon salted Hashes verwenden willst, dann würde ich an deiner Stelle noch irgendeine benutzerspezifische fixe Komponente einbauen. Würde die Sicherheit nochmals steigern.

    gruß
    lsgdcity

    Kommentar


    • #3
      Hi,

      also das ganze Funktioniert, wie Du es eben auch schon geschrieben hast.

      Cookie´s müßte ich auch noch bearbeiten nur wie, dazu habe ich noch kein Ansatz.

      Dann kommt noch hinzu das ich auch alle bestehende User in der Datenbank salten muss. Aber noch garkeine Ahnung wie ich das am besten anstelle.

      Danke für den Tipp


      Ali

      Kommentar

      Lädt...
      X