Strony internetowe, które dostarczają pliki ISO do pobrania, często podają sumy kontrolne md5 tych plików, których możemy użyć do potwierdzenia, że plik został pobrany poprawnie i nie został uszkodzony.
Dlaczego to jest konieczne? Z pewnością właściwości TCP dotyczące korekcji błędów są wystarczające. Jeśli pakiet nie zostanie poprawnie odebrany, zostanie ponownie przesłany. Czy sama natura połączenia TCP / IP nie gwarantuje integralności danych?
Odpowiedzi:
Jak zauważyli inni, istnieje wiele możliwości uszkodzenia danych, w których jakakolwiek suma kontrolna w warstwie transportowej nie jest w stanie pomóc, na przykład uszkodzenie występujące już przed obliczeniem sumy kontrolnej po stronie wysyłającej, MITM przechwytujący i modyfikujący strumień (również dane jako sumy kontrolne), uszkodzenie występuje po sprawdzeniu sumy kontrolnej na końcu odbierającym itp.
Jeśli pominiemy wszystkie inne możliwości i skupimy się na specyfice samej sumy kontrolnej TCP i na tym, co ona faktycznie robi w zakresie sprawdzania integralności danych, okaże się, że właściwości tej sumy kontrolnej wcale nie są wyczerpujące pod względem wykrywania błędów. Sposób, w jaki wybrano ten algorytm sumy kontrolnej, raczej odzwierciedla wymaganie dotyczące prędkości w połączeniu z okresem czasu (koniec lat siedemdziesiątych).
W ten sposób obliczana jest suma kontrolna TCP :
Oznacza to, że wszelkie uszkodzenia, które równoważą się podczas sumowania danych w ten sposób, pozostaną niewykryte. Istnieje wiele kategorii uszkodzenia danych, które na to pozwolą, ale jest to tylko trywialny przykład: zmiana kolejności 16-bitowych słów zawsze pozostanie niewykryta.
W praktyce wyłapuje wiele typowych błędów, ale wcale nie gwarantuje integralności. Pomaga to również to, w jaki sposób warstwa L2 wykonuje również kontrole integralności (np. CRC32 ramek Ethernet), chociaż tylko w przypadku transmisji na łączu lokalnym, a wiele przypadków uszkodzonych danych nawet nie jest przekazywanych do stosu TCP.
Sprawdzanie poprawności danych przy użyciu silnego skrótu, a najlepiej podpisu kryptograficznego, odbywa się na zupełnie innym poziomie, jeśli chodzi o zapewnienie integralności danych. Te dwa ledwo można nawet porównać.
źródło
Prawdopodobnie istnieje milion powodów, dla których warto sprawdzić sumę md5, ale kilka przychodzi mi do głowy:
I tak to zajmuje tylko kilka sekund.
źródło
TCP / IP gwarantuje integralność danych *. Ale to nie gwarantuje, że 100% pliku zostało pobrane. Może być wiele powodów, dla których tak się może stać. Na przykład: Możliwe jest zamontowanie ISO, w którym brakuje jednego lub dwóch bajtów gdzieś pośrodku. Nie będziesz mieć z tym problemu, dopóki nie potrzebujesz jednego lub dwóch określonych plików, które są uszkodzone. Porównując sumy kontrolne upewnij się, że naprawdę pobrałeś cały plik.
* patrz komentarz
źródło
Suma kontrolna TCP ma tylko 16 bitów. Oznacza to, że przy braku innych sum kontrolnych, jeden na 65536 uszkodzonych pakietów zostanie zaakceptowany jako nieuszkodzony. Jeśli na przykład pobierałeś 8 GB obrazu DVD za pośrednictwem hałaśliwego łącza z 1% współczynnikiem korupcji, możesz oczekiwać 81 niewykrywalnie uszkodzonych pakietów.
MD5 jest znacznie większą sumą kontrolną, o 128 bitach. Szanse na 81 pakietów produkujących coś z taką samą sumą kontrolną jak oryginał wynosi około 1 na 1 000 000 000 000 000 000 000 000 000 000 000 000.
źródło
Istnieje kilka powodów weryfikacji sumy kontrolnej pliku pobranego przez HTTP:
1 źródła w komentarzu, ponieważ rep. Lol
źródło
Daniel, w zależności od narzędzia, którego używasz do pobierania ISO na słowo. Jeśli tak, powiedz Firefox. Może to pokazywać pobieranie pliku. Jednak możesz nie mieć pełnego ISO nienaruszonego. Jeśli go wypalisz, spróbuj go użyć, może brakować informacji. Zdarza się to od czasu do czasu na różnych serwerach hostingowych.
Dobrą praktyką jest przynajmniej porównywanie rozmiaru pliku (całkowita liczba bajtów lub bitów), aby upewnić się, że pasują do siebie. Windows pokaże liczbę bajtów pliku inną niż Linux. Kontrola sumy MD5 pokaże te same wartości bez względu na używany system operacyjny. Mam nadzieję, że to trochę pomoże. Twoje zdrowie...
źródło
Dostrzegam wiele interesujących odpowiedzi, ale należy wziąć pod uwagę ostatnią rzecz: problem dwóch generałów
Problem dwóch generałów i problem bizantyjskich generałów szczegółowo rozważają konsekwencje rzetelnego przekazywania informacji przez niewiarygodne kanały.
Suma kontrolna to kolejna warstwa „zwiększającej się niezawodności”, która ma bardzo małą szansę na awarię. To jest powód, dla którego jest tak popularny.
źródło