MD5-Hash rückverschlüsselbar?

Es gibt 42 Antworten in diesem Thema. Der letzte Beitrag () ist von Beep!.

    Wurden bisher überhaupt schon zwei Strings gefunden, die den gleichen MD5-Hash erzeugen?

    Sogar wenn es eines Tages (wohlmöglich bald) MD5 so schnell berechnet werden können, dass sie praktisch nutzlos sind, gibt es noch z.B. die SHA-Hashes, welche je nach Typ um einiges länger sind und deshalb noch seltener gleiche Hashes zu finden sind.

    lg SeriTools
    | Keine Fragen per PN oder Skype.

    SeriTools schrieb:

    Wurden bisher überhaupt schon zwei Strings gefunden, die den gleichen MD5-Hash erzeugen?


    Laut Wikipedia haben 4 GPU's innerhalb von 30 Minuten eine Kollision gefunden.

    unter Verwendung von GPGPU ermöglicht es einem etwa ein Jahr alten Highend-Spiele-PC mit zwei Nvidia GeForce 9800 GX2 (insgesamt vier Grafikprozessoren), in knapp 35 Minuten eine Kollision zu finden.


    Grüße

    SeriTools schrieb:

    gibt es noch z.B. die SHA-Hashes,

    Warum wurde vom NIST ein Wettbewerb für einen Nachfolger augeschrieben? Weil SHA1 geknackt wurde.
    schneier.com/blog/archives/2005/02/sha1_broken.html
    February 15, 2005
    SHA-1 Broken
    SHA-1 has been broken. Not a reduced-round version. Not a simplified version. The real thing.


    SHA2 sieht (noch?) besser aus, aber man befürchtet wohl ähnliches und deswegen sollen die Erkenntnisse aus dem SHA1 Einbruch natürlich SHA3 "besser" machen.

    picoflop schrieb:

    DAS Passwort bekommt man auch mit Brute Force niemals raus, egal wie lang es ist

    Doch. Einfach die Hashes vergleichen. In der Wordlist steht zu jedem Hash dann ja der Inhalt in Plaintext.

    ThuCommix schrieb:

    Wieso wurde das ausgerechnet mit 4 GPU's gemacht und nicht mit CPU's?

    Weil GPUs um ein vielfaches schneller sind als CPUs.

    Glossy Cherry schrieb:

    wenn dies per db und php passiert schon.

    Nein.

    Dodo schrieb:

    Ich glaube bei MD5 kann es vorkommen das mal der selbe Wert rauskommt, aber du musst dir mal überlegen, du hast 32 Stellen und 16 mögliche Zeichen nun rechne dir mal aus wieviele Möglichkeiten es da gibt.

    Korrekt.


    So lange man Salts benutzt, ist selbst MD5 noch sicher. Die Wahrscheinlichkeit, dass man eine Kollision findet, ist so gering... Aber für wirklich nötige Sicherheit würde man natürlich etwas anderes benutzen.
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.

    Chrisber schrieb:

    In der Wordlist steht zu jedem Hash dann ja der Inhalt in Plaintext.

    Ich dachte mein Simpelbsp verstehen sogar Blöde, da wundert es mich, dass DU immer noch Probleme mit dem Konzept eines Hash hast ...


    Ich wette mit dir, dass du es, egal mit welchem Rainbowtable und welcher Serverfarm auch immer, es nicht schaffst, DAS Passwort (den Plaintext) herauszufinden, das ich verwendet habe, um einen von dir gewählten (Standard-)Hash zu erzeugen. Die von dir gewählte Hashfunktion kann gerne komplett geknackt sein - das wäre auch das einfachste ;) Trotzdem KANNST du es nicht schaffen!

    Mein Vorschlag:
    en.wikipedia.org/wiki/Pearson_hashing

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „picoflop“ ()

    picoflop schrieb:

    Ich wette mit dir, dass du es, egal mit welchem Rainbowtable und welcher Serverfarm auch immer, es nicht schaffst, DAS Passwort (den Plaintext) herauszufinden, das ich verwendet habe, um einen von dir gewählten (Standard-)Hash zu erzeugen. Die von dir gewählte Hashfunktion kann gerne komplett geknackt sein - das wäre auch das einfachste Trotzdem KANNST du es nicht schaffen!



    Klingt nach Dr. Weltherschaft.



    Grüße
    Pearson für VB:

    VB.NET-Quellcode

    1. Public Function Pearson(ByVal passwort As String) As Byte
    2. Dim table(255) As Byte
    3. For i = 0 To 255
    4. table(i) = i
    5. Next
    6. Dim k As Integer = 7
    7. For j = 0 To 3
    8. For i = 0 To 255
    9. Dim s As Integer = table(i)
    10. k = (k + s) Mod 256
    11. table(i) = table(k)
    12. table(k) = s
    13. Next
    14. Next
    15. Dim h As Byte = 0
    16. Dim index As Integer
    17. For Each b As Integer In System.Text.Encoding.ASCII.GetBytes(passwort)
    18. index = h Xor b
    19. h = table(index)
    20. Next
    21. Return h
    22. End Function


    Der Hash ist 222.
    Wie lautete das Passwort, das ich verwendete?

    picoflop schrieb:

    Ich dachte mein Simpelbsp verstehen sogar Blöde

    Danke, von dir hatte ich etwas mehr Niveau erwartet.

    Und anscheinend hast du keine Ahnung, wovon ich rede.
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.

    Chrisber schrieb:

    Und anscheinend hast du keine Ahnung, wovon ich rede.

    Dann drückst du dich vermutlich unklar aus.
    Verstanden habe ich, dass du behauptest, es gäbe eine Möglichkeit, DAS Passwort herauszufinden, das verwendet wurde um einen bestimmten Hash zu erzeugen. Jedenfalls schreibst du das.
    Und das bestreite ich auf das allerentschiedenste und bin mir davermutlich mit jedem einig, der etwas von Mengenlehre versteht.

    BTW: Die Herausforderung steht. S.o. Wie lautet mein Passwort?

    Hier dein Zitat:
    Doch. Einfach die Hashes vergleichen. In der Wordlist steht zu jedem Hash dann ja der Inhalt in Plaintext.

    Das geht in 1.000 Mio Jahren nicht. In der Liste steht höchtens EIN (s von unendlich vielen) die denselben Hash erzeugen, aber niemals eindeutig der exakte verwendete!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „picoflop“ ()

    Ja, genau das sage ich. Und genau das ist möglich, mit Wordlist-Angriffen.
    Voraussetzung ist natürlich, dass meine Wordlist den Hash bereits beinhaltet, den du benutzt.
    Der Aufbau ist ja entsprechend einfach:

    Quellcode

    1. Hash|Plaintext

    Fertig. Was anderes habe ich nie behauptet.

    Edit: Mit einer entsprechend großen Wortliste, etwas mehr Performance und Langeweile würde ich bestimmt an dein Passwort kommen, sofern es nicht 1247234583498 Stellen lang ist.
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.

    Chrisber schrieb:

    Edit: Mit einer entsprechend großen Wortliste, etwas mehr Performance und Langeweile würde ich bestimmt an dein Passwort kommen, sofern es nicht 1247234583498 Stellen lang ist.

    Wo ist das Problem. Pearson hab ich scho für VB geschrieben, der hat nur 256 mögliche verschiedene Ausgänge. Kann man also durch einfaches probieren rausbekommen, welches "Passwort" den Hash 222 hat.


    Was anderes habe ich nie behauptet.

    Na komm. Du gehörst zu denjenigen im Forum, die der deutschen Sprache mächtig sind. Ich muss dir wohl kaum den Unterschied zwischen einem bestimmten und einem unbestimmten Artikel erklären, oder.

    Mir gehts darum, dass gerade im Bereich Hash hier mal wirklich EXAKT gearbeitet werden sollte. Viele User des Forums verstehen das ganze System immer noch nicht (siehe "entschlüsseln" ...), deswegen sollte man nicht auch noch mit Halbklarheiten die restlichen Ungereimtheiten erhöhen!
    -> Doch. Einfach die Hashes vergleichen. In der Wordlist steht zu jedem Hash dann ja der Inhalt in Plaintext.

    Und das war kein Kommentar zu
    -> DAS Passwort bekommt man auch mit Brute Force niemals raus, egal wie lang es ist
    Doch, genau darauf war es ein Kommentar. Und meine Aussage stimmt doch. Ich verstehe dein Problem nicht.
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.
    Du bekommst eine Kollision mit dem Hash raus. Das bedeutet aber noch lange nicht, dass die Zeichenfolge, deren Hash mit dem des Passwortes übereinstimmt, genau die Zeichenfolge ist, die das ursprüngliche Passwort war.

    Abgefahrener Satz.

    Chrisber schrieb:

    Ich verstehe dein Problem nicht.

    Alter! Bist du heute genau so früh aufgestanden wie ich oder was?

    DAS Passwort = ein ganz spezielles, eindeutig definiert
    EIN Passwort = irgendein beliebiges Passwort

    Man KANN NICHT die Abildung unendlich->endlich rückgängig machen. Solltest du trotzdem ein Möglichkeit finden, gratuliere ich dir a) zum Nobelpreis und b) zum Milliardenverdienst. Denn du hast soeben die perfekte Kompressionsmethode erfunden. Nebenbei hast du allerdings das Raum-Zeit-Gefüge zerstört, da im Endeffekt sich also die Menge unendlich auf eine Singularität abbilden lässt. Wer weiß ob das nicht sogar der Grund für den Urknall war? Irgendein Genie kommt auf diesen Trichter und BANG.
    Ach so meinst du das. Ja, bei MD5 und anderen Hashes hast du recht, aber nicht bei solchen, bei denen es keine Kollisionen gibt.
    Aber gut, dieses Battle hast du gewonnen ;)
    To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

    At some point in time, you recognize that knowing more does not necessarily make you more happy.

    Chrisber schrieb:

    aber nicht bei solchen, bei denen es keine Kollisionen gibt.

    Nenn mir EINEN ...
    Jeder mir bekannte Hash ist IMMER eine Abbildung unendlich->endlich. Daraus folgt, dass es IMMER eine UNENDLICHE Anzahl von Kollisionen gibt. Es sei denn der Hash ist SCHLECHT. Denn bei jedem GUTEN ist das Ergebnis pseudozufällig und die erste Aussage stimmt 100%

    Jedenfalls gilt nicht:
    Hash(x Bit)(Plaintext < x bit) hat keine Kollisionen!

    Chrisber schrieb:

    , aber nicht bei solchen, bei denen es keine Kollisionen gibt.

    Wie soll das denn gehen? Irgendwann würde der gesamte Platz von n Bit nicht mehr für alle Möglichkeiten ab einem String von einer Länge von x.
    Es würde gegen eine grundlegende Regel von Hashes verstoßen: Alle Hashes bei einer beliebigen Eingangslänge sind gleich lang.

    lg SeriTools
    | Keine Fragen per PN oder Skype.