Gegeben eine MD5-Prüfsumme und eine zufällige Datei. Ist es möglich, ein Suffix hinzuzufügen, das der Prüfsumme entspricht?

389
some user

Ich höre oft, dass MD5 unsicher ist. Ich bin mir jedoch nicht sicher, wie man es manipulieren kann. Ich möchte nicht der Typ sein, der nur "MD5 ist unsicher" wiederholt, ohne einige Details zu kennen.

Angenommen, ich habe eine 128-Bit-MD5-Prüfsumme. Und ich habe eine schädliche Datei, die unter meiner Kontrolle steht. Kann ein aktueller $ 5K-Server innerhalb einer Woche einen "Fixer" generieren, der an die Datei angehängt werden kann und dieselbe MD5-Prüfsumme ergibt?

0

2 Antworten auf die Frage

3
dave_thompson_085

Es kommt darauf an, was Sie unter Kontrolle verstehen.

Wenn Sie, der Angreifer, zwei Dateien auswählen können, die denselben Hash haben sollen, bezeichnen Kryptographen dies als Kollision (Angriff), und für MD5 ist das jetzt sehr einfach. Wenn Sie beide Dateien frei auswählen können, dauert es Sekunden. Wenn Sie ziemlich schwache, aber häufig auftretende Einschränkungen wie "Es sieht aus wie ein PDF" oder "Es sieht aus wie ein Teer aus" aus, kann es Stunden bis Wochen dauern .

Wenn Sie dagegen eine Datei vorab festgelegt haben (in der Regel eine "gute" Datei), und Sie müssen eine andere ("schlechte") Datei mit demselben Hash suchen, die keine Kollision mit Kryptographen darstellt, ist dies ein zweites Urbild . Der bekannteste Angriff auf MD5 auf MD5 ist mit 2 123,4 nur geringfügig besser als die rohe Gewalt .

Mit Ihren 5.000 US-Dollar können Sie wahrscheinlich ein halbes Dutzend guter GPUs kaufen, was Sie irgendwo in der Nähe von 37 Versuchen pro Sekunde (etwa 100 Milliarden) gibt. Das sind ungefähr 2 62 pro Jahr, also dauert es im Durchschnitt ungefähr 2 60 Jahre (ungefähr 1.000.000.000.000.000.000 oder auch eine Quintillion). In bequemeren Begriffen ist das etwa hundert Millionen Mal so alt wie das Universum . Ihr Computer wird wahrscheinlich nicht so lange halten.

Vielen Dank. Der letzte Fall, eine schlechte Datei mit demselben Hash zu liefern, würde ich als erfolgreichen Angriff bezeichnen. Ich glaube, ich habe keine Ahnung, was es bedeutet, 2 Dateien auszuwählen, die den gleichen Hashwert hatten. Was wäre der praktische Zweck, zwei unbrauchbare Dateien für denselben Hash auswählen zu können? Heute sagen alle und ihre Hunde, dass MD5 schwach ist, muss es einen stärkeren Streit geben? some user vor 5 Jahren 0
@someuser Siehe zum Beispiel ["MD5 als schädlich für heute"] (http://www.win.tue.nl/hashclash/rogue-ca/), in dem die Forscher beschreiben, wie sie die Schwäche des MD5 zur Erstellung eines gefälschten Zertifikats verwendet haben mit einer gültigen Signatur. Einige Anwendungen sind nicht anfällig für Kollisionsangriffe, aber um sicherzugehen, dass die Verwendung von Hashes nicht anfällig ist, ist ein sehr gutes Verständnis der Verwendung von Hashes und einige sehr sorgfältige Überlegungen zu möglichen Angriffen erforderlich. Führen Sie dann die Analyse jedes Mal erneut durch, wenn Sie * irgendetwas * ändern. Es ist viel einfacher, sicherer und flexibler, nur einen besseren Hash zu verwenden. Gordon Davisson vor 5 Jahren 0
1
Seth

Das Beste, was Sie tun können, ist, sich die aktuellen Papiere bezüglich der Suche nach MD5-Kollisionen anzusehen. Es gibt auch verschiedene Tools, um genau das zu tun. Eine gute Antwort auf StackOverflow lautet: Erstellen Sie Ihre eigenen MD5-Kollisionen, wenn Sie nicht selbst die Zeitung lesen möchten.

Die meisten Kollisionsfinder sind wahrscheinlich nicht daran interessiert, Modifikationen für Dateien zu finden, sondern eher direkte Kollisionen. Wenn das MD5 auscheckt und die Benutzer die Datei ausführen, wird Ihre schädliche Datei ausgeführt.