Seite 1 von 1

Beispiel für zwei gleiche MD5-Fingerprints

Verfasst: 13.09.2005 17:41
von NicTheQuick
Hi!

Bin letztens durch irgendjemanden darauf aufmerksam geworden, das man bei Wikipedia Beispiele für Datenfelder bekommt, die nach dem MD5-Algorithmus den gleichen Hash bekommen.

Hier mal zwei Beispiele, die ich gefunden habe. Vielleicht interessierts ja den ein oder andere. :wink:

Code: Alles auswählen

DataSection
  Value1:
    Data.l $2DD31D1,  $C4EEE6C5, $69A3D69,  $5CF9AF98, $87B5CA2F, $AB7E4612, $3E580440, $897FFBB8
    Data.l $634AD55,  $2B3F409,  $8388E483, $5A417125, $E8255108, $9FC9CDF7, $F2BD1DD9, $5B3C3780
    Data.l $D11D0B96, $9C7B41DC, $F497D8E4, $D555655A, $C79A7335, $CFDEBF0 , $66F12930, $8FB109D1
    Data.l $797F2775, $EB5CD530, $BAADE822, $5C15CC79, $DDCB74ED, $6DD3C55F, $D80A9BB1, $E3A7CC35
  
  Value2:
    Data.l $2DD31D1,  $C4EEE6C5, $69A3D69,  $5CF9AF98, $7B5CA2F,  $AB7E4612, $3E580440, $897FFBB8
    Data.l $634AD55,  $2B3F409,  $8388E483, $5A41F125, $E8255108, $9FC9CDF7, $72BD1DD9, $5B3C3780
    Data.l $D11D0B96, $9C7B41DC, $F497D8E4, $D555655A, $479A7335, $CFDEBF0,  $66F12930, $8FB109D1
    Data.l $797F2775, $EB5CD530, $BAADE822, $5C154C79, $DDCB74ED, $6DD3C55F, $580A9BB1, $E3A7CC35
  
  Value3:
    Data.l $2DD31D1,  $C4EEE6C5, $69A3D69,  $5CF9AF98, $87B5CA2F, $AB7E4612, $3E580440, $897FFBB8
    Data.l $634AD55,  $2B3F409,  $8388E483, $5A417125, $E8255108, $9FC9CDF7, $F2BD1DD9, $5B3C3780
    Data.l $313E82D8, $5B8F3456, $D4AC6DAE, $C619C936, $B4E253DD, $FD03DA87, $6633902,  $A0CD48D2
    Data.l $42339FE9, $E87E570F, $70B654CE, $1E0DA880, $BC2198C6, $9383A8B6, $2B65F996, $702AF76F
  
  Value4:
    Data.l $2DD31D1,  $C4EEE6C5, $69A3D69,  $5CF9AF98, $7B5CA2F,  $AB7E4612, $3E580440, $897FFBB8
    Data.l $634AD55,  $2B3F409,  $8388E483, $5A41F125, $E8255108, $9FC9CDF7, $72BD1DD9, $5B3C3780
    Data.l $313E82D8, $5B8F3456, $D4AC6DAE, $C619C936, $34E253DD, $FD03DA87, $6633902,  $A0CD48D2
    Data.l $42339FE9, $E87E570F, $70B654CE, $1E0D2880, $BC2198C6, $9383A8B6, $AB65F996, $702AF76F
EndDataSection

;1 und 2 testen
MD51.s = MD5Fingerprint(?Value1, 128)
MD52.s = MD5Fingerprint(?Value2, 128)

Debug MD51
Debug MD52
If MD51 = MD52 : Debug "Beide gleich" : EndIf

;Jetzt 3 und 4 testen
MD51.s = MD5Fingerprint(?Value3, 128)
MD52.s = MD5Fingerprint(?Value4, 128)

Debug MD51
Debug MD52
If MD51 = MD52 : Debug "Beide gleich" : EndIf

Verfasst: 14.09.2005 07:54
von tranquil
Die beiden unterscheiden sich ja kaum voneinander. Theoretisch müsste es ja zu jedem MD5 Hash unendlich viele möglichkeiten geben. Nur werden diese Datenpakete dann eben wesendlich größer.

Aber trotzdem mal interessant sowas zu sehen. Nur ein MD5 Hash von einem File ist also durchaus nicht sicher. Deshalb beziehe ich zu dem Hash-String eines Files immernoch die Dateigröße mit zum vergleich hinzu.

Mike

Verfasst: 14.09.2005 11:06
von hardfalcon
deshalb wurde AFAIK ja auch SHA1 entwickelt. Der ist ancsheinend sicherer als MD5. Für Passwortabfragen in PHP verwende ich deswegen auch immer SHA1 anstelle von MD5, nur bei PB geht das halt leider nicht ohne Umwege... Schade eigentlich!

@tranquil: Dateigröße allein reicht nicht. Du solltest auch noch mehrere DES-Fingerprint mit jeweils verschiedenen Keys benutzen... Es reicht ja vollauf, wenn du die drei MEthoden gestaffelt anwendest:

1.) Dateigröße (wenn ungleich, überspringe den Rest)
2.) MD5 (wenn ungleich, überspringe den Rest)
3.) verschiedene DES-Hashes (wenn ungleich, überspringe den Rest)

Verfasst: 14.09.2005 11:13
von ZeHa
Mal 'ne andere Frage... kann man einer BruteForce-Attack leicht entgehen, indem man das Paßwort per md5(sha1(md5(md5(sha1())))) oder sowas verschlüsselt? Oder bringt das so gesehen nicht viel? Weil der BruteForcer hat ja keine Ahnung, in welcher Reihenfolge ich welche Methode verwende - da müßte er seine Wortlisten ja in allen möglichen Verschlüsselungs-Kombinationen ausprobieren...

Verfasst: 14.09.2005 11:22
von tranquil
zum Thema BruteForce und Fingerprints:

Hm das ist recht relativ. Passwörter sollten aufgrund von Datensicherheit nur als MD5 übertragen und gespeichert werden. Wie schnell so ein 32 Zeichen langer MD5-String geknackt ist kann ich leider auch nicht sagen.

ich hab mal nen MD5 im https://passwortcheck.datenschutz.ch/check.php geprüft. Resultat:

Code: Alles auswählen

Ihr Passwort ist stark. 
  
Gemäss unserer Analyse kann es wie folgt gefunden werden: 
Anzahl benötigte Versuche: 1'788'418'437'741'806'952'541'445'418'695'489'459'120'748'545'829'780 
Ungefähre Zeit für Suche: 113'420'753'281'443'870'658'386'949'435'279'646'063 Jahr(e) (bei 500'000 Tests/Sekunde) 
 
Als Passwort habe ich den Hash von 'DiesIstEintestpasswort' errechnen lassen. Das Ergebniss ist demzufolge sehr gut.

Verfasst: 14.09.2005 11:31
von ZeHa
Jo, scheinbar kommen ganze Sätze in Frage, wenn man ein Paßwort braucht... klar, weil die einzelnen Wörter, die zwar in der Wortliste sind, müssen erst noch in der richtigen Reihenfolge zusammengesetzt werden! Und wenn dann der Satz auch noch sinnlos ist, ist es am besten ;)

ichessegesterneinholz z.B. scheint stark zu sein ;)

Verfasst: 14.09.2005 11:52
von Eric
Ich musste gerade feststellen, dass die 32 stellige Zahlenkombination, die ich als Passwort hab unter Windows XP Stark ist, unter Windows NT mittelmäßig und unter Linux schwach :shock:

Und jetzt das Beste:
Unser Schulserver läuft mit Linux, auf den meisten Computern läuft NT Workstation und auf einigen XP :lol: