Ich habe lange angenommen, dass es nicht wirklich möglich ist, eine beschädigte Datei über http herunterzuladen, solange sie nicht auf dem Server beschädigt ist und die Implementierung des http-Protokolls korrekt ist, was höchstwahrscheinlich bei moderner Mainstream-Software der Fall ist.
Ich kicherte immer, wenn ich sah, dass eine Download-Site einen MD5-Hash einer Datei anbot, die sie zum Download bereitstellte. Ich habe noch nie einen Fall gesehen, in dem ich eine Datei heruntergeladen habe. Die Größe ist korrekt, der Inhalt jedoch nicht.
Nun, heute hatte ich einen ersten Fall davon. Ich habe eine ISO von Ubuntu heruntergeladen, versucht, sie zu installieren, sie ist fehlgeschlagen und nach langer Recherche (ich konnte einfach nicht glauben, dass der Grund ein beschädigter Download sein könnte) habe ich das MD5 überprüft und was weißt du, es war falsch (Größe war richtig). Also habe ich es erneut heruntergeladen und noch einen falschen MD5 bekommen. Erst bei meinem dritten Download war der md5 korrekt.
Meine Frage ist also, ob es im Prinzip möglich ist, einen beschädigten Download über http zu erhalten, vorausgesetzt, die Implementierung ist korrekt, die Übertragung wurde erfolgreich abgeschlossen und die Datei ist auf dem Server korrekt. Wenn dies möglich ist, wie kann dies dann geschehen?
Antworten:
Ja, es ist möglich, insbesondere bei Internetverbindungen von schlechter Qualität - normalerweise drahtlos -, aber einige Kabelverbindungen (wie die, die ich habe) weisen auch hohe Fehlerraten bei hohen Geschwindigkeiten auf.
Das HTTP-Protokoll enthält keine Bestimmungen zur Gewährleistung der Datenintegrität. Auf der Transportschicht hat TCP zwar eine Fehlererkennung mithilfe einer Prüfsumme, diese ist jedoch nicht sehr zuverlässig .
Es gibt noch einen weiteren Grund für die Bereitstellung von Hashes oder digitalen Signaturen. Häufig werden die tatsächlichen Dateien auf viele Spiegelserver verteilt, deren 100% ige Sicherheit nicht garantiert werden kann. Wenn kein Hash oder keine Signatur überprüft werden muss, kann jemand mit Zugriff auf einen Spiegel (nicht unbedingt legitim) die Dateien ersetzen und unentdeckt bleiben, ohne auf einen völlig anderen Server zugreifen zu müssen, auf dem die Website gehostet wird.
Sie können eine automatische Überprüfung von Dateien erhalten, wenn Sie Ubuntu über BitTorrent anstelle von HTTP herunterladen. (Jedes Stück wird zum Zeitpunkt des Downloads überprüft, sodass Sie das gesamte Objekt nie erneut herunterladen müssen.)
quelle
Wie Grawity sagte, ist es möglich, aber zusätzlich, was ich bemerkt habe:
Selbst bei stabilen Internetverbindungen ist es möglich, dass ein Download ohne triftigen Grund vorzeitig beendet wird - es kann einfach passieren.
Und was am wichtigsten ist: Wenn Sie einen schlechten Speicher haben, ist es möglich, dass der Download vor dem Schreiben auf die Festplatte im Speicher zwischengespeichert wird. Da der Speicher schlecht ist, wird die Datei falsch geschrieben. Wenn Sie ständig schlechte Downloads haben, ist dies eine hohe Möglichkeit.
quelle