Ist es möglich, einen beschädigten Download mit http zu bekommen?


11

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:


9

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.)


1
Gute Antwort. Ich würde das Thema jedoch gerne etwas genauer untersuchen, wenn es Ihnen nichts ausmacht. Der Teil "Hochgeschwindigkeit" erwies sich als sehr relevant. Ich hatte zu Hause nie Probleme, aber diese Ubuntu-ISO-Downloads, die ich durchgeführt habe, waren bei der Arbeit und die Geschwindigkeit betrug ungefähr 5 MBit / s. Es fällt mir schwer zu akzeptieren, dass TCP nicht zuverlässig ist, da fast alles auf TCP basiert. Gibt es noch etwas anderes als diesen Wikipedia-Artikel über die Unzuverlässigkeit von TCP? Wissen Sie genau, wie sich hohe Geschwindigkeit auf das Problem auswirkt? Danke im Voraus.
Andrew Savinykh

1
@zespri: TCP soll zuverlässig sein, aber die Prüfsumme kann nicht 100% aller Fehler abfangen. Hohe Geschwindigkeit ist nur bei bestimmten Verbindungstypen oder bei unzuverlässigen Verbindungen ein Faktor ... Was leider überall zwischen Ihnen und dem Server auftreten kann, nicht unbedingt unmittelbar an Ihrem Ende. (Ich würde das Herunterladen von Spiegeln in verschiedenen Ländern testen.) Es besteht natürlich auch die Möglichkeit, dass Ihre Datei bereits im Dateisystem des Servers beschädigt wurde ...
user1686

1
Wenn die Wahrscheinlichkeit einer Beschädigung gering ist, würde eine Erhöhung der Anzahl der Hops zwischen Ihnen und dem Server die Wahrscheinlichkeit einer Beschädigung erhöhen.
Trevor Boyd Smith

1
@ Trevor: Hängt von der Linkqualität ab. Zehn Hops über Ethernet sind weitaus zuverlässiger als ein einzelner Hop über WLAN. (Die Router / Switches selbst
beschädigen

Bedeutet dies nicht, dass HTTP selbst defekt ist und behoben werden sollte?
still_dreaming_1

1

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.


Oh, ich hasse Webserver, die Downloads zufällig bei ~ 50% abschneiden, ohne Unterstützung für die Wiederaufnahme ...
user1686

1
Wil: Ja, Cut-Offs gibt es oft, und aus diesem Grund habe ich sie ausdrücklich von meiner Frage ausgeschlossen und gesagt, dass ich davon ausgehe, dass die Größen genau richtig sind. Vielen Dank für Ihren Kommentar.
Andrew Savinykh

Ja, das ist eine Schlüsselaussage für diese Frage "Die Größen sind genau richtig"
Trevor Boyd Smith
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.