Wie zuverlässig sind SHA1-Summe und MD5-Summe bei sehr großen Dateien?

1382
Loo Soo Yong

Ich übertrage laufend Festplatten-Images und Images für virtuelle Maschinen (normalerweise 800 GB bis fast 1 TB pro Datei) per SSH mit rclone auf einen Cloud-Server. Ich frage mich, wie zuverlässig sha1sum und md5sum sind, wenn es darum geht, die Integrität sehr großer Dateien zu überprüfen.

Ich habe folgendes gefunden: Wie kann ich überprüfen, ob eine 1 TB-Datei korrekt übertragen wurde?

Es hat jedoch etwas mit der Leistung zu tun und nicht mit der Zuverlässigkeit der generierten Hashes.

Könnte es sein, dass eine andere Datei die gleichen generierten Hashes verwendet, wenn man bedenkt, dass es so viele verschiedene Dateien gibt?

Wie zuverlässig sind MD5- und SHA-1-Summen für sehr große Dateien? Vielen Dank.

Ich habe dies auch bezüglich der Kollision herausgefunden: https://stackoverflow.com/questions/4032209/is-md5-still-good-enough-to-uniquely-identify-files

https://www.theregister.co.uk/2017/02/23/google_first_sha1_collision/

1
Sie sind es sei denn, Sie sind sehr unglücklich oder [geben sich viel Mühe (für SHA1)] (http://shattered.io/). Mit MD5 ist der Aufwand deutlich geringer. Wenn Sie sich Sorgen machen, wählen Sie die SHA2- oder SHA3-Variationen. Jakuje vor 7 Jahren 0
Siehe auch [Pigeonhole-Prinzip] (https://en.wikipedia.org/wiki/Pigeonhole_Principle) und [Geburtstagsproblem] (https://en.wikipedia.org/wiki/Birthday_problem). zu Übertragungsüberprüfungszwecken funktioniert jeder Algorithmus als erster Schritt - * pigeonhole * sagt uns, dass eine nicht übereinstimmende Summe definitiv nicht dieselbe Datei ist, aber ** nicht ** beweist, dass eine * übereinstimmende * Summe * definitiv dieselbe ist * . quixotic vor 7 Jahren 1

1 Antwort auf die Frage

3
Gordon Davisson

Mit MD5 und SHA-1 lassen sich versehentliche Beschädigungen / Änderungen an Dateien erkennen. Die Wahrscheinlichkeit, dass eine versehentlich geänderte Datei den gleichen MD5-Digest hat, ist eins zu 2 ^ 128 = 340.282.366.920.938.463.463.374.607.431.768.211.456. Die Wahrscheinlichkeit einer versehentlichen SHA-1-Kollision ist sogar noch geringer, eine in 2 ^ 160. Wenn wir davon sprechen, zufällige Übereinstimmungen in einer Sammlung von Dateien (bekannt als Geburtstagsproblem) zu finden, würden Sie ungefähr 2 64 = 18 Milliarden Milliarden brauchen, bevor eine MD5-Kollision wahrscheinlich wird. Beachten Sie, dass die Größe der Dateien keine Rolle spielt. Es kommt auf die Anzahl der Dateien an, auf die es ankommt.

Weder MD5 noch SHA-1 reichen aus, um sich vor böswilligem Ersetzen von Dateien zu schützen oder um eine zuverlässige eindeutige ID für Dateien bereitzustellen. Wenn Sie z. B. eine der beiden verwenden, kann Ihnen jemand eine Datei geben, den Hash-Digest berechnen lassen und Sie dann täuschen, indem Sie ihn gegen eine andere Datei mit demselben Hash austauschen. Oder senden Sie zwei Dateien mit demselben Hash, die Ihr System verwirren könnten.

Übrigens, die zufällige / böswillige Unterscheidung ist etwas locker. Angenommen, jemand hat die beiden PDF-Dateien gefunden, die Google mit demselben SHA-1-Hash erstellt hat, dachte "Das ist cool! Ich sollte sie für später speichern", und versuchte dann, Ihr System zu verwenden, um sie zu speichern und zu verteilen -von zufällig. Wenn so etwas denkbar ist, sollten Sie lieber mit SHA-256 gehen.

BEARBEITEN : BitErrant ähnelt dem, was ich im letzten Absatz beschrieben habe: Es ist ein Exploit gegen BitTorrent, wobei die Tatsache genutzt wird, dass BitTorrent SHA-1-Prüfsummen als IDs für Dateistücke verwendet.