it-swarm.com.de

SHA-256 oder MD5 für Dateiintegrität

Ich weiß, dass SHA-256 aus Sicherheitsgründen gegenüber MD5 bevorzugt wird. Wenn ich jedoch eine Methode zur Überprüfung der Dateiintegrität verwenden möchte (also nichts mit der Passwortverschlüsselung usw. zu tun hat), gibt es einen Vorteil mit SHA-256?

Da MD5 ist 128-Bit und SHA-256 ist 256-Bit (also doppelt so groß) ...

  1. Würde die Verschlüsselung doppelt so lange dauern?

  2. Wo Zeit nicht wie in einem Backup-Programm ausschlaggebend ist und die Integrität der Dateien ausreicht, würde jemand gegen MD5 für einen anderen Algorithmus argumentieren oder sogar eine andere Technik vorschlagen?

  3. Erzeugt die Verwendung von MD5 eine Prüfsumme?

51
Dave

Sowohl SHA256 als auch MDA5 sind Hash-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 unbegrenzte Anzahl von Eingaben zu demselben Hashwert führen kann, obwohl Kollisionen in der Realität selten sind.

SHA256 benötigt etwas mehr Zeit zum Berechnen als MD5, entsprechend dieser Antwort

Ohne Umschweife würde ich sagen, dass MD5 wahrscheinlich für das, was Sie brauchen, geeignet ist.

57
dandan78

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 eine Rolle spielt, sind eher als realistisch, z. Wenn Ihr Backup-System auf einen Fall eines Angriffs auf ein MD5-basiertes Zertifikat stößt, haben Sie in diesem Beispiel wahrscheinlich zwei Dateien 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 (= gleiche Prüfsummen für verschiedene Daten) haben, wenn sie absichtlich provoziert werden. Algorithmen, so kann ich keinen anderen Algorithmus vorschlagen. Daher ist dieser Teil der Frage noch offen Weitere Lektüre ist Cryptographic Hash Function - File oder Data Identifier auf Wikipedia. Weiter unten auf dieser Seite gibt es eine Liste kryptographischer 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.

13
Daniel S.

Jede Antwort scheint darauf hinzuweisen, dass Sie sichere Hashes verwenden müssen, um den Job zu erledigen, aber alle sind so eingestellt, dass ein Bruteforce-Angreifer nur langsam Rechenleistung benötigt. Je nach Ihren Bedürfnissen ist dies möglicherweise nicht die beste Lösung.

Es gibt Algorithmen, die speziell darauf ausgelegt sind, Dateien so schnell wie möglich zu prüfen, um die Integrität und den Vergleich zu überprüfen (murmur, XXhash...). Offensichtlich sind diese nicht für die Sicherheit ausgelegt, da sie nicht die Anforderungen eines sicheren Hash-Algorithmus (d. H. Zufälligkeit) erfüllen, sondern niedrige Kollisionsraten für große Nachrichten haben. 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 Hash-Algorithmus eignet sich am besten für Einzigartigkeit und Geschwindigkeit? .

Als Beispiel verwenden wir auf unserer F & A-Site murmur3, um die von den Benutzern hochgeladenen Bilder zu hashieren, sodass wir sie nur einmal speichern, selbst wenn Benutzer dasselbe Bild in mehreren Antworten hochladen.

9
Marc Climent
  1. Nein, es ist weniger schnell, aber nicht so langsam
  2. Für ein Sicherungsprogramm ist es möglicherweise notwendig, etwas schneller als MD5 zu haben

Alles in allem würde ich sagen, dass MD5 zusätzlich zum Dateinamen absolut sicher ist. SHA-256 ist aufgrund seiner Größe nur langsamer und schwieriger zu bedienen.

Sie könnten auch etwas weniger Sicheres als MD5 verwenden, ohne Probleme. Wenn niemand versucht, Ihre Dateiintegrität zu hacken, ist dies ebenfalls sicher.

8
Genesis Rock

Der zugrunde liegende MD5-Algorithmus gilt nicht mehr als sicher. Daher ist md5sum gut geeignet, bekannte Dateien in Situationen zu identifizieren, die nicht sicherheitsrelevant sind. Sie sollte jedoch nicht als zuverlässig angesehen werden, wenn die Möglichkeit besteht, dass Dateien absichtlich und böswillig manipuliert wurden. Im letzteren Fall wird die Verwendung eines neueren Hash-Werkzeugs wie sha256sum dringend empfohlen.

Wenn Sie also lediglich nach einer beschädigten Datei oder nach Dateiunterschieden suchen, sollte MD5 ausreichen, wenn die Quelle der Datei vertrauenswürdig ist. Wenn Sie die Integrität einer Datei überprüfen möchten, die von einer nicht vertrauenswürdigen Quelle stammt, oder von einer vertrauenswürdigen Quelle über eine unverschlüsselte Verbindung, ist MD5 nicht ausreichend.

Ein anderer Kommentator stellte fest, dass Ubuntu und andere MD5-Prüfsummen verwenden. Ubuntu ist neben MD5 zu PGP und SHA256 gewechselt, die Dokumentation der stärkeren Verifikationsstrategien ist jedoch schwieriger zu finden. Weitere Informationen finden Sie auf der Seite HowToSHA256SUM .

6
jsears

Es ist technisch bewiesen, dass MD5 schneller als SHA256 ist. Wenn Sie also nur die Dateiintegrität überprüfen, reicht dies für die Leistung aus.

Sie können die folgenden Ressourcen auschecken:

4
SaidbakR
  1. Ja, auf den meisten CPUs ist SHA-256 zwei- bis dreimal langsamer als MD5, allerdings nicht in erster Linie wegen seines längeren Hashs. Weitere Antworten finden Sie hier und die Antworten auf diese Stack Overflow-Fragen .
  2. Hier ist ein Backup-Szenario, in dem MD5 nicht geeignet wäre:
    • Ihr Sicherungsprogramm hasht jede zu sichernde Datei. Es speichert dann Die Daten jeder Datei anhand ihres Hashes. Wenn Sie also dieselbe Datei Zweimal sichern, erhalten Sie nur eine Kopie davon.
    • Ein Angreifer kann das System dazu veranlassen, Dateien zu sichern, die er kontrolliert.
    • Der Angreifer kennt den MD5-Hash einer Datei, die aus der Sicherung entfernt werden soll.
    • Der Angreifer kann dann die bekannten Schwächen von MD5 verwenden, um eine neue -Datei zu erstellen, die denselben Hash wie die zu entfernende Datei hat. Wenn diese Datei gesichert ist, ersetzt sie die zu entfernende Datei, und die gesicherte Datei wird gelöscht.
    • Dieses Backup-System könnte etwas verstärkt (und effizienter) werden Ersetzen Sie keine Dateien, deren Hash zuvor gefunden wurde, aber dann kann ein Angreifer verhindern, dass eine Zieldatei mit einem bekannten Hash von Gesichert wird sichern Sie durch präemptives Sichern einer speziell konstruierten falschen -Datei mit demselben Hash.
    • Offensichtlich erfüllen die meisten Systeme - Backups und andere - nicht die für diesen Angriff erforderlichen Bedingungen, aber ich wollte nur ein Beispiel für eine Situation nennen, in der SHA-256 gegenüber MD5 vorzuziehen wäre . Ob dies für das von Ihnen erstellte System der Fall ist, hängt von mehr als nur den Merkmalen von MD5 und SHA-256 ab.
  3. Ja, kryptographische Hashes, wie sie von MD5 und SHA-256 generiert werden, sind eine Art Prüfsumme.

Glückliches Hascherei!

0
dharcourt