MD5 scheint gut dokumentierte Schwachstellen zu haben und ist dennoch in seiner Verwendung weit verbreitet. Hat jemand Gründe dafür, dass es eine gangbare Option bleibt, wenn andere Alternativen (z. B. SHA-2) robuster erscheinen?
MD5 scheint gut dokumentierte Schwachstellen zu haben und ist dennoch in seiner Verwendung weit verbreitet. Hat jemand Gründe dafür, dass es eine gangbare Option bleibt, wenn andere Alternativen (z. B. SHA-2) robuster erscheinen?
Antworten:
Es ist schnell zu generieren und oft ist die Tatsache, dass Kollisionen theoretisch möglich sind, kein großes Problem. dh prüfen, ob sich eine zwischengespeicherte Datei geändert hat, um das Herunterladen einer neuen Kopie zu vermeiden.
Ein 1996 durchgeführter kurzer Benchmark zeigt Folgendes:
Digest Performance in MegaBytes per Second
Pentium P5 Power Mac SPARC 4 DEC Alpha
90 MHz 80 MHz 110 MHz 200 MHz
MD5 13.1 3.1 5.1 8.5
SHA1 2.5 1.2 2.0 3.3
Für eine moderne Verwendung - auf eingebetteten Chips kann MD5 bei gleichen Informationen 2-3x schneller produziert werden als der SHA1.
Ein MD5-Hash ist für die meisten einfachen Aufgaben "gut genug". Denken Sie daran, dass es immer noch unglaublich schwierig ist, sinnvolle Kollisionen in der gleichen Anzahl von Bytes zu erzeugen.
Angenommen, Sie laden nächste Woche das neue Ubuntu 9.10 von einem vertrauenswürdigen Spiegel herunter. Sie möchten überprüfen, ob die Datei korrekt und vollständig heruntergeladen wurde. Starten Sie einfach MD5 und hashen Sie die ISO. Vergleichen Sie den Hash mit dem veröffentlichten Hash. Wenn die Hashes übereinstimmen, können Sie sicher sein, dass die ISO korrekt und vollständig kopiert wurde.
und die Sicherheit kann durch Einsalzen verbessert werden.
MD5 wird häufig als Prüfsummen-Hash-Funktion verwendet, da es schnell ist und eine extrem niedrige Kollisionsrate aufweist. Eine MD5-Prüfsumme besteht aus 32 hexadezimalen Ziffern, die zusammen eine 1: 3,42e34-Wahrscheinlichkeit einer Kollision ergeben. Sie könnten theoretisch alle Dateien auf allen Computern in einem Land der Größe der USA hashen und keine Kollision erzeugen (*).
Für die Kryptografie ist MD5 eine gültige Alternative, wenn die Sicherheit nur ein mäßiges Problem darstellt. Dies ist eine sehr praktikable Option für das Hashing von Datenbankkennwörtern oder anderen Feldern, für deren Geschwindigkeit hauptsächlich interne Sicherheit erforderlich ist, aber auch, weil MD5 ein angemessenes Sicherheitsniveau bietet, bei dem starke Verschlüsselung keine Rolle spielt.
(*) Für die meisten Prüfsummenzwecke ist eine Kollision nur dann sinnvoll, wenn sie zwischen zwei Objekten gleicher Herkunft und Größe auftritt. Trotz einer hohen MD5-Eindeutigkeitswahrscheinlichkeit können möglicherweise Kollisionen zwischen zwei sehr unterschiedlichen Dateien auftreten. Angenommen, eine 1,5-MB-Datenbankdatei und eine 35-KB-GIF-Datei. Für die meisten Zwecke ist dies eine bedeutungslose Kollision. Dies gilt umso mehr, als MD5 nur ein Element der Dateiindizierung ist. Dateigröße ist ein weiterer wichtiger Punkt.
MD5 ist weit verbreitet, weil es weit verbreitet ist, und die Unterbrechungen sind noch nicht signifikant genug, um ein offensichtliches Problem in bestehenden Systemen zu sein.
sha256sum filename.iso
alsmd5sum filename.iso
?