Czy naprawdę musimy sprawdzać integralność pobranych plików? [duplikować]


9

Pobrałem ogromną liczbę plików, ale całkiem niedawno odkryłem użycie md5 i sha jako kontrolerów integralności. Odtąd zawsze wolę sprawdzać, czy nie ma dużych pobranych plików, nawet jeśli nigdy nie znalazłem ich uszkodzonych.

Czy naprawdę musimy sprawdzać integralność pobranych plików?

Wybierz jako przykład właśnie pobraną dystrybucję Linuksa, która wynosi 1 GB, jeśli chcesz.

Dziękuję Ci


Wiele pobrań to pobieranie HTTP i nieliczne duże kończą się przedwcześnie z powodu ograniczeń czasowych serwera lub problemów z łącznością, bez żadnych błędów. Z drugiej strony torrenty i ftp powinny wyjaśnić, czy plik jest kompletny.
Dan

5
Punktem porównawczym skrótu może być raczej „czy ktoś zmienił plik (złośliwie)” niż „czy plik został pobrany poprawnie”. Jednym z najlepszych przykładów jest pobranie ISO systemu Windows z nieoficjalnego / niewiarygodnego źródła i sprawdzenie integralności pliku poprzez porównanie skrótu MD5 z hasłem Microsoft opublikowanym na MSDN.
TheUser1024

1
@ Użytkownik 1024 zakłada, że ​​dwa źródła są takie same, wersja MSDN może być inna.
Eric G

1
To pytanie może uzyskać więcej odpowiedzi na temat bezpieczeństwa.
SE

3
W rzeczywistości chodziło bardziej o integralność niż bezpieczeństwo, ponieważ
pobieram

Odpowiedzi:


6

To zależy od kilku czynników.

  1. Czy masz stabilne połączenie z Internetem?
    Jeśli masz stabilne połączenie z Internetem, nie musisz sprawdzać integralności pliku, ponieważ najprawdopodobniej będzie on poprawny. Nigdy nie sprawdzam skrótu, a także nigdy nie miałem uszkodzonych plików. A może kiedyś zdalny serwer się rozłączył.

  2. Czy chcesz zweryfikować plik ze względów bezpieczeństwa?
    Jeśli obawiasz się o bezpieczeństwo pobieranego pliku, możesz użyć skrótu MD5, aby sprawdzić, czy plik nie został w jakiś sposób zmieniony. Pobierasz plik, a jeśli skrót MD5 nie pasuje, oznacza to, że plik na serwerze różni się od skrótu MD5 i coś jest nie tak. Byłoby to ważne tylko wtedy, gdy nie ufasz serwerowi, z którego pobierasz plik, ale zwykle, jeśli ktoś udostępnia skrót, zwykle stara się również jak najlepiej aktualizować. Ale jeśli ich strona została zhakowana, a ty sprawdziłeś skrót MD5, to dostałeś mały bonus.

Ogólnie rzecz biorąc, te 2 dadzą nie większości ludzi. Jeśli to nie dla ciebie, to oczywiście zależy wyłącznie od ciebie.


1
Stabilne połączenie internetowe nie jest wystarczające. Musisz także upewnić się, że pamięć RAM i dysk nie uszkodzą plików. Ale tak, całkiem mało prawdopodobne. Jeśli twoja maszyna nie obsługuje BSOD, istnieje szansa, że ​​dbasz tylko o bezpieczeństwo.
ChrisInEdmonton

6
Suma kontrolna pliku nie stanowi kontroli bezpieczeństwa, ponieważ osoba atakująca, która może zmodyfikować plik, może również zmodyfikować sumę kontrolną.
Johnny

1
Gdybym miał zhakować witrynę i zastąpić plik złośliwym, myślę, że byłbym wystarczająco inteligentny, aby wiedzieć, jak zmienić wymieniony skrót.
Cole Johnson

3
MD5 nie wystarcza już do sprawdzenia, czy zawartość pliku nie została celowo zmieniona. Jest dobry tylko w przypadku niezamierzonej korupcji. Szanse na atakującego atakującego oba są różne. Pamięć mieszania w wielu przypadkach nie jest dostępna za pośrednictwem tych samych kanałów, co pamięć masowa plików do dużego pobrania. Ze względów bezpieczeństwa podpisy kryptograficzne są lepsze niż zwykłe skróty, szczególnie jeśli nie masz bezpiecznego kanału do ich dystrybucji.
Perkins

Myślę, że idea hashów polegała na tym, że dostarczony plik był hostowany w innej witrynie niż skrót. Np. Strona programisty z hashowaniem do Sourceforge lub gdzieś.
Matthew Lock

6

Odpowiedź i wybór będą oparte na jego / jej tolerancji na ryzyko oraz rozważeniach dotyczących czasu i wysiłku podczas weryfikacji.

Sprawdzanie skrótów MD5 / SHA1 to dobry pierwszy krok i powinieneś to zrobić, kiedy masz czas. Należy jednak wziąć pod uwagę zdolność do zaufania podanego skrótu. Na przykład, jeśli włamano się do strony autora z hashem, atakujący może zmienić skrót, abyś nie wiedział. Jeśli hash obliczyć to nie to samo jak hash pod warunkiem, wiesz coś się skończy. Jednak tylko dlatego, że dopasowanie skrótów nie gwarantuje, że plik jest dobry.

Lepszą alternatywą dla autora oprogramowania w celu zapewnienia integralności i autentyczności jest podpisanie cyfrowe dystrybuowanych plików . To dołącza informacje o autentyczności do pliku i nie polega na zaufaniu do pewnej witryny. Jeśli autor podpisuje plik cyfrowo, jedynym sposobem na sfałszowanie go jest przejęcie urzędu certyfikacji lub skradzienie klucza podpisu programisty. Oba te przypadki są znacznie mniej prawdopodobne niż włamanie się do witryny internetowej.

Ostatecznie musisz dołożyć należytej staranności, aby ustalić, czy chcesz komuś zaufać, a następnie podjąć środki zaradcze (uruchomić w piaskownicy, maszynie wirtualnej itp.), Aby złagodzić wszelkie nieznane czynniki lub błędne obliczenia, które podejmujesz, podejmując decyzję o zaufaniu, czy nie. .


4

Ze względów bezpieczeństwa TAK. Weź pod uwagę, że stwierdzono, że węzeł wyjściowy Tora łata pliki binarne podczas pobierania , a następnie pamiętaj, że twój dostawca usług internetowych może, ale nie musi mieć najmniejszej moralności i że ma pełną kontrolę nad twoim połączeniem internetowym.


Twoja skarga na dostawcę usług internetowych polega na tym, że mogą oni zmienić szybkość i priorytet mojego połączenia oraz inne rzeczy, które mogą uszkodzić pliki?
maxpesa

@maxpesa - mogą modyfikować strumień, jeśli chcą. Plik nie zostanie uszkodzony po prostu zmodyfikowany.
Ramhound

@maxpesa - Wskazałem, że twój dostawca usług internetowych znajduje się w tej samej pozycji, co węzeł wyjściowy Tora w powiązanym artykule - ma możliwość kontrolowania tego, co przechodzi przez twoje przewody. Jeśli chcą, mogą modyfikować pliki binarne, które pobierasz w locie.
Michael Kohne

2
Jeśli atakujący może zmodyfikować plik binarny, najprawdopodobniej atakujący może również zmodyfikować skrót. Wymagałoby to bardziej ukierunkowanego ataku niż załatanie wszystkich plików binarnych, ale nadal jest bardzo możliwe. Sprawdzanie skrótu pozwala uniknąć uszkodzeń, ale nie ma gwarancji. Jeśli zależy Ci na bezpieczeństwie, pierwszym krokiem jest pobranie tylko przez HTTPS - szczególnie, jeśli używasz serwerów proxy, takich jak Tor!
kapex

1
Aby dodać do komentarza @ kapep, jeszcze lepiej sprawdzić poprawność za pomocą podpisów kryptograficznych (używając kluczy rozpowszechnianych przez bezpieczny kanał). W ten sposób atakujący musiałby skompromitować zarówno magazyn kluczy, jak i repozytorium, aby zmienić plik binarny.
Johnny

4

W przypadku plików, w których integralność jest krytyczna, tak

Często uważam to za konieczne, gdy robię coś, co ma krytyczne znaczenie dla wysokiej integralności pliku.

Jednym z przykładów jest flashowanie routera za pomocą OpenWRT. Jeśli plik jest uszkodzony, router zostałby zamurowany, a następnie musiałbym albo:

  • Wymień (drogi)
  • Napraw to (czasochłonne. Zwłaszcza, jeśli muszę lutować kabel szeregowy / JTAG)

Oba są niewygodne w porównaniu z prostotą sprawdzania skrótu. Dlatego zdecydowanie zalecam robienie tego dla plików krytycznych.


0

Zazwyczaj kłopotam się tylko sprawdzeniem, czy pobieranie zostało przerwane i wznowiłem je później, ponieważ żądania HTTP z przesunięciem wyszukiwania nie są tak powszechnie używane, więc mogło się zdarzyć coś niemądrego.

W wielu przypadkach plik do pobrania to skompresowany plik, który nie zostanie zdekompresowany, jeśli zostanie uszkodzony. Jeśli tak NIE jest, sprawdzanie nie jest złym pomysłem. Mogę sprawdzić ISO przed nagraniem go na nośniku jednokrotnego zapisu.

Weryfikacja za pomocą skrótu z tej samej witryny, z której go otrzymałem, jest mało przydatna, ze względów bezpieczeństwa, jak mówią inne odpowiedzi i komentarze. Może być bardziej użyteczny, jeśli pobierałeś z kopii dystrybucyjnej, ale skrót pochodzi z pierwotnego źródła. Lub jeśli nazwa pliku jest niejednoznaczna i z jakiegoś powodu nie jesteś pewien, czy masz dokładnie taką wersję, jakiej chciałeś.

Chodzi o to, że publikowanie skrótów jest przydatne w wielu szczególnych przypadkach innych niż tylko pobieranie pliku z tej samej strony, na której znajduje się skrót.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.