Welchen Wert haben MD5-Prüfsummen, wenn der MD5-Hash selbst möglicherweise auch manipuliert wurde?

39

Downloads auf Websites haben manchmal eine MD5-Prüfsumme, mit der die Integrität der Datei überprüft werden kann. Ich habe gehört, dass damit nicht nur beschädigte Dateien sofort identifiziert werden können, bevor sie ein Problem verursachen, sondern auch, dass böswillige Änderungen leicht erkannt werden können.

Ich folge der Logik in Bezug auf Dateibeschädigung , aber wenn jemand absichtlich eine schädliche Datei hochladen möchte, kann er eine entsprechende MD5-Prüfsumme generieren und diese zusammen mit der geänderten Datei auf der Download-Site veröffentlichen. Dies würde jeden, der die Datei herunterlädt, täuschen, sie sei unverändert.

Wie können MD5-Prüfsummen vor absichtlich veränderten Dateien schützen , wenn nicht bekannt ist, ob die Prüfsumme selbst kompromittiert wurde?

Austin '' Danger '' Powers
quelle
3
Wenn wir uns darauf verlassen, dass der Host der Website subtile Zeitstempeldifferenzen feststellt, anstatt dass der MD5-Hash als Echtheitssiegel fungiert ... dann ist der Schutz durch die Prüfsumme so gut wie verflogen.
Austin '' Danger '' Powers
4
@ BigChris Ich bin nicht sicher, was du meinst, aber es klingt falsch. Bei kryptografischen Hash-Algorithmen wie MD5 geht es ausschließlich um die Nachrichtendaten. Zwei zufällige Nachrichten gleicher Länge haben mit ziemlicher Sicherheit unterschiedliche Hashes.
Matt Nordhoff
3
@MattNordhoff genau. Wenn eine MD5-Prüfsumme nicht anhand von Dateidaten generiert wird, worauf basiert sie dann?
Austin '' Danger '' Powers
2
MD5-Hash-Daten würden zwar aus den Daten erstellt, aber es wäre nicht zu aufwendig, eine schädliche Datei mit demselben Hash zu erstellen. Wie gesagt, es gibt keine Möglichkeit zu überprüfen, ob die Datei bösartig ist oder nicht. Lesen Sie: mscs.dal.ca/~selinger/md5collision
Kinnectus
2
Manchmal werden Hashes auf Servern von Erstanbietern veröffentlicht, wohingegen tatsächliche Downloads auf Spiegelservern und / oder CDNs von Drittanbietern gehostet werden.
el.pescado

Antworten:

89

Ich habe gehört, dies soll [...] ermöglichen, dass auch böswillige Änderungen erkannt werden.

Nun, Sie haben also falsch gehört. MD5-Prüfsummen (oder SHA-Prüfsummen oder was auch immer) werden (insbesondere neben Download-Links ) nur zur Überprüfung eines korrekten Downloads bereitgestellt . Das einzige, was sie garantieren wollen, ist, dass Sie die gleiche Datei wie der Server haben. Nicht mehr, nicht weniger. Wenn der Server kompromittiert ist, sind Sie SOL. Es ist wirklich so einfach.

Daniel B
quelle
31
+1. Sie werden hauptsächlich zum Schutz vor versehentlicher Beschädigung (Netzwerkübertragungsfehler, fehlerhafte Sektoren auf der Festplatte usw.) verwendet. Zum Schutz vor böswilliger Beschädigung muss die Prüfsumme von einem vertrauenswürdigen, nicht verbundenen Speicherort stammen. Dasselbe gilt für PGP / GPG / ähnlich signierte Nachrichten: Sie stellen den Inhalt nur dann vollständig sicher, wenn Sie vertrauen, von wo Sie den öffentlichen Schlüssel erhalten haben.
David Spillett
1
Möglicherweise möchten Sie Ihrer Antwort auch hinzufügen, dass diese Einschränkung durch Difital-Signaturen behoben wird (vorausgesetzt, Sie vertrauen dem Zertifikat / der Zertifizierungsstelle)
8.
2
Es ist noch schlimmer: Wenn jemand Ihren Datenverkehr zum / vom Server manipulieren kann, kann er sowohl die empfangene Datei als auch die Prüfsumme ändern, auch wenn der Server nicht gefährdet ist.
8.
3
Zu erweitern: Wenn es tut Garantie , dass Sie die gleiche Datei haben wie der Server hätte, wäre es eine legitime Sicherheitsmaßnahme sein, weil es bedeuten würde , Sie müssen nicht auf dem Netzwerk vertrauen. Genau das tun die MACs in TLS - beweisen Sie, dass Sie das bekommen haben, was der Server gesendet hat, aber TLS kann auch nichts gegen einen kompromittierten Server tun. Wenn ein guter Hash über eine vertrauenswürdige Verbindung übertragen wird, kann er Sicherheit bieten (die von der vertrauenswürdigen Verbindung abgeleitet wird). Wenn es über dieselbe Verbindung wie die Datei gesendet wird, ist es nutzlos, da es nicht manipulationssicherer ist als die Datei selbst.
8.
2
Das ist falsch. Manchmal werden die Prüfsummen sicher bereitgestellt, der Download jedoch nicht. Da MD5 defekt ist, sind die Sicherheits-MD5-Prüfsummen schwächer als sicherere Prüfsummen, aber bevor MD5 defekt war, war ein sicher bereitgestelltes MD5 (z. B. eines, das signiert oder von HTTPs gesendet wurde), das mit dem MD5 des Downloads übereinstimmte, ein starker Beweis dafür, dass Der empfangene Download war derjenige, den der Server zur Verfügung stellte. Ich werde jetzt eine Antwort mit mehr Details hinzufügen.
Matthew Elvey
15

Die von einigen Paketverwaltungssystemen wie dpkg verwendete Lösung besteht darin , den Hash zu signieren : Verwenden Sie den Hash als Eingabe für einen der Signaturalgorithmen für öffentliche Schlüssel. Siehe http://www.pgpi.org/doc/pgpintro/#p12

Wenn Sie den öffentlichen Schlüssel des Unterzeichners haben, können Sie die Signatur überprüfen, was beweist, dass der Hash unverändert ist. Dadurch haben Sie nur das Problem, im Voraus den richtigen öffentlichen Schlüssel zu erhalten. Wenn jedoch jemand einmal die Schlüsselverteilung manipuliert, muss er auch alles manipulieren, was Sie möglicherweise damit überprüfen. Andernfalls werden Sie feststellen, dass etwas Merkwürdiges vor sich geht.

pjc50
quelle
9

Ihre Annahme ist richtig. Es gibt jedoch eine Ausnahme. Wenn der Server, der die Datei bereitstellt, und die Seite, auf der sich der Hash befindet, nicht von derselben Entität verwaltet werden. In diesem Fall möchte der Softwareentwickler vielleicht sagen: "Hey Leute, lade das von diesem Ort herunter, aber glaube nur, wenn Hash = xxxx". (Dies kann beispielsweise für CDNs nützlich sein.) Ich denke, das war der Grund, warum es jemand getan hat. Dann kamen andere und dachten, wie cool es wäre, den Hash zu zeigen. Ich denke nicht einmal daran, wie nützlich es ist, dass sich nicht einmal die Datei und der Hash am selben Ort befinden.

Das ist es wert, was es ist. Nehmen Sie nicht zu viel Wert auf Sicherheit, wie andere bereits sagten. Wenn und nur wenn Sie dem ursprünglichen Hash absolut vertrauen können, dann ist die Datei gut. Andernfalls kann ein Angreifer mit genügend Motivation und Wissen sowohl die Datei als auch den Hash manipulieren, selbst wenn sich diese auf verschiedenen Servern befinden und von verschiedenen Entitäten verwaltet werden.

nsn
quelle
8

Manchmal werden die Prüfsummen sicher bereitgestellt, der Download jedoch nicht. Da MD5 defekt ist , sind die Sicherheits-MD5-Prüfsummen schwächer als sicherere Prüfsummen. Bevor MD5 defekt war, war es jedoch ein sicher bereitgestelltes MD5 (z. B. eines, das mit PGP oder GPG oder Gatekeeper signiert oder über HTTPS abgerufen wurde), das mit MD5 übereinstimmt Der Download war ein starker Beweis dafür, dass der empfangene Download derjenige war, den der Server zur Verfügung stellte.

Ich habe über den beklagenswerten Mangel an sicheren Prüfsummen seit Jahren geschrieben, hier .

Benutzer sollten nicht vertrauenswürdige ausführbare Dateien nicht über nicht vertrauenswürdige Netzwerke herunterladen und ausführen, da das Risiko von MITM-Angriffen besteht. Siehe z. B. "Unsicherheiten in automatischen Aktualisierungssystemen" von P. Ruissen, R. Vloothuis.

Nachtrag 2014: Nein, es ist NICHT falsch, "dass Prüfsummen, die auf Webseiten veröffentlicht werden, zur Erkennung böswilliger Änderungen verwendet werden", da dies eine Rolle ist, die sie übernehmen können. Sie schützen vor versehentlicher Korruption, und wenn sie über HTTPS oder mit einer verifizierten Signatur (oder besser beides) bereitgestellt werden, schützen sie vor böswilliger Korruption! Ich habe über HTTPS Prüfsummen abgerufen und festgestellt, dass diese häufig mit HTTP-Downloads übereinstimmen.

Heutzutage werden Binärdateien häufig mit signierten, automatisch verifizierten Hashes verteilt, aber auch das ist nicht perfekt sicher .

Auszug aus dem obigen Link: "Die KeRanger-Anwendung wurde mit einem gültigen Mac-App-Entwicklungszertifikat signiert. Daher konnte der Schutz von Apple Gatekeeper umgangen werden." ... "Apple hat das missbrauchte Zertifikat widerrufen und die XProtect-Antivirensignatur aktualisiert. Transmission Project hat die bösartigen Installationsprogramme von seiner Website entfernt. Palo Alto Networks hat außerdem die URL-Filterung und die Bedrohungsverhütung aktualisiert, damit KeRanger keine Auswirkungen auf Systeme hat. Technische Analyse

Die beiden KeRanger-infizierten Übertragungsinstallateure wurden mit einem von Apple ausgestellten, legitimen Zertifikat signiert. Der Entwickler, der dieses Zertifikat aufführt, ist ein türkisches Unternehmen mit der ID Z7276PX673, die sich von der Entwickler-ID unterscheidet, die zum Signieren früherer Versionen des Transmission-Installationsprogramms verwendet wurde. In den Codesignaturinformationen wurde festgestellt, dass diese Installationsprogramme am Morgen des 4. März generiert und signiert wurden. "

2016 Nachträge:

@ Cornstalks: Re. Ihr Kommentar unten: Falsch. Wie im Wikipedia-Artikel zu Kollisionsangriffen, auf den Sie verweisen, "2007 wurde ein Kollisionsangriff mit dem Präfix" gegen MD5 gefunden ". Der Angreifer kann zwei willkürlich unterschiedliche Dokumente auswählen und dann verschiedene berechnete Werte anhängen, die das Ganze ergeben Dokumente mit gleichem Hashwert. " Selbst wenn das MD5 sicher bereitgestellt wird und ein Angreifer es nicht ändern kann, KANN ein Angreifer dennoch einen Kollisionsangriff mit einem ausgewählten Präfix mit Malware verwenden, was bedeutet, dass MD5 für Kryptozwecke NICHT sicher ist. Dies ist vor allem der Grund, warum laut US-CERT MD5 "als kryptografisch fehlerhaft und für die weitere Verwendung ungeeignet angesehen werden sollte".

Noch ein paar Dinge: CRC32 ist eine Prüfsumme. MD5, SHA usw. sind mehr als nur Prüfsummen. Sie sollen sichere Hashes sein. Das heißt, sie sollen sehr widerstandsfähig gegen Kollisionsangriffe sein. Im Gegensatz zu einer Prüfsumme schützt ein sicher übertragener sicherer Hash vor einem Man-in-the-Middle-Angriff (MITM), bei dem sich der MITM zwischen dem Server und dem Benutzer befindet. Es schützt nicht vor Angriffen, bei denen der Server selbst gefährdet ist. Um sich davor zu schützen, verlassen sich die Leute normalerweise auf etwas wie PGP, GPG, Gatekeeper usw.

Matthew Elvey
quelle
Diese Antwort gefällt mir, weil sie einen wesentlichen Teil einer Prüfsumme hervorhebt - es ist einfach eine Metrik von vielen, um die Gültigkeit des Inhalts einer Datei zu überprüfen. Wenn das Netzwerk selbst nicht vertrauenswürdig ist, kann man sich nicht vorstellen, die MD5-Hashes zu ersetzen und Binärdateien im laufenden Betrieb zu patchen (wie wir es bereits bei einigen Tor-Exitknoten gesehen haben) ... Natürlich bietet MD5 keinen Schutz dagegen absichtlich geänderte Dateien, weil Sie dem Anbieter dieser Dateien bereits zu Beginn Ihr Vertrauen schenken.
Durchbruch
2
MD5 ist nicht völlig kaputt: Der Angriff darauf ist ein Kollisionsangriff , kein Vorspann (was viel, viel schlimmer wäre). Wenn das MD5 sicher bereitgestellt wird und ein Angreifer es nicht ändern kann, kann ein Angreifer keinen Kollisionsangriff ausführen (und muss einen Preimage-Angriff ausführen), was bedeutet, dass MD5 für diesen Zweck immer noch ziemlich sicher ist. MD5 ist es wert, wegen seiner Kollisionsanfälligkeit aus dem Programm genommen zu werden, hat jedoch keine (bekannte) Preimage-Sicherheitsanfälligkeit, sodass es nicht völlig kaputt ist. Nur halb kaputt.
Cornstalks
+1! Aber ... Ist ein signierter Hash wirklich genauso sicher ( vertrauenswürdig ) wie ein nicht signierter Hash, der über https (ssl / tls) abgerufen wird? Ich denke, es ist immer noch vorzuziehen, dass der Hash selbst sowieso signiert ist ...
matpop
4

Dies ist der genaue Grund, warum in den gesendeten Prüfsummen häufig ein Haftungsausschluss mit der Aufschrift "Dies kann nicht vor böswilliger Änderung der Datei schützen" enthalten ist. Die kurze Antwort lautet also "Sie können keinerlei Schutz vor einer absichtlich geänderten Datei bieten" (obwohl HTTPS selbst vor Änderungen schützt, wenn die Seite über HTTPS bereitgestellt wird; wenn die Datei nicht über HTTPS, sondern über die Prüfsumme bereitgestellt wird.) ist, dann könnte das einigen helfen, ist aber kein alltäglicher Fall). Wer Ihnen gesagt hat, dass Prüfsummen, die auf Webseiten veröffentlicht werden, zur Erkennung böswilliger Änderungen verwendet werden, ist falsch, da dies keine Rolle ist, die sie ausführen können. Alles, was sie tun, ist, sich vor versehentlicher Korruption und fauler böswilliger Korruption zu schützen (wenn sich jemand nicht die Mühe macht, die Seite mit der Prüfsumme abzufangen).

Wenn Sie vor absichtlichen Änderungen schützen möchten, müssen Sie entweder verhindern, dass Personen mit der Prüfsumme in Konflikt geraten, oder es anderen Personen unmöglich machen, eine gültige Prüfsumme zu generieren. Ersteres kann das persönliche Ausgeben oder ähnliches beinhalten (so dass die Prüfsumme selbst vertrauenswürdig ist); Letzteres bezieht sich auf Algorithmen für digitale Signaturen (bei denen Sie Ihren öffentlichen Schlüssel sicher an den Downloader senden müssen. In TLS wird dies dadurch erreicht, dass letztendlich die Zertifizierungsstellen direkt vertrauenswürdig sind und alle anderen überprüft werden. Dies kann auch über ein Web of Trust erfolgen Aber der Punkt ist, dass irgendwann etwas sicher übertragen werden muss und es nicht ausreicht, etwas auf Ihrer Website zu veröffentlichen.

cpast
quelle
2
Hashes können vor böswilliger Veränderung schützen, wenn man über eine unabhängige Quelle weiß, wie der erwartete Hash einer vertrauenswürdigen Version einer Datei sein sollte. Der Wert der Website, die Hash-Werte ihrer Dateien aufzulisten, besteht nicht darin, dass Personen, die Dateien von einer Site herunterladen, den Hash der heruntergeladenen Datei mit derselben Site vergleichen, sondern dass Personen, die sich aus einer anderen Quelle kennen, zugelassen werden Prüfen Sie , ob der Hash der gewünschten Datei mit der betreffenden Datei übereinstimmt, bevor Sie sie herunterladen. Übrigens, eine Sache, die ich gerne sehen würde ...
Supercat
... wäre eine Form von URL / URI, die einen erwarteten Hash-Wert enthält (wahrscheinlich SHA statt MD5) und angibt, dass ein Browser eine Datei nur akzeptieren soll, wenn der Hash mit dem angegebenen übereinstimmt. In Fällen, in denen viele Benutzer auf dieselbe große Datei zugreifen müssen, kann es effizienter sein, allen Benutzern eine URL über https: // zu geben, wenn sie die Datei von einem Proxy herunterladen, als wenn alle Benutzer https: // verwenden. direkt von der Quelle.
Supercat
@supercat Das habe ich mit "Verhindern, dass Leute mit der Prüfsumme herumspielen" gemeint - etwas muss sicher übertragen werden, und wenn dies die Prüfsumme ist, kann die Prüfsumme dazu beitragen, vor böswilligen Manipulationen an der Datei zu schützen.
8.
Eine MD5-Prüfsumme, die über einen anderen Pfad als eine Datei selbst übertragen wird, schützt vor Manipulationen, es sei denn, die Datei wurde absichtlich erstellt, um solche Manipulationen zu erleichtern. Im Gegensatz dazu bietet so etwas wie CRC32 kaum Schutz vor Manipulationen, selbst wenn die ursprüngliche Quelle der Datei vertrauenswürdig und der CRC32 sicher übermittelt wurde.
Supercat
4

Das ist wirklich ein Problem. Das Anzeigen von Prüfsummen auf derselben Site wie die herunterzuladende Datei ist unsicher. Eine Person, die die Datei ändern kann, kann auch die Prüfsumme ändern. Die Prüfsumme sollte durch ein vollständig getrenntes System angezeigt werden, was jedoch kaum möglich ist, da dem Benutzer auf sichere Weise mitgeteilt werden kann, wo sich die Prüfsumme befindet.

Eine mögliche Lösung ist die Verwendung signierter Dateien.

(Übrigens: MD5 ist überall unsicher und sollte nicht mehr verwendet werden.)

Sumpfwackeln
quelle
2

Wie können MD5-Prüfsummen vor absichtlich veränderten Dateien schützen , wenn nicht bekannt ist, ob die Prüfsumme selbst kompromittiert wurde?

Sie haben völlig recht. Das Ziel wäre es also, Ihr "Wenn" falsch zu machen - wenn wir wissen, dass ein sicherer kryptografischer Hash einer Datei nicht gefährdet ist, dann wissen wir, dass die Datei auch nicht gefährdet ist.

Wenn Sie beispielsweise einen Hash einer Datei auf Ihrer Website veröffentlichen und dann einen Link zu einer Kopie der Datei auf einem Spiegelserver eines Drittanbieters erstellen, wie es bei der herkömmlichen Verteilung kostenloser Software üblich ist, können Ihre Benutzer vor bestimmten Typen geschützt werden von Angriffen. Wenn der Spiegelserver böswillig oder kompromittiert ist, Ihre Website jedoch in Ordnung ist, kann der Spiegel Ihre Datei nicht unterwandern.

Wenn Ihre Website HTTPS verwendet oder Sie den Hash mit signieren gpg, kann Ihre Datei (meistens) auch vor Netzwerkangriffen wie böswilligen WLAN-Hotspots, Rogue Tor-Exitknoten oder NSA geschützt werden.

Matt Nordhoff
quelle
1
In Bezug auf gpg: Denken Sie daran, dass dies zu ähnlichen Problemen führt, wenn Sie nicht völlig vertrauen, dass der öffentliche Schlüssel nicht durch einen manipulierten ersetzt wurde und der Inhalt mit dem entsprechenden privaten Schlüssel signiert ist.
David Spillett
1

Sie können die MD5-Prüfsumme nicht ändern, ohne auch die Datei zu ändern. Wenn Sie die Datei herunterladen, dann laden Sie den Hash herunter, und dann stimmt Ihre Berechnung der Datei nicht mit der angegebenen überein, entweder ist der Hash oder die Datei falsch oder unvollständig.

Wenn Sie die Datei an etwas Externes "binden" möchten, z. B. an einen Autor, einen Computer usw., muss sie mit einem PKI-Prozess mit Zertifikaten signiert werden. Der Dateiautor usw. kann die Datei mit seinem privaten Schlüssel signieren, und Sie können Signaturen mit dem öffentlichen Schlüssel überprüfen, der öffentlich verfügbar sein sollte, der von einer Zertifizierungsstelle signiert ist, der Sie und der Autor vertrauen und der vorzugsweise von heruntergeladen werden kann mehrere Standorte.

Wenn Sie die Datei ändern, wird die Signatur ungültig. Auf diese Weise kann auch die Integrität der Datei überprüft werden.

LawrenceC
quelle
1

Hashes zeigen an, ob Ihre Version der Datei (der "Download") von der Serverversion abweicht. Sie bieten keine Garantie für die Echtheit der Datei.

Mit digitalen Signaturen (asymmetrische Verschlüsselung + Hash-Funktion) kann überprüft werden, ob die Datei von jemandem geändert wurde, der nicht über den entsprechenden privaten Schlüssel verfügt.

Der Ersteller der Datei hackt die Datei und verschlüsselt den Hash mit seinem (geheimen) privaten Schlüssel. Auf diese Weise kann jeder mit dem entsprechenden (nicht geheimen) öffentlichen Schlüssel überprüfen, ob der Hash mit der Datei übereinstimmt, aber während der Dateiinhalt geändert werden kann, kann niemand den entsprechenden Hash durch einen Hash ersetzen, der mit der Datei übereinstimmt (nachdem der Hash mit entschlüsselt wurde) den öffentlichen Schlüssel) - es sei denn, es gelingt ihnen, den privaten Schlüssel zu brachialisieren oder auf irgendeine Weise darauf zuzugreifen.

Was hindert Herrn "A.Hacker" daran, die Datei einfach zu ändern und sie dann mit ihrem eigenen privaten Schlüssel zu signieren?

Um die Datei zu validieren, müssen Sie ihren Hash mit demjenigen vergleichen, den Sie durch Entschlüsseln der zugehörigen digitalen Signatur erhalten haben. Wenn Sie der Meinung sind, dass die Datei von "IMAwesome" stammt, entschlüsseln Sie den Hash mit seinem Schlüssel und der Hash stimmt nicht mit der Datei überein, da der Hash mit dem A.Hacker-Schlüssel verschlüsselt wurde.

Digitale Signaturen ermöglichen es daher, sowohl versehentliche als auch böswillige Änderungen zu erkennen.

Aber wie bekommen wir überhaupt den öffentlichen Schlüssel von IMAwesome? Wie können wir sicherstellen, dass der Schlüssel von A.Hacker nicht von einem kompromittierten Server oder einem Man-in-the-Middle-Angriff bereitgestellt wird, wenn wir ihn erhalten haben? Hier kommen Zertifikatsketten und vertrauenswürdige Stammzertifikate ins Spiel, von denen keines eine absolut sichere [1] Lösung für das Problem darstellt und die beide wahrscheinlich auf Wikipedia und bei anderen Fragen zu SO gut erklärt werden sollten.

[1] Bei der Überprüfung enthalten die Stammzertifikate, die mit Microsoft OS auf meinem Arbeits-PC geliefert wurden, ein Zertifikat der US-Regierung. Jeder , der Zugang zu dem entsprechenden privaten Schlüssel Husten NSA Husten daher Inhalt meiner Web - Browser dienen kann , dass das passiert „ist es ein Vorhängeschloss in der Adressleiste“ zu überprüfen. Wie viele Leute werden sich tatsächlich die Mühe machen, auf das Vorhängeschloss zu klicken und zu sehen , mit welchem Schlüsselpaar die Verbindung "gesichert" wird?

Mark K. Cowan
quelle
Es ist nur eine Person erforderlich, die die Zertifikatskette überprüft, um einen Skandal auszulösen. Wenn Sie der Meinung sind, dass die NSA einen Regierungs-CA-Schlüssel für MITM verwenden würde, anstatt einen Schlüssel zu verwenden, der von einer privaten oder - noch besser - ausländischen Zertifizierungsstelle gestohlen wurde (was plausible Verweigerung bedeutet), kann ich Ihnen eine Brücke schlagen.
Charles Duffy
Ich schlug die Möglichkeit vor, ein MITM auf einen bestimmten Benutzer auszurichten. Ob es tatsächlich wahrscheinlich ist, darüber müssen die Leute diskutieren
Mark K. Cowan,
Ich frage mich nicht, ob eine gezielte MITM wahrscheinlich ist. Ich frage mich, ob es wahrscheinlich ist, achtlos genug zu sein, um einen leicht zu verfolgenden und zugeteilten CA-Schlüssel für die Ausführung zu verwenden. Insbesondere für ein ausreichend hochwertiges Ziel ist es wahrscheinlich, dass ausgehender Netzverkehr detailliert genug aufgezeichnet wird, um Metadaten bis einschließlich des öffentlichen Teils des SSL-Handshakes aufzunehmen, selbst wenn der Benutzer nicht hinschaut, sein Sicherheitspersonal oder Eine automatisierte Infrastruktur könnte dies in einer retrospektiven Analyse tun.
Charles Duffy
1

Wie können MD5-Prüfsummen vor absichtlich veränderten Dateien schützen , wenn nicht bekannt ist, ob die Prüfsumme nicht gefährdet wurde?

Das ist eine wirklich gute Frage. Im Allgemeinen ist Ihre Einschätzung der MD5-Manipulation genau richtig. Aber ich glaube, der Wert von MD5-Prüfsummen bei Downloads ist bestenfalls oberflächlich. Vielleicht können Sie nach dem Herunterladen einer Datei das MD5, das Sie haben, mit einer Website vergleichen, aber ich neige dazu, MD5-Speicher nebeneinander als "Quittung" oder als etwas zu betrachten, das schön, aber nicht zuverlässig ist. Als solches habe ich mich im Allgemeinen nie um MD5-Prüfsummen aus heruntergeladenen Dateien gekümmert, aber ich kann aus meiner Erfahrung mit der Erstellung von auf Ad-hoc-Servern basierenden MD5-Prozessen sprechen.

Grundsätzlich habe ich getan, wenn ein Client ein Dateisystem für MD5-Prüfsummen durchsuchen möchte, dass diese in CSV-Dateien generiert werden, die Dateinamen, Pfad, MD5 und andere verschiedene Dateiinformationen in einem strukturierten Datenformat abbilden, das ich dann aufgenommen habe in eine Datenbank zum Vergleich und zur Speicherung.

Während in Ihrem Beispiel eine MD5-Prüfsumme neben einer Datei in einer eigenen Textdatei gespeichert sein kann, wird die MD5-Prüfsumme des Normdatensatzes in einem nicht verbundenen Datenbanksystem gespeichert. Wenn sich also jemand in ein Fileshare gehackt hätte, um Daten zu manipulieren, hätte dieser Eindringling keinen Zugriff auf die MD5-Berechtigungsdatensätze oder den verbundenen Verlauf.

Kürzlich entdeckte ich eine nette Archivierungssoftware namens ACE Audit Manager , eine Java-Anwendung, die entwickelt wurde, um ein Dateisystem auf Änderungen hin zu überwachen. Änderungen werden über MD5-Änderungen protokolliert. Und es funktioniert nach einer ähnlichen Philosophie wie mein Ad-hoc-Prozess - Speichern der Prüfsummen in einer Datenbank -, aber es geht noch einen Schritt weiter, als eine MD5-Prüfsumme von MD5-Prüfsummen zu erstellen, die als Hash-Baum oder Merkle-Baum bezeichnet wird .

Nehmen wir also an, Sie haben 5 Dateien in einer Sammlung. Diese 5 Dateien in ACE Audit Manager erhalten dann eine andere - nennen wir sie "übergeordnet" - Prüfsumme, die ein Hash ist, der aus den 5 MD5-Prüfsummen jeder Datei generiert wird. Wenn also jemand nur eine Datei manipuliert, ändert sich der Hash für die Datei und der Hash für die gesamte übergeordnete Sammlung.

Im Allgemeinen müssen Sie MD5-Prüfsummen und zugehörige Integritäts-Hashes anzeigen, da diese möglicherweise beschädigt sind, sofern sie nicht mit einem nicht direkten Speicher für die MD5-Hashes selbst verbunden sind. Und ihr Wert als langfristiges Datenintegritätstool ist gleichbedeutend mit einem billigen Schloss, das für ein neues Gepäckstück „kostenlos“ ist. Wenn Sie es ernst meinen, Ihr Gepäck zu verschließen, erhalten Sie ein Schloss, das nicht in 5 Sekunden mit einer Büroklammer geöffnet werden kann.

JakeGould
quelle
"MD5-Prüfsumme von MD5-Prüfsummen" ist als Merkle Tree bekannt .
pjc50
@ pjc50 Danke! Bearbeitet die Antwort, um darauf hinzuweisen.
JakeGould
0

Geschwindigkeit

Oft ist es sehr viel schneller, (a) eine große Datei von einem nicht vertrauenswürdigen "nahe gelegenen" Content Delivery Network (CDN), einer Spiegel-Site, Torrent-Peers usw. herunterzuladen und auch die entsprechende kurze Prüfsummen-Datei herunterzuladen (häufig SHA256; ältere Software) häufig verwendetes MD5) aus wenigen vertrauenswürdigen Quellen. Sie finden es unerträglich langsam, (b) die gesamte große Datei direkt von einer vertrauenswürdigen Quelle herunterzuladen.

Validierung

Oft stellt diese Person fest, dass alles validiert ist - die Quellen (vertrauenswürdig und nicht vertrauenswürdig) stimmen mit derselben Prüfsumme überein und führen shasum (oder md5sum) mit einer dieser kurzen Prüfsummendateien aus (es ist egal, welche, wenn sie alle identisch sind) ) zeigt an, dass die große Datei eine übereinstimmende Prüfsumme hat.

Änderung

Sie haben Recht, wenn Mallory in böswilliger Absicht eine große Datei verändert, die sich auf einer Download-Site befindet, ist es für Mallory einfach, die Prüfsumme für diese Datei auf derselben Download-Site in böswilliger Weise zu ändern, sodass shasum (oder md5sum) auf dieser böswilligen Prüfsummendatei ausgeführt wird scheinen die große Datei zu validieren. Diese Prüfsummendatei ist jedoch nicht die (einzige) Datei, die der Downloader zur Validierung verwenden sollte.

Wenn die Downloader , dass bösartige Prüfsummendatei auf die Prüfsumme vergleichen Dateien aus vertrauenswürdigen Quellen heruntergeladen, wenn die ursprünglichen Prüfsumme rutschen sogar einmal durch, dann wird der Downloader sieht , dass alles funktioniert nicht Validieren, und wird wissen , dass etwas schief gelaufen ist.

Wie bereits erwähnt, kann eine gute kryptografische Prüfsumme, die über eine vertrauenswürdige Verbindung übertragen wird, Sicherheit bieten (die von der vertrauenswürdigen Verbindung abgeleitet wird).

Wie bereits erwähnt, helfen die Prüfsummendateien einer Site nicht denjenigen, die große Dateien von derselben Site und auf dieselbe Weise wie die Prüfsummendateien herunterladen, sondern denjenigen, die Dateien von einer anderen Site herunterladen möchten.

"Aus Sicherheitsgründen ermöglichen kryptografische Hashes wie MD5 die Authentifizierung von Daten, die von unsicheren Spiegeln stammen. Der MD5-Hash muss signiert sein oder von einer sicheren Quelle (einer HTTPS-Seite) einer Organisation stammen, der Sie vertrauen." - https://help.ubuntu.com/community/HowToMD5SUM

Kryptografische Prüfsummen sind ein wichtiger Bestandteil praktischer Public-Key-Signaturen (wie sie in GnuPG und anderer OpenPGP-kompatibler Software implementiert sind). Public-Key-Signaturen haben einige Vorteile gegenüber den Prüfsummen.

David Cary
quelle
0

Ich habe gehört, dass mit dieser [MD5-Prüfsumme] auch [...] böswillige Änderungen leicht erkannt werden können.

Nun, Sie haben nicht völlig falsch gehört . Tatsächlich wird die digitale Signatur verwendet, um böswillige Änderungen zu erkennen. Aus einigen wichtigen Gründen ist Hashing ein grundlegender Bestandteil der digitalen Signatur, da nur der Hash tatsächlich signiert wird , nicht die gesamte Originaldatei.

Abgesehen davon, wenn die Quelle die Signatur des Hashs nicht bereitstellt und es nicht vertrauenswürdig überprüft , haben Sie Recht, es wird kein Schutz gegen absichtlich geänderte Dateien gewährt , aber der Hash ist dennoch als Prüfsumme gegen versehentliche Änderungen nützlich Korruption .

Hier ist ein Beispiel aus der Praxis, das das Ganze verdeutlicht. Die folgende Passage ist zu diesem Thema von besonderer Bedeutung:

Für ältere archivierte CD-Releases wurden nur MD5-Prüfsummen [...] generiert. Für neuere Releases werden neuere und kryptografisch stärkere Prüfsummenalgorithmen (SHA1, SHA256 und SHA512) verwendet

matpop
quelle