Im einfachsten und unsichersten Fall werden sowohl die Datei als auch die Prüfsumme über ein Klartextprotokoll wie HTTP oder FTP bereitgestellt. In diesem Fall, nein, gibt es nichts, was eine Man-in-the-Middle-Änderung sowohl der Datei als auch der Prüfsumme verhindern könnte.
Ihre erste Frage lautete jedoch: " Warum basieren einige Prozesse auf veröffentlichten Prüfsummen? " Die Antwort lautet: Bei ordnungsgemäßer Authentifizierung bieten Prüfsummen einen Integritätsschutz. Wenn ich also die Integrität und Authentizität der Prüfsumme garantieren kann, kann ich die Integrität der heruntergeladenen Datei überprüfen.
Dies scheint überflüssig zu sein, denn wenn ich eine Methode zur Überprüfung der Authentizität und Integrität einer Prüfsumme habe, warum schützt dieselbe Methode die Datei selbst nicht? Die Antwort lautet, dass die Prüfsumme nicht in erster Linie dazu gedacht ist, böswillige Manipulationen zu beheben, sondern Datenbeschädigung zu erkennen. Wenn Sie über eine Netzwerkverbindung, ein Festplattenlaufwerk oder ein RAM-Modul verfügen, das Fehler mit einer Rate von 1 Bit pro 10 MB verursacht, stehen die Chancen sehr gut, dass bei einem Download von 50 MB ein Fehler auftritt. Die Wahrscheinlichkeit ist jedoch sehr gering, dass die 20-Byte-Prüfsumme einen kleinen Fehler aufweist.
Das ist alles gut und schön, aber wie können wir uns dann vor böswilligen Manipulationen schützen? Hier einige Lösungen:
-
Stellen Sie die Prüfsumme über einen authentifizierten und durch Integrität geschützten Kanal bereit. Die hier am häufigsten verwendete Lösung ist HTTPS, bei dem TLS die Authentifizierung bereitstellt , Integrität und Verschlüsselung. Der Datenprovider kann (und sollte) die Datei auch über diesen Kanal verdoppeln und bereitstellen.
Stellen Sie eine kryptografische Signatur der Datei bereit. Anstatt nur einen Integritätsschutz bereitzustellen, bietet diese Methode auch Authentizität, erfordert jedoch etwas mehr Arbeit seitens des Downloaders, der dies auch tun muss den öffentlichen Schlüssel des Anbieters haben oder sicher erhalten, um die Signatur zu überprüfen. Das gleiche zugrunde liegende Prinzip wird verwendet, um den Integritätsschutz innerhalb von TLS bereitzustellen. Eine separate Signatur für die Datei basiert jedoch auf einem anderen Schlüsselverteilungskanal, der für den Angreifer möglicherweise schwerer zu beschädigen ist oder nicht.
ol> Diese Methoden können und sollten kombiniert werden, da es einige Benutzer geben wird, die dem Schutz von TLS misstrauen, und andere, die sich nicht die Mühe machen, eine kryptografische Signatur zu überprüfen, aber aus verschiedenen Gründen nur die grundlegende Prüfsumme unterstützen können.
All dies wirft natürlich die Frage auf, ob die Datei so beschädigt werden kann, dass die Prüfsumme noch gültig ist. Dies wird als Preimage-Angriff bezeichnet, und MD5 hat sich als theoretisch anfällig erwiesen. Sie sollten immer die sicherste verfügbare Hash-Funktion verwenden: SHA-2 und SHA-3 sind eine gute Wahl. MD5 und SHA-1 sind riskanter.