Warum empfiehlt es sich, beim Herunterladen einer Datei die Prüfsummen zu vergleichen?

16

Websites, die ISO-Dateien zum Download bereitstellen, geben häufig die md5-Prüfsummen dieser Dateien an, anhand derer wir überprüfen können, ob die Datei korrekt heruntergeladen und nicht beschädigt wurde.

Warum ist das notwendig? Sicherlich sind die fehlerkorrigierenden Eigenschaften von TCP ausreichend. Wenn ein Paket nicht korrekt empfangen wird, wird es erneut übertragen. Gewährleistet die Natur einer TCP / IP-Verbindung nicht die Datenintegrität?

Aditya K
quelle
10
Vergessen Sie auch nicht mögliche Fehler in der Software und Hardware, die den Datentransfer durchführen, sowohl auf den Endpunkten als auch dazwischen.
Sebix
Der Download wurde möglicherweise einige Bytes früher beendet. Sie würden es nicht unbedingt an der Dateigröße erkennen, wenn Sie nicht darauf achten, und die TCP-Fehlerkorrektur hätte nur den Teil der Daten überprüft, der tatsächlich angekommen ist.
Kevin Keane
Prüfsummen mögen nützlich sein, aber in 20 Jahren, in denen ich mit Computern arbeite, kann ich mich nicht mehr daran erinnern, sie einmal verwendet zu haben.
Pedro Lobito
2
MD5 sind Hashes, keine Prüfsummen. Eine Prüfsumme wird verwendet, um auf Fehler zu prüfen, insbesondere auf Bitfehler während der Übertragung. Ein kryptografischer Hash soll sicherstellen, dass die Daten genau gleich sind. In diesem Sinne wäre ein Hash eine Obermenge von Prüfsummen, aber sie sind nicht gleich. Außerdem ist MD5 seit 10 Jahren defekt (siehe Wikipedia-Artikel, Abschnitt Sicherheit ).
0xC0000022L

Antworten:

20

Wie bereits von anderen angemerkt, gibt es viele Möglichkeiten für Datenkorruption, bei denen keine Prüfsumme auf der Transportschicht Abhilfe schaffen kann, z als Prüfsummen), Korruption nach Validierung der Prüfsumme am empfangenden Ende usw.

Wenn wir all diese anderen Möglichkeiten außer Acht lassen und uns auf die Besonderheiten der TCP-Prüfsumme selbst und deren tatsächliche Funktion zur Überprüfung der Datenintegrität konzentrieren, zeigt sich, dass die Eigenschaften dieser Prüfsumme in Bezug auf die Erkennung von Fehlern überhaupt nicht umfassend sind. Die Art und Weise, wie dieser Prüfsummenalgorithmus gewählt wurde, spiegelt eher die Anforderung an die Geschwindigkeit in Kombination mit dem Zeitraum (Ende der 1970er Jahre) wider.

So wird die TCP-Prüfsumme berechnet:

Prüfsumme: 16 Bit

Das Prüfsummenfeld ist das 16-Bit-Einerkomplement der Einerkomplementsumme aller 16-Bit-Wörter in der Kopfzeile und im Text. Wenn ein Segment eine ungerade Anzahl von zu prüfenden Kopf- und Textoktetten enthält, wird das letzte Oktett rechts mit Nullen aufgefüllt, um ein 16-Bit-Wort für Prüfsummenzwecke zu bilden. Das Pad wird nicht als Teil des Segments übertragen. Während der Berechnung der Prüfsumme wird das Prüfsummenfeld selbst durch Nullen ersetzt.

Dies bedeutet, dass jede Beschädigung, die beim Summieren der Daten auf diese Weise ausgeglichen wird, unentdeckt bleibt. Es gibt eine Reihe von Kategorien von Beschädigungen an den Daten, die dies zulässt, aber nur als triviales Beispiel: Das Ändern der Reihenfolge der 16-Bit-Wörter bleibt immer unentdeckt.


In der Praxis werden viele typische Fehler erkannt, die Integrität wird jedoch nicht garantiert . Dies wird auch dadurch unterstützt, dass die L2-Schicht auch Integritätsprüfungen (z. B. CRC32 von Ethernet-Frames) durchführt, allerdings nur für die Übertragung auf der lokalen Verbindung, und viele Fälle von beschädigten Daten werden nicht einmal an den TCP-Stack weitergeleitet.

Die Validierung der Daten mithilfe eines starken Hashs oder vorzugsweise einer kryptografischen Signatur erfolgt auf einer ganz anderen Ebene, um die Datenintegrität sicherzustellen. Die beiden sind kaum zu vergleichen.

Håkan Lindqvist
quelle
Beste Antwort! Ich hasse es, wenn die anderen Antworten die Konzepte von kryptografischen Hashes und Prüfsummen verwechseln.
0xC0000022L
20

Es gibt wahrscheinlich zig Gründe, warum man die md5sum überprüfen sollte, aber ein paar kommen mir in den Sinn:

  • Böswillige Aktivitäten - Ihre ISO könnte auf dem Weg vom Server manipuliert worden sein
  • Die Seite selbst ist gefälscht (am besten die md5sums auch signieren lassen :))
  • Unterbrochener Download (trotz TCP-Fehlerkorrektur) (check this out)
  • ISO falsch gebrannt

Und es dauert sowieso nur ein paar Sekunden.

Konrad Gajewski
quelle
21
Dies bedeutet auch, dass es ziemlich sicher ist, eine ISO von einer zufälligen Spiegelseite herunterzuladen, vorausgesetzt, Sie erhalten die Prüfsummen von einem vertrauenswürdigen Ort. Zum Beispiel ein von PGP signierter Beitrag in der Mailingliste von foo-announce.
Richardb
2
Es hat eigentlich nichts mit dem Schutz vor böswilligen Aktivitäten zu tun. Wenn die ISO durch eine böswillige ersetzt werden könnte, könnte dies auch der MD5-Prüfsummenwert sein. Ihre Unterschrift ist eine andere Sache, aber nicht die, nach der das OP fragt. Also statt „bösartiger Aktivitäten“ zu seinem ersten auf der Liste (es sicher klingt gut), es soll eigentlich nicht einmal sein auf Ihrer Liste. Sie geben den Menschen ein falsches Sicherheitsgefühl, das gefährlich ist. superuser.com/questions/849845/…
Austin '' Danger '' Powers
1
@ Austin''Danger''Powers Umm, nein, Konrad hat recht. Zum einen der Download - Spiegel in der Regel ist verschieden von der Website der Prüfsumme zeigt, und zweitens gibt es eine ganze Reihe von ISPs in der Welt, die den Verkehr manipulieren - TCP - Prüfsummen in Ordnung sein, aber du bist eine andere Datei herunterzuladen. Und natürlich fehlt ihm noch ein weiterer Punkt - die Datei ist möglicherweise auf dem Server beschädigt, nachdem die Prüfsumme erstellt wurde. Dies passiert die ganze Zeit, insbesondere bei Servern, die eher "Hobbyisten" sind (ohne ordnungsgemäße RAID-Einstellungen usw.).
Luaan
2
Eine Antwort aus dem Jahr 2015 sollte von MD5-Hashes abraten . Dieser Algorithmus wurde in den letzten zehn Jahren gebrochen (keine Übertreibung!). Außerdem mischen Sie Prüfsumme und Hash. Sie sind zwei verschiedene Dinge mit unterschiedlichen Absichten.
0xC0000022L
1
Das Hinzufügen zum Hinzufügen zum Kommentar von @ 0xC0000022L SHA1 wird am besten vermieden, wenn die Sicherheit bereits ein wichtiges Anliegen ist, obwohl sowohl es als auch MD5 vollkommen ausreichend sind, um sich gegen versehentliche Korruption zu verteidigen.
David Spillett
6

TCP / IP garantiert die Datenintegrität *. Es kann jedoch nicht garantiert werden, dass 100% einer Datei heruntergeladen wurden. Dafür kann es viele Gründe geben. Zum Beispiel: Es ist möglich, dass Sie eine ISO mounten, bei der ein oder zwei Bytes in der Mitte fehlen. Sie werden kein Problem damit haben, bis Sie eine oder zwei bestimmte Dateien benötigen, die beschädigt sind. Durch Vergleichen der Prüfsummen wird sichergestellt, dass Sie wirklich die gesamte Datei heruntergeladen haben.

* siehe Kommentar

Daniel
quelle
8
Ich denke, "garantiert Datenintegrität" ist wirklich zu viel verkauft, was es tatsächlich tut. Es wird versucht, die Datenintegrität mit einem sehr schlanken Ansatz zu überprüfen , der nicht besonders stark ist.
Håkan Lindqvist,
6

Die TCP-Prüfsumme beträgt nur 16 Bit. Dies bedeutet, dass in Abwesenheit anderer Prüfsummen eines von 65536 beschädigten Paketen als nicht beschädigt akzeptiert wird. Wenn Sie beispielsweise ein 8-GB-DVD-Image über einen lauten Link mit einer Korruptionsrate von 1% herunterladen, erwarten Sie 81 unerkennbar beschädigte Pakete.

MD5 ist mit 128 Bit eine viel größere Prüfsumme. Die Wahrscheinlichkeit, dass diese 81 Pakete etwas mit der gleichen Prüfsumme wie das Original produzieren, liegt bei etwa 1 zu 1.000.000.000.000.000.000.000.000.000.000.

Kennzeichen
quelle
6

Es gibt mehrere Gründe, die Prüfsumme einer über HTTP heruntergeladenen Datei zu überprüfen:

  • Stellen Sie sicher, dass Sie die gesamte Datei erhalten haben
    • Einige Clients, wie z. B. Firefox , behandeln eine unterbrochene Verbindung möglicherweise als erfolgreiches Herunterladen, sodass Sie eine abgeschnittene Datei haben, diese aber als OK herunterladen möchten
  • Stellen Sie sicher, dass Sie die richtige Datei erhalten haben
    • zB ein fehlerhafter, kompromittierter oder böswilliger Server könnte Ihnen etwas anderes schicken
    • jemand könnte die Übertragung manipulieren (Man-in-the-Middle-Angriff) - selbst HTTPS ist nicht sicher, wenn Ihr System beispielsweise durch Superfish kompromittiert wird oder die verwendete Verschlüsselungsmethode schwach ist
    • Sie zeigen Ihnen möglicherweise auch nur eine falsche Download-Seite an, sodass Sie nicht einmal mit dem realen Server verbunden sind (in diesem Fall helfen die Prüfsummen nicht viel, wenn Sie sie von demselben gefälschten Server erhalten).
    • Eine Reihe von Internetdienstanbietern wurde aus verschiedenen Gründen beim Einfügen von Javascript in übertragene Seiten erwischt 1 ; Je nachdem, wie gut dies implementiert ist, können auch einige Dateidownloads beschädigt werden
    • Ein Spiegelserver hostet möglicherweise eine veraltete Version der Datei, oder der Administrator hat möglicherweise die falsche Datei hochgeladen
  • Sicherstellen, dass die Datei nicht durch etwas beschädigt wurde, das TCP nicht erkennen kann
    • Beispielsweise könnte die Datei auf dem Server beschädigt sein, sodass TCP nur sicherstellt, dass die bereits beschädigte Datei bei der Übertragung nicht weiter beschädigt wird
    • oder es könnte beschädigt werden, nachdem Sie am Ende angekommen sind, durch fehlerhaften Speicher / Datenträger, fehlerhaften Dateisystemtreiber usw
    • TCP-Prüfsummen sind nur 16-Bit, sodass die Wahrscheinlichkeit, dass ein beschädigtes Paket nicht erkannt wird, nicht astronomisch ist (1 in 65536)
  • Mit einem ISO, um sicherzustellen, dass die Disc richtig gebrannt wurde

1 Quellen im Kommentar, weil lol rep

Rena
quelle
2
Quellen: * security.stackexchange.com/questions/70970/… * adblockplus.org/forum/viewtopic.php?t=8156 "Aggressiver ISP injiziert / eingebettete Skripte / Anzeigen blockierbar" * iamsrijit.wordpress.com/2012/09/ 14 /… * mehr finden Sie leicht bei Google, aber es ist hier nicht wirklich zum Thema
Rena
2

Daniel, je nachdem welches Tool du für den ISO Download verwendest. Wenn es sich um Say Firefox handelt, wird möglicherweise der Dateidownload angezeigt. Möglicherweise ist jedoch nicht die vollständige ISO intakt. Wenn Sie es brennen und dann versuchen, es zu verwenden, fehlen möglicherweise Informationen. Dies geschieht von Zeit zu Zeit auf verschiedenen Webservern, die Dateien hosten.

Es wird empfohlen, mindestens die Dateigröße zu vergleichen (Gesamtzahl der Bytes oder Bits), um sicherzustellen, dass sie übereinstimmen. Windows zeigt die Anzahl der Dateibytes anders an als Linux. Die MD5-Summenprüfung zeigt die gleichen Werte an, unabhängig davon, welches Betriebssystem verwendet wird. Hoffe das hilft ein bisschen. Prost...

David Thomson
quelle
2
Windows zeigt die Byteanzahl anders als Linux? "Ja wirklich?" Ich dachte, dass die Abdomination mit CP / Ms Dateisystem mit der Dateigröße als Blockanzahl aufhört. (Nun, wenn Sie sich etwas anderes als die Byteanzahl ansehen - zum Beispiel die Dateigrößenanzeige im Explorer -, kann es durchaus abweichen. Aber kein vernünftiger Systemadministrator sollte die Integrität der heruntergeladenen Dateien auf diese Weise überprüfen. Problem.) Bytes sind Bytes. Es macht jedoch keinen Sinn, es in Bits zu betrachten. Wann haben Sie das letzte Mal ein halbes Byte heruntergeladen und gespeichert?
ein Lebenslauf
2

Ich bemerke viele interessante Antworten, aber es gibt noch etwas zu beachten: Das Problem zweier Generäle

Das Problem der zwei Generäle und das Problem der byzantinischen Generäle berücksichtigen insbesondere die Auswirkungen der zuverlässigen Übertragung von Informationen über unzuverlässige Kanäle.

Prüfsummen sind nur eine weitere Schicht der "Erhöhung der Zuverlässigkeit" und eine, bei der die Wahrscheinlichkeit eines Ausfalls sehr gering ist. Dies ist der Grund, warum es so beliebt ist.

Fernando Cordeiro
quelle