Können zwei verschiedene Binärdateien dieselbe md5-Summe haben? Eine binäre Firmware-Datei hat eine andere Versionsnummer und ist als überarbeitet markiert. Ein kleiner Fehler wurde behoben. Aber beide Dateien haben die gleiche MD5-Summe. Ich würde annehmen, dass die überarbeitete Datei nicht die gleiche MD5-Summe haben kann. Kann dies ein Fehler sein?
8
diff
in diesem Fall, um sicher zu sein. Ansonstensha256sum
wird es immer beliebter! Sie können es sogar in Windows PowerShell verwendenget-filehash
.Antworten:
In den vorhandenen Antworten wird nicht darauf hingewiesen, warum eine Kollision in diesem Fall als verschwindend unwahrscheinlich angesehen wird.
MD5 wurde wie jeder Hashing-Algorithmus absichtlich so konzipiert, dass keine Kollision auftritt, wenn Sie nur eine Handvoll Zeichen ändern. Sie müssen die meisten, wenn nicht alle ändern, um zum selben Hash zurückzukehren. Das liegt daran, dass der Sinn eines Hash darin besteht, Einzelbit- (oder Wenig-Bit-) Fehler zu erkennen. In dieser Problemdomäne möchten Sie, dass die kleineren Änderungen definitiv eine Hash-Änderung auslösen. Obwohl wir jetzt wissen, dass MD5 fehlerhaft ist, gilt diese Eigenschaft bis heute.
Wenn also die neue Version der Firmware nicht völlig anders ist und Sie nicht gerade ein einmaliges Phänomen erlebt haben, stehen die Chancen groß, dass Sie die alte Version einfach wieder erhalten haben. Herzlichen Glückwunsch, denn dies ist der Hash-Check-Prozess, der genau wie beabsichtigt funktioniert. :) :)
quelle
Na sicher. Die Kollisionsanfälligkeit von MD5 ist bekannt (siehe Crypto.SE , Wikipedia ). Obwohl es sich immer noch um ein Ereignis mit geringer Wahrscheinlichkeit handelt, kann es durchgeführt werden. In Ihrem Fall würde ich jedoch einen Fehler beim Kopieren der Dateien vermuten.
quelle
diff file1 file2
. Wenn der Befehl stumm ist, sind sie gleich.Im Allgemeinen können zwei Dateien
md5
nur dann denselben Hash haben, wenn ihr Inhalt genau gleich ist. Selbst eine einzelne Variation erzeugt einen völlig anderen Hashwert.Es gibt jedoch eine Einschränkung: Eine
md5
Summe beträgt 128 Bit (16 Byte). Da die Anzahl der verschiedenen möglichen Dateiinhalte unendlich ist und die Anzahl der verschiedenen möglichen md5-Summen endlich ist, besteht die Möglichkeit (wenn auch in den meisten Fällen mit geringer Wahrscheinlichkeit), dass Hashes kollidieren. Mit anderen Worten, zwei verschiedene Dateien können beim Hash mit md5 dieselbe Summe erzeugen.Aus diesem Grund ist es in einigen Fällen besser, einen höheren Bit-Hash (mehr mögliche unterschiedliche Ausgaben) zu verwenden, um die (bereits geringe) Wahrscheinlichkeit einer versehentlichen Hash-Kollision zu verringern und die Schwierigkeit zu erhöhen, eine absichtliche Hash-Kollision durch Brute Force zu erzeugen.
Beispiele für höhere Bit - Hash - Werte umfassen die SHA-2 - Familie von Hashes, insbesondere
sha256
,sha384
odersha512
(das ist die beste.) Die Zahl nachsha
der Anzahl der Bits angibt , der entsprechende Hash - Algorithmus erzeugt.quelle
diff -q <file1> <file2>
Dateien verglichen und es zeigt, dass die Dateien identisch sind.md5
nur dann denselben Hash haben, wenn ihr Inhalt genau gleich ist. Selbst eine einzige Variation würde einen völlig anderen Hashwert erzeugen." - Das ist falsch. Aufgrund des Pigeonhole-Prinzips gibt es tatsächlich unendlich viele Dateien, die denselben Hash haben.cmp
anstelle vondiff
.Wie andere gesagt haben, ist eine MD5-Kollision hypothetisch möglich, aber äußerst unplausibel (1 zu 2 ^ 128 ist nur eine 1 zu 340.282.366.920.938.463.463.374.607.431.768.211.456 Wahrscheinlichkeit), und Sie haben höchstwahrscheinlich einen Fehler beim Kopieren von Dateien.
Ich würde empfehlen, die beiden Dateien byteweise mit einer der vielen hier beschriebenen Methoden zu vergleichen: /superuser/125376/how-do-i-compare-binary-files- unter Linux .
Oder einfach
diff file1 file2
- und wenn Sie nicht die Meldung "Binärdateien Datei1 und Datei2 unterscheiden" erhalten, sind die Dateien identisch.quelle
Alle obigen Antworten ignorieren das wichtigste Detail:
Eine MD5-Prüfsumme hat 128 Bit. Das heißt, es gibt nur 2 ^ 128 verschiedene MD5-Werte. Wie viele verschiedene Firmware-Images sind möglich? Nun, das hängt davon ab, wie groß sie sind, und davon, wie viel Prozent der zufälligen Byte-Sequenzen als gültige Firmware angesehen werden können. Es besteht jedoch die Möglichkeit, dass mehr als 2 ^ 128 mögliche Firmware-Images vorhanden sind.
Eine viel mehr, was bedeutet , es müssen Duplikate sein.
Die Wahrscheinlichkeit, dass ein bestimmtes Firmware-Image mit einer bestimmten MD5-Prüfsumme übereinstimmt , beträgt jedoch nur 1 zu 2 ^ 128, was eine sehr kleine Zahl ist.
Sehr klein.
Die Wahrscheinlichkeit, dass zwei Entwickler während der Existenz der menschlichen Zivilisation versehentlich unterschiedliche Bilder mit derselben MD5-Prüfsumme erstellen, ist zu gering, als dass Sie sich Sorgen machen könnten.
Das ist aus Versehen . Bewusst ist eine andere Frage. Wenn Sie für die NSA arbeiten, reichen 128 Bit nicht aus, um Ihre Chefs zufrieden zu stellen, und MD5 weist bekannte Schwachstellen auf, die es schwächer als 128 Bit machen.
Aber wenn Sie für die NSA gearbeitet haben, dann haben Sie das wahrscheinlich schon gewusst.
quelle
Sehr unwahrscheinlich, aber möglich. Überprüfen Sie die Dateigröße und die Daten auf weitere Informationen. Wenn die Dateien unterschiedlich sind, ist es noch unwahrscheinlicher, dass sie dieselbe Größe und denselben Hash haben.
quelle