MD5-Hash, wozu?



  • z.B. unter Linux werden die Passwörter ja als MD5 gespeichert, mit der Begründung, dass die Passwörter nicht zugänglich sind für Eindringlinge.
    Allerdings habe ich jetzt gelesen, dass man einen MD5-Hash NICHT umkehren kann. Das einzige womit man ihn rausfinden kann ist mit einer Dictionary-Attack oder Bruteforce. Erstes hat eine geringere Wahrscheinlichkeit für einen Treffer und letzteres dauert bei einem langen Passwort mehr als ein Menschenleben 😃

    Also WOZU werden die Passwörter dann eigentlich als MD5 gespeichert, wenn es sowieso nicht umgekehrt werden kann? Hab ich da was übersehen oder falsch verstanden?

    gruß,
    Finn



  • na damit man, wenn man den hash hat, nicht auf das Passwort schließen kann.

    ich versteh nicht ganz, was du nicht verstehst 😕



  • Naja. Aber MD5-Hash kann doch nicht umgekehrt werden, oder? Also kann doch Linux auch nix damit anfange und speichert das einfach so, oder was? O_o


  • Mod

    Das Passwort muss nicht im Klartext abgespeichert werden. Auf der Festplatte steht also nur ein Hashwert. Findet nun jemand die Passwort-Datei kennt er nicht automatisch (da nicht umkehrbar) das Passwort.

    Will sich nun eine Person authentifizieren gibt sie dazu ihr Passwort ein, welches ebenfalls durch den selben Hash-Algorithmus (bspw. eben MD5) geschleust wird. Sind die Hash-Werte am Ende gleich waren auch die Passwörter am Beginn gleich.

    Also für f(mypassword1) und für f(mypassword2) darf nicht dasselbe rauskommen. Das ist bei Hash-Funktionen aber auch so.

    MfG SideWinder



  • Achsoo 😃 Ja is klar ^^



  • Es werden nur die Hashs von Passwort auf Platte und Eingabe verglichen.
    Also der Hash von der eingabe gebildet. Sind die hashs gleich ist auch das pw gleich...

    grml ... zu spät...



  • btw. man nimmt nicht einfach nur den MD5-Hash eines Passworts, sondern man benutzt ein recht kompliziertes Verfahren, dass zB auf MD5 basieren kann. Neuere Linuxdistributionen nutzen aber eher SHA-basierte Methoden.

    http://en.wikipedia.org/wiki/Crypt_(Unix)#MD5-based_scheme



  • SideWinder schrieb:

    Also für f(mypassword1) und für f(mypassword2) darf nicht dasselbe rauskommen. Das ist bei Hash-Funktionen aber auch so.

    Nein, ist es nicht. Es ist nur sehr unwahrscheinlich.



  • Bei hashfunktionen kann immer nur für zwei verschiedene passwörter was unterschiedliches rauskommen wenn die anzahl der Bytes überschritten wird für die sie ausgelegt ist. Innerhalb dieses Bytebereichs dürfen idR keine zwei pws den gleichen Hash haben.



  • SG1 schrieb:

    SideWinder schrieb:

    Also für f(mypassword1) und für f(mypassword2) darf nicht dasselbe rauskommen. Das ist bei Hash-Funktionen aber auch so.

    Nein, ist es nicht. Es ist nur sehr unwahrscheinlich.

    Ich kenne das so:
    Ist die Länge des zu hashenden Inputs <= Länge Hashwert, dann gilt Hash(Input1) != Hash(Input2) für Input1 != Input2
    Ist die Länge des zu hashenden Inputs <= Länge Hashwert, dann gilt Hash(Input1) != Hash(Input2) als sehr warhscheinlich, aber nicht sicher. Die Abbildung kann hier nicht eineindeutig sein, da die Zielmenge kleiner ist, als die Ausgansmenge.

    Da ein MD5-Hash z.B. 128 Bit lang ist, ist hier nur für einen Input von <= 16 Bytes garantiert, dass es keinen zweiten Input gibt, der denselben Hash liefert.



  • Sollte natürlich: "Ist die Länge des zu hashenden Inputs > Länge Hashwert..." für die 2. Zeile heißen


Anmelden zum Antworten