Jak wiarygodne są sumy SHA1 i MD5 w przypadku bardzo dużych plików?

1

Ciągle przesyłam obrazy dysków i obrazy maszyn wirtualnych (zwykle 800 GB do prawie 1 TB na plik) do serwera w chmurze za pośrednictwem rclone za pomocą SSH i zastanawiam się, jak wiarygodne są sha1sum i md5sum, jeśli chodzi o weryfikację integralności bardzo dużych plików.

Znalazłem to: Jak mogę sprawdzić, czy plik 1 TB został poprawnie przesłany?

Ma to jednak coś wspólnego z wydajnością, a nie z niezawodnością generowanych skrótów.

Czy istnieje możliwość, że inny plik ma ten sam wygenerowany skrót, biorąc pod uwagę, że istnieje tak wiele różnych plików?

Jak więc wiarygodne są sumy MD5 i SHA-1 w przypadku bardzo dużych plików? Dzięki.

Dowiedziałem się również o kolizji: https://stackoverflow.com/questions/4032209/is-md5-still-good-enough-to-uniquely-identify-files

https://www.theregister.co.uk/2017/02/23/google_first_sha1_collision/

Loo Soo Yong
źródło
Są, chyba że masz pecha lub wkładasz w to dużo wysiłku (dla SHA1) . W przypadku MD5 wysiłek jest znacznie niższy. Jeśli się martwisz, wybierz odmiany SHA2 lub SHA3.
Jakuje
1
patrz także zasada szuflady i problem urodzinowy . do celów weryfikacji transferu, albo algorytm będzie działać jako pierwszy krok - pigeonhole mówi nam niepasujących suma na pewno nie jest ten sam plik, ale nie udowodnić, że dopasowanie suma jest zdecydowanie sama .
donkiszot

Odpowiedzi:

3

Zarówno MD5, jak i SHA-1 doskonale nadają się do wykrywania przypadkowych uszkodzeń / zmian w plikach. Prawdopodobieństwo przypadkowej zmiany pliku o tym samym skrócie MD5 wynosi jeden na 2 ^ 128 = 340 282 366 920,938,463,463,374,607,431,768,211,456. Prawdopodobieństwo przypadkowego zderzenia SHA-1 jest jeszcze mniejsze, jedno na 2 ^ 160. Jeśli mówimy o znalezieniu przypadkowych dopasowań w zbiorze plików (znanym jako problem urodzinowy), potrzebujesz około 2 ^ 64 = 18 miliardów miliardów, zanim stanie się prawdopodobne kolizja MD5. Pamiętaj, że rozmiar plików nie ma znaczenia; liczy się liczba zaangażowanych plików.

Ale ani MD5, ani SHA-1 nie są wystarczające do ochrony przed złośliwym podmianą plików lub do zapewnienia wiarygodnego unikalnego identyfikatora plików. Na przykład, jeśli użyjesz jednego z nich, ktoś może dać ci jeden plik, obliczyć skrót skrótu, a następnie oszukać cię, zamieniając go na inny plik z tym samym skrótem. Lub prześlij dwa pliki z tym samym hashem, co może wprowadzić system w błąd.

BTW, przypadkowe / złośliwe rozróżnienie jest nieco luźne. Załóżmy, że ktoś znalazł dwa pliki PDF utworzone przez Google przy użyciu tego samego skrótu SHA-1, pomyślał „To fajnie! Powinienem zapisać je na później”, a następnie próbował użyć systemu do przechowywania i dystrybucji… w ten sposób przerywając sortowanie systemu -przypadkowo. Jeśli coś takiego można sobie wyobrazić, lepiej zamiast tego wybrać SHA-256.

EDYCJA: BitErrant jest podobny do tego, co opisałem w poprzednim akapicie: jest to exploit ponownie wykorzystujący BitTorrent, wykorzystujący fakt, że BitTorrent wykorzystuje sumy kontrolne SHA-1 jako identyfikatory dla kawałków plików.

Gordon Davisson
źródło