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

Beitrag lesen

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.

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