Ich sehe oft eine Prüfsumme neben einer Datei, die zum Download zur Verfügung steht. Der Zweck dieser Praxis entzieht sich mir. Es ist offensichtlich, beschädigte Dateien zu erkennen, aber was könnte die Ursache für diese Beschädigung sein und ist es überhaupt wahrscheinlich?
Sicherlich wird die Datei nicht durch Übertragungsfehler beschädigt, da diese vom Netzwerkprotokoll erkannt werden. Und sicher kann jeder Angreifer, der die Datei für böswillige Zwecke ändern könnte, die angegebene Prüfsumme ebenfalls ändern. Prüfen wir auf Festplattenfehler? Treten diese beim Schreiben eher auf als beim Lesen? Vermisse ich etwas Wichtiges?
networking
files
checksum
Karolis Juodelė
quelle
quelle
Antworten:
Korruption zu erkennen ist nicht ganz richtig. Die Integrität der Software zu überprüfen, wäre eine korrektere Verwendung. Normalerweise wird eine Software nicht von einem einzelnen Server verteilt. Dieselbe Software kann von vielen Servern verteilt werden. Wenn Sie also eine bestimmte Software herunterladen, wird der Ihrem Ziel am nächsten liegende Server als Downloadquelle ausgewählt, um die Downloadgeschwindigkeit zu erhöhen. Diesen nicht offiziellen Servern (Drittanbietern) kann jedoch nicht immer vertraut werden. Sie könnten / können Trojaner / Viren / Adware / Backdoors in das Programm aufnehmen, was nicht gut ist .
Um sicherzustellen, dass die heruntergeladene Software genau der von der betreffenden Organisation veröffentlichten "offiziellen" Software entspricht, wird die Prüfsumme verwendet. Die zur Generierung von Prüfsummen verwendeten Algorithmen sind derart, dass bereits eine geringfügige Änderung des Programms zu einer völlig anderen Prüfsumme führt.
Beispiel aus Practical Unix und Internet Security
MD5 (In der blauen Box befinden sich 1500 USD.) = 05f8cfc03f4e58cbee731aa4a14b3f03
MD5 (In der blauen Box sind $ 1100.) = D6dee11aae89661a45eb9d21e30d34cb
Die Nachrichten, die sich nur durch ein einziges Zeichen (und innerhalb dieses Zeichens nur durch ein einziges Binärbit) unterscheiden, haben völlig unterschiedliche Nachrichtenauszüge.
Wenn die heruntergeladene Datei dieselbe Prüfsumme aufweist wie die auf der offiziellen Website angegebene Prüfsumme, kann davon ausgegangen werden, dass die Software nicht geändert wurde.
Randnotiz: Theoretisch können zwei verschiedene Dateien den gleichen Hash-Wert haben. Damit der Hash / Checksummen-Algorithmus als sicher gilt, sollte es rechenintensiv sein, eine andere Datei zu finden, die dieselbe Checksumme erzeugt.
quelle
Nicht immer.
Sie könnten einen Inhaltslink zusammen mit einer auf HTTPS bereitgestellten Prüfsumme haben. Der Link kann ein unverschlüsselter Link sein - normales HTTP oder FTP oder etwas anderes.
Auf der anderen Seite kann die unverschlüsselte Verbindung leicht überlastet werden, auf der anderen Seite kann sie für den Webmaster schneller oder bequemer sein (weniger Rechenressourcen werden benötigt und das Netzwerk kann das Zeug zwischenspeichern).
Wenn die Prüfsumme auf einer nicht unterbrochenen vertrauenswürdigen Verbindung bereitgestellt wird und die Nutzdaten mit der Prüfsumme übereinstimmen, erhalten Sie das Beste aus beiden Welten (vorausgesetzt, die Prüfsumme ist kryptografisch sicher).
Sie haben mich jedoch daran erinnert, dass es Distributionen gibt, die behaupten, "sicher" zu sein, und die Website und die Links zu ihren Bildern nur auf HTTP geschaltet sind.
Beispiele:
Es ist irgendwie lustig, weil man das unmöglich unsicherer machen kann. Selbst wenn sie selbst nicht böswillig sind, kann jeder ISP leicht sowohl die Website als auch das Image durch Fälschungen ersetzen und jemanden dazu bringen, ein manipuliertes Betriebssystem zu installieren, während es den Anschein erweckt, dass er eine "sichere" Linux-Distribution erhält pwnage.
quelle
Inwiefern die TCP / IP-Fehlerprüfung nicht alles erfasst: Von /programming//a/17083365/2551539
Es gibt verschiedene Fehler, die auftreten können (die TCP erkennt ) [auf die Jacob Krall hingewiesen hat] :
Bearbeiten Sie mit einigen zusätzlichen Informationen:
Seite 9 dieser Studie: http://paperhub.s3.amazonaws.com/8ff1e4414c070e900da8ab3885593085.pdf weist darauf hin, dass es Fehler gibt, die von TCP nicht erkannt werden können. Meines Erachtens geschieht dies, wenn ein fehlerhaftes Datagramm (in der Studie als "schlechter Zwilling" bezeichnet) die gleiche Prüfsumme aufweist wie das beabsichtigte Datagramm (in der Studie als "guter Zwilling" bezeichnet).
quelle
Übertragungsfehler können auftreten. Link-Layer-Protokolle enthalten normalerweise Prüfsummen oder fehlerkorrigierende Codes, um sie zu vermeiden. Sie sind jedoch nicht perfekt: Es besteht eine geringe Wahrscheinlichkeit, dass ein Fehler nicht korrigiert wird. TCP- Pakete enthalten außerdem eine Prüfsumme, die die Fehlerwahrscheinlichkeit um 2 ^ 16 verringert. Das macht eine sehr kleine, aber nicht null Wahrscheinlichkeit für einen Übertragungsfehler. Dies ist etwas, dem die meisten Menschen in ihrem Leben niemals unwissentlich begegnen werden, aber es liegt nicht in der Wahrscheinlichkeitsspanne von kryptografischen Prüfsummen, die in einer Milliarde Jahren niemals erreicht werden kann.
Es ist unwahrscheinlich, dass ein Hardwarefehler auf dem Client, wie z. B. eine Beschädigung der Festplatte, direkt nach dem Herunterladen überprüft wird, da die Prüfsumme anhand der zwischengespeicherten Kopie berechnet wird. Das Überprüfen der Startmedien auf Beschädigungen, wenn sie nicht gestartet werden konnten, ist andererseits nützlich - Sie testen die Medien wirklich und setzen voraus, dass die Hardware möglicherweise fehlerhaft ist.
Der eigentliche Grund für die Berechnung von Prüfsummen ist die Erkennung von Fehlern auf Softwareebene. Diese passieren. Mögliche Fehler sind:
In der Praxis werden beim Überprüfen der Größe der heruntergeladenen Datei die häufigsten Fehler festgestellt, bei denen es sich um abgeschnittene oder ungültig konvertierte Dateien handelt. Prüfsummen haben den Vorteil, dass sie wesentlich mehr Probleme erkennen.
quelle
Theoretisch würde das Netzwerk jedes einzelne Segment ordnungsgemäß bereitstellen, und sie würden ordnungsgemäß auf der Festplatte zusammengestellt, und nichts würde schief gehen.
In Wirklichkeit sind Computer Maschinen und Software, die beide von fehlbaren Menschen entworfen und gebaut werden. Für den Fall, dass ein Download aus dem einen oder anderen Grund nicht richtig funktioniert, zum Beispiel durch ein Zwischengerät, das harmlos oder ruchlos ist und die Daten verfälscht, ist es schön zu wissen, ob die Datei mit ziemlicher Sicherheit heruntergeladen wurde heruntergeladen als eine genaue Kopie der Datei auf der Seite des Anbieters.
Eine qualitativ hochwertige Prüfsumme ist eine zuverlässige Methode zur Überprüfung der Datenintegrität.
quelle
Keine Prüfsumme kann zu 100% zuverlässig sein, da viele Dateien derselben Prüfsumme zugeordnet sind.
Wenn wir dem Zug eine weitere Prüfsumme hinzufügen, multiplizieren wir die Wahrscheinlichkeit, einen Fehler zu erkennen.
Es gibt so viel Verkehr im Internet, dass Fehler häufig vorkommen.
quelle
Die Prüfsumme hilft auch dabei, einen beschädigten Download aufgrund der folgenden Situation zu verhindern:
Auf dem Server ist ein interner Fehler aufgetreten, während der Download ausgeführt wurde. Daher wird der Download abgebrochen.
In diesem Fall gibt es einige mögliche Ergebnisse:
Ich habe diese Verhaltensweisen bei gängigen Client-Tools und Server-Frameworks beobachtet. Wenn Sie also keine Prüfsumme verwenden, werden Sie im Fall von "guter Server + schlechter Client" oder "schlechter Server + beliebiger Client" nicht bemerkt, dass der Download beschädigt ist .
quelle