Ich weiß, dass SHA-256 aus Sicherheitsgründen usw. gegenüber MD5 bevorzugt wird, aber wenn ich eine Methode verwenden möchte, um nur die Dateiintegrität zu überprüfen (dh nichts mit Kennwortverschlüsselung usw. zu tun hat), gibt es einen Vorteil von mit SHA-256?
Da MD5 128-Bit und SHA-256 256-Bit ist (daher doppelt so groß) ...
Würde die Verschlüsselung bis zu doppelt so lange dauern?
Wo Zeit nicht von entscheidender Bedeutung ist, wie in einem Sicherungsprogramm, und nur die Dateiintegrität erforderlich ist, würde jemand gegen MD5 für einen anderen Algorithmus argumentieren oder sogar eine andere Technik vorschlagen?
Erzeugt die Verwendung von MD5 eine Prüfsumme?
Antworten:
Sowohl SHA256 als auch MDA5 sind Hashing-Algorithmen. Sie nehmen Ihre Eingabedaten, in diesem Fall Ihre Datei, und geben eine 256/128-Bit-Nummer aus. Diese Nummer ist eine Prüfsumme. Es findet keine Verschlüsselung statt, da eine unendliche Anzahl von Eingaben zu demselben Hashwert führen kann, obwohl Kollisionen in der Realität selten sind.
Laut dieser Antwort dauert die Berechnung von SHA256 etwas länger als von MD5 .
Auf Anhieb würde ich sagen, dass MD5 wahrscheinlich für das geeignet ist, was Sie brauchen.
quelle
Zu 1): Ja, auf den meisten CPUs ist SHA-256 nur etwa 40% so schnell wie MD5.
Zu 2): Ich würde in einem solchen Fall für einen anderen Algorithmus als MD5 argumentieren. Ich würde definitiv einen Algorithmus bevorzugen, der als sicher gilt. Dies ist jedoch eher ein Gefühl. Fälle, in denen dies eher konstruiert als realistisch ist, z. B. wenn Ihr Sicherungssystem auf einen Beispielfall eines Angriffs auf ein MD5-basiertes Zertifikat stößt, haben Sie wahrscheinlich zwei Dateien in einem solchen Beispiel mit unterschiedlichen Daten, aber identischen MD5-Prüfsummen. Für den Rest der Fälle spielt es keine Rolle, da MD5-Prüfsummen praktisch nur dann eine Kollision aufweisen (= gleiche Prüfsummen für unterschiedliche Daten), wenn sie absichtlich provoziert werden. Ich bin kein Experte für die verschiedenen Hashing-Algorithmen (Prüfsummengenerierung), daher kann ich keinen anderen Algorithmus vorschlagen. Daher ist dieser Teil der Frage noch offen. Vorgeschlagene weitere Lektüre istKryptografische Hash-Funktion - Datei- oder Datenkennung auf Wikipedia. Weiter unten auf dieser Seite befindet sich eine Liste kryptografischer Hash-Algorithmen.
Zu 3): MD5 ist ein Algorithmus zur Berechnung von Prüfsummen. Eine mit diesem Algorithmus berechnete Prüfsumme wird dann als MD5-Prüfsumme bezeichnet.
quelle
Jede Antwort scheint darauf hinzudeuten, dass Sie sichere Hashes verwenden müssen, um die Arbeit zu erledigen, aber alle sind so eingestellt, dass sie langsam sind, um einen Bruteforce-Angreifer zu zwingen, über viel Rechenleistung zu verfügen. Abhängig von Ihren Anforderungen ist dies möglicherweise nicht die beste Lösung.
Es gibt Algorithmen, die speziell dafür entwickelt wurden, Dateien so schnell wie möglich zu hashen, um die Integrität und den Vergleich zu überprüfen (
murmur
,XXhash
...). Offensichtlich sind diese nicht auf Sicherheit ausgelegt, da sie nicht den Anforderungen eines sicheren Hash-Algorithmus (dh Zufälligkeit) entsprechen, aber niedrige Kollisionsraten für große Nachrichten aufweisen . Diese Funktionen machen sie ideal, wenn Sie nicht nach Sicherheit, sondern nach Geschwindigkeit suchen.Beispiele für diese Algorithmen und Vergleiche finden Sie in dieser hervorragenden Antwort: Welcher Hashing-Algorithmus eignet sich am besten für Eindeutigkeit und Geschwindigkeit? .
Als Beispiel verwenden wir auf unserer Q & A-Site
murmur3
das Hashing der von den Benutzern hochgeladenen Bilder, sodass wir sie nur einmal speichern, selbst wenn Benutzer dasselbe Bild in mehreren Antworten hochladen.quelle
Alles in allem würde ich sagen, dass MD5 zusätzlich zum Dateinamen absolut sicher ist. SHA-256 wäre aufgrund seiner Größe nur langsamer und schwieriger zu handhaben.
Sie können auch problemlos etwas verwenden, das weniger sicher als MD5 ist. Wenn niemand versucht, Ihre Dateiintegrität zu hacken, ist dies ebenfalls sicher.
quelle
Der zugrunde liegende MD5-Algorithmus wird nicht mehr als sicher eingestuft. Daher eignet sich md5sum zwar gut zum Identifizieren bekannter Dateien in Situationen, die nicht sicherheitsrelevant sind, sollte jedoch nicht verwendet werden, wenn die Möglichkeit besteht, dass Dateien absichtlich und böswillig manipuliert wurden. Im letzteren Fall wird die Verwendung eines neueren Hashing-Tools wie sha256sum dringend empfohlen.
Wenn Sie also nur nach Dateibeschädigungen oder Dateidifferenzen suchen und die Quelle der Datei als vertrauenswürdig eingestuft ist, sollte MD5 ausreichen. Wenn Sie die Integrität einer Datei überprüfen möchten, die von einer nicht vertrauenswürdigen Quelle oder von einer vertrauenswürdigen Quelle über eine unverschlüsselte Verbindung stammt, reicht MD5 nicht aus.
Ein anderer Kommentator bemerkte, dass Ubuntu und andere MD5-Prüfsummen verwenden. Ubuntu ist zusätzlich zu MD5 auf PGP und SHA256 umgestiegen, aber die Dokumentation der stärkeren Verifizierungsstrategien ist schwieriger zu finden. Weitere Informationen finden Sie auf der Seite HowToSHA256SUM .
quelle
Es ist technisch anerkannt, dass MD5 schneller als SHA256 ist. Wenn Sie also nur die Dateiintegrität überprüfen, ist dies ausreichend und für die Leistung besser.
Sie können die folgenden Ressourcen auschecken:
quelle
Viel Spaß beim Hashing!
quelle