Jörg Reinholz: Statt md5(str) - Das, was heise vorschlug in einf. Code gegossen

Beitrag lesen

Wer Kennwörter auf verschiedenen Internetseiten wiederverwendet ist selber schuld,

Mag sein. Aber haben wir nicht eine gewisse Mitverantwortung? Man kann auch sagen, wer bei Überqueren der Straße nicht aufpasst sei selber schuld. Deiner Theorie folgend müsste man Geschwindigkeitsbeschränkungen vollständig aufheben. Auch die zwei Tasten an der Presse - weg damit! Es weiß doch ein jeder, dass man den Pressvorgang nicht auslöst wenn man eine Hand drunter hat.

Tatsächlich ist jeder, der eine Anlage erreichtet und/oder betreibt, dazu verpflichtet diese so gefahrlos wie nur möglich zu erreichten oder zu betreiben - weil eben bekannt ist, dass die Menschen oft fahrlässig handeln. Ich ersuche Dich also, Deinen Algorithmus zu verbessern.

Das was heise vorschlug, läuft übrigens auf etwas wie das hier heraus:
Die Konstante PASSWD_ITERATIONS sollte noch angepasst werden, sinnvoll sind Werte ab 5000. Mit 1 Mio Iterationen braucht das Skript bei mir je 1 Sekunde zum Ermitteln des Vielfach-Hashes und zum Prüfen des Passwortes. Je nach Server und Last kann 1 Mio zu viel sein. Aber je höher, so sicherer.

<?php  
## Speicherbedarf des mehrfach gehaschten Passwortes mit Salt: 42 Byte + PASSWD_SALT_LENGHT  
## (aus Zeile 10)  
  
if (! defined('PASSWD_ITERATIONS')) {  
    define('PASSWD_ITERATIONS', 1000000);  
}  
  
if (! defined('PASSWD_SALT_LENGHT')) {  
    define('PASSWD_SALT_LENGHT', 32);  
}  
  
  
#### TEST #####  
#/* Zum Testen am anfang dieser Zeile Raute (#) vor SlashAsterix(/*) setzen -> #/*  
$test = craeteSaltedHash('Hallo');  
print "gehaschtes Passwort: $test\n";  
  
if (checkSaltedHash('Hallo' , $test) ) {  
  echo "Passt!\n";  
} else {  
  echo "Nö!!\n";  
}  
#*/  
#### /TEST #####  
  
  
function craeteSaltedHash($passwd) {  
  if ('' == $passwd) { # oder bessere Prüfung!  
    return false;  
  }  
  $salt='';  
  for ($i=0; $i<PASSWD_SALT_LENGHT; $i++) {  
    $salt .= chr( rand( 33, 125 ) );            # ascii von '!' bis '}' - OHNE '~'!  
  }  
  for($i=0; $i<PASSWD_ITERATIONS; $i++) {  
     $passwd=sha1($salt.$passwd);  
  }  
  return ($salt.'~'.$passwd);  
}  
  
function checkSaltedHash($passwd, $saved_string) {  
  list($salt,$rest)=explode('~', $saved_string, 2);  
  # print "salt: '$salt'\n"; #### DEBUG  
  # print "rest: '$rest'\n";   #### DEBUG  
  for($i=0; $i<PASSWD_ITERATIONS; $i++) {  
     $passwd=sha1($salt.$passwd);  
  }  
  if ( "$passwd" == "$rest" ) {  
    return true;  
  } else {  
    return false;  
  }  
}  
  
?>

Jörg Reinholz

0 55

Unterschied zwischen Firefox und anderen Browsern?

Klaus
  • browser
  1. 0
    Matze
    1. 0
      molily
      1. 0
        Matze
        1. 0
          Klaus
          1. 0
            Matze
            1. 0
              Klaus
              1. 0
                Matze
  2. 0
    Felix Riesterer
    1. 0

      Zustimmung: Einfach MD5-gehaschte Passwörter sind unsicher

      Jörg Reinholz
      • programmiertechnik
      1. 0
        Klaus
        1. 0
          Matze
          1. 0
            Klaus
          2. 0
            MudGuard
        2. 2
          molily
          1. 0
            Klaus
            1. 0

              Statt md5(str) - Das, was heise vorschlug in einf. Code gegossen

              Jörg Reinholz
              1. 0
                molily
                1. 0
                  Jörg Reinholz
                  1. 0
                    Jörg Reinholz
                  2. 2
                    molily
                    1. 0
                      molily
                    2. 0
                      Jörg Reinholz
                      1. 0
                        molily
                        1. 0
                          Jörg Reinholz
                          1. 1
                            dedlfix
                            1. 0
                              Jörg Reinholz
                              1. 0
                                molily
                                1. 0
                                  molily
                                  1. 0
                                    Jörg Reinholz
                                2. 0
                                  Jörg Reinholz
                              2. 1
                                Sven Rautenberg
                                1. 0
                                  Jörg Reinholz
                        2. 0
                          Jörg Reinholz
                          1. 2
                            molily
                            1. 0
                              Jörg Reinholz
                              1. 0

                                Kostenloses Bildungsangebot

                                molily
                                1. 0
                                  molily
                                  1. 0

                                    Unbrauchbares Bildungsangebot

                                    Jörg Reinholz
                                  2. 0

                                    Kostenloses Bildungsangebot - jetzt für Dich

                                    Jörg Reinholz
                                2. 0

                                  Kostenloser Hinweis auf Deinen Denkfehler

                                  Jörg Reinholz
              2. 0
                Der Martin
              3. 1
                Sven Rautenberg
                1. 0
                  Matthias Apsel
    2. 0

      Verschlüsselung clientseitig. Kann mir das mal einer erklären ?

      Siri
      1. 0
        misterunknown
        1. 0
          Siri
      2. 0
        Jörg Reinholz
        1. 0
          Siri
      3. 0

        Noch ne Frage: Wo wird eigentlich der Schlüssel hinterlegt?

        Siri
  3. 0
    Jörg Reinholz
    1. 0
      Klaus
  4. 0
    molily
    1. 1

      Session-Konfiguration

      Matze
    2. 0
      Klaus