2011-01-04 9 views
6

MD5 Prüfsumme ist weit verbreitet für Integritätsprüfung für Http Herunterladen von großen Dateien verwendet. Meine Frage ist, da TCP selbst einen zuverlässigen Mechanismus bereitstellt (d. H. Prüfsumme für jedes TCP-Paket, um seine Integrität sicherzustellen). Kurz gesagt, TCP ist zuverlässig. Http basiert auf TCP (also sollte Http auch zuverlässig sein), warum brauchen wir einen anderen Mechanismus der Integritätsprüfung (d. H. MD5-Prüfsumme)?über MD5 Prüfsumme für Http große Datei herunterladen

Vielen Dank im Voraus, George

+3

Die Prüfsumme ist nur für dieses Paket. Es bedeutet nicht, dass diese kleinen Datenblöcke, die alle auf Integrität geprüft werden, eine große Datei mit der gleichen Integrität erzeugen. – Thai

+0

Hallo Thai, ich bin verwirrt. Ich denke, wenn kleine Paketintegrität in Ordnung ist, sollte die ganze Datei (die aus kleinen Paketen besteht) auch in Ordnung sein. Irgendwelche Kommentare? – George2

Antwort

10

Meistens verwenden Sie die Hash-Summe für eine Out-of-Band-Prüfung (z. B. auf der Website gedruckt), um die Integrität des Downloads zu prüfen, nicht programmatisch.

Dies verhindert die Manipulation des Download-Artefakts.

+0

"Manipulation des Download-Artefakts" - was meinst du Manipulation des Download-Artefakts, könntest du mir bitte eine Probe zeigen? – George2

+2

Was ich meine, ist einfach ein Angriff, bei dem der Download ersetzt wird - indem man in den Server einbricht, eine kreative Umleitung macht ... Sie laden einfach eine andere, manipulierte Datei herunter. Aber wenn Sie mit der Prüfsumme vergleichen, die durch andere Mittel zur Verfügung gestellt wird, werden Sie vielleicht auf den Betrüger aufmerksam. Dieses andere Mittel wird oft als "Out-of-Band" bezeichnet - der Angreifer muss zwei Mechanismen durchbrechen. – mtraut

+0

Wenn der Hacker die Datei auf dem Server manipulieren könnte, warum kann der Hacker die Prüfsumme nicht hacken? – George2

2

Antwort ist einfach. Die Quelldatei ist möglicherweise bereits beschädigt, bevor Sie mit dem Herunterladen beginnen. TCP überprüft nur, ob die heruntergeladene Datei mit der Quelle übereinstimmt. MD5 garantiert, dass Sie wissen, ob es beschädigt ist, ob die Ursache ein Problem bei der Übertragung oder der ursprünglichen Datei selbst ist.

+1

"Ursache ein Problem bei der Übertragung sein" - verwirrt über diesen Punkt. Ich denke, Übertragung während TCP ist zuverlässig. Warum denkst du, gibt es ein Problem bei der Übertragung, Beispiel? – George2

+0

TCP ist so zuverlässig, wie eine Verbindung sein könnte, aber es gibt immer noch mögliche Probleme bei der Übertragung mit TCP. Wenn die Verbindung abbricht (z. B. wenn Sie den Computer vom Netzwerk trennen), versucht TCP, eine Verbindung wiederherzustellen und dort weiterzumachen, wo sie unterbrochen wurde. Nach einer bestimmten Anzahl von Versuchen wird die Verbindung jedoch unterbrochen. Die nicht abgeschlossene Datei verbleibt auf der Festplatte. Zugegeben, es passiert selten, da die meisten fehlgeschlagenen Verbindungen innerhalb von ein paar Versuchen wiederhergestellt werden. – Neil

5

Mehr als 3 mal in meinem Leben habe ich eine defekte ISO oder EXE heruntergeladen und als ich es wieder heruntergeladen habe, funktionierte es. Das beweist mir, dass der TCP-Mechanismus nicht ausreicht, um die Integrität zu gewährleisten.

+0

Ist mir auch passiert, könnte aber aus dem Browser kommen –

0

Wenn es um den 35G TED-LIUM Corpus oder die noch größeren 400G von winzigen Bildern geht, scheint es fast immer etwas Fehler in der heruntergeladenen Datei. Für den 35G TED-LIUM Corpus habe ich den Download für mindestens 20 mal und für 700G der Netzwerkübertragung für mehrere Monate durchgeführt. CRC ist nur ein Albtraum.