Чи дійсно нам потрібно перевірити цілісність завантажених файлів? [дублікат]


9

Я завантажив величезну кількість файлів, але нещодавно виявив використання md5 і sha як перевіряючих цілісність. Відтоді я завжди вважаю за краще перевіряти великі завантажені файли, навіть якщо я ніколи не знайшов їх пошкодженими.

Чи дійсно нам потрібно перевірити цілісність завантажених файлів?

Виберіть для прикладу дистрибутив Linux, який я щойно завантажив, а це 1 Гб, якщо хочете.

Дякую


Багато завантажень - це завантаження http, і мало хто з великих зупиняється передчасно через обмеження часу сервера або проблеми з підключенням, не створюючи помилок. Торренти та ftp з іншого боку повинні дати зрозуміти, чи файл буде повним.
Ден

5
Суть порівняння хесу може бути скоріше "хтось змінив файл (зловмисно)", ніж "чи файл завантажено правильно". Одним із головних прикладів є завантаження Windows ISO з неофіційного / ненадійного джерела та перевірка цілісності файлу, порівнюючи хеш MD5 з тим, який Microsoft опублікував у MSDN.
TheUser1024

1
@ TheUser1024 припускаємо, що два джерела однакові, версія MSDN може бути різною.
Ерік Г

1
Це питання може отримати більше відповідей щодо безпеки.SE
Ерік Г

3
Це було насправді більше на цілісність, ніж на безпеку, оскільки я завантажую лише з надійних джерел, навіть якщо це важливий момент у завантаженні файлів
maxpesa

Відповіді:


6

Це залежить від кількох факторів.

  1. У вас стабільний інтернет?
    Якщо у вас стабільне з'єднання з Інтернетом, вам не потрібно перевіряти цілісність файлу, оскільки це, швидше за все, буде правильним. Я ніколи не перевіряю хеш і у мене також ніколи не було пошкоджених файлів. А може бути один раз, коли віддалений сервер відключився.

  2. Ви хочете перевірити файл на підставі міркувань безпеки?
    Якщо ви стурбовані безпекою завантажуваного файлу, ви можете використовувати хеш MD5, щоб переконатися, що файл якось не змінений. Ви завантажуєте файл, і якщо хеш MD5 не відповідає, це означає, що файл на сервері відрізняється від хеша MD5, і чомусь щось не так. Це буде справедливо лише в тому випадку, якщо ви не довіряєте серверу, з якого завантажуєте, але зазвичай, якщо хтось надає хеш, вони також намагаються зробити все, щоб все було оновлено. Але якщо їх сайт зламали, а ви перевірили хеш MD5, то отримаєте маленький бонус.

В цілому, ці 2 даватимуть "не" більшості людей. Якщо тобі це ні, то, звичайно, залежить тільки від тебе.


1
Стабільного підключення до Інтернету недостатньо. Ви також повинні бути впевнені, що оперативна пам’ять та накопичувач не пошкоджують файли. Але так, досить малоймовірно. Якщо ваша машина не BSOD'ing, швидше за все, ви б дбали лише про безпеку.
ChrisInEdmonton

6
Контрольна сума файлу - це не перевірка безпеки, оскільки зловмисник, який може змінити файл, може також змінити контрольну суму.
Джонні

1
Якби я зламав сайт і замінив файл на шкідливий, я думаю, я був би досить розумний, щоб знати, щоб змінити перелічений хеш.
Коул Джонсон

3
MD5 вже не достатньо для підтвердження того, що вміст файлу не був навмисно змінений. Це корисно лише для ненавмисної корупції. Шанси зловмисника, що компрометують обидва, відрізняються. Зберігання для хешу у багатьох випадках не має доступу через ті самі канали, що і для масового зберігання файлів для великого завантаження. Для безпеки криптографічні підписи краще, ніж прості хеші, особливо якщо у вас немає безпечного каналу для розповсюдження хешей.
Перкінс

Я думаю, що ідея хешей була тоді, коли наданий файл розміщувався на іншому сайті до хеша. Наприклад, сайт розробника з хеш-посиланнями на Sourceforge або десь.
Меттью Лок

6

Відповідь і вибір, який вибираєте, базуватиметься на його толерантності до ризику та міркуваннях часу та зусиль на верифікацію.

Перевірка хешів MD5 / SHA1 - це хороший перший крок, і ви повинні це зробити, коли у вас є час. Однак ви повинні врахувати свою здатність довіряти наданому хешу. Наприклад, якщо сайт автора з хешем зламаний, то зловмисник може змінити хеш, так що ви не знали б. Якщо хеш, який ви обчислили, не такий, як наданий хеш, ви знаєте, що щось готове. Однак лише тому, що відповідність хешей не гарантує, що файл хороший.

Кращою альтернативою для автора програмного забезпечення для забезпечення цілісності та автентичності є цифрове підписання файлів, які розповсюджуються. Це додає до документа інформацію про справжність і не покладається на довіру до якогось веб-сайту. Якщо автор цифровим чином підписує файл, єдиний спосіб цього підробити - це скомпрометований орган сертифікації або якщо ключ підпису розробника був викрадений. Обидва ці випадки набагато рідше, ніж веб-сайт в Інтернеті зламаний.

Зрештою, ви повинні зробити свою належну ретельність, щоб визначити, чи хочете ви довіряти чомусь, а потім вжити контрзаходів (запустити в пісочницю, віртуальну машину тощо), щоб зменшити будь-які невідомі фактори чи прорахунки, які ви зробили, вирішуючи, чи довіряти вам чи ні. .


4

З міркувань безпеки ТАК. Враховуйте, що під час завантаження було виявлено, що вузол виходу Tor тормозить двійкові файли , тоді пам’ятайте, що ваш Інтернет-провайдер може мати, а може, і не мати найменшої моралі, і що він повністю контролює ваш Інтернет-зв’язок.


Ваша скарга на ISP полягає в тому, що вони можуть змінити швидкість мого з'єднання та пріоритет та інші речі, які можуть пошкодити файли?
maxpesa

@maxpesa - Вони можуть змінювати потік, якщо хочуть. Файл не буде зіпсованим лише зміненим.
Рамхаунд

@maxpesa - Я вказував, що ваш Інтернет-провайдер знаходиться в тому ж положенні, що і вузол виходу Tor у пов'язаній статті - він має можливість контролювати те, що надходить через ваші дроти. Якщо вони захотіли, вони можуть змінити бінарні файли, які ви завантажуєте в режимі "льоту".
Майкл Коне

2
Якщо зловмисник може змінити бінарний, зловмисник може також змінити хеш. Це вимагало б більш цілеспрямованої атаки, ніж виправлення всіх двійкових файлів, але все ще дуже можливо. Хоча перевірка хешу може уникнути пошкоджень, гарантій немає. Якщо ви піклуєтесь про безпеку, перший крок - це завантажувати лише через HTTPS - особливо коли ви використовуєте проксі, як у програмі tor!
капекс

1
Щоб додати до коментаря @ kapep, ще краще перевірити, використовуючи криптографічні підписи (використовуючи ключі, розподілені через захищений канал). Таким чином зловмиснику доведеться компрометувати і сховище ключів, і сховище, щоб змінити бінарний файл.
Джонні

4

Для файлів, де цілісність є критичною, так

Я часто вважаю за потрібне, коли роблю щось, коли важливо, щоб файл мав високу цілісність.

Одним із прикладів є миготіння роутера з OpenWRT. Якщо файл пошкоджений, то цей маршрутизатор буде цегляним, і тоді мені доведеться або:

  • Замініть його (дорого)
  • Виправити це (забирає багато часу. Особливо, якщо мені потрібно спаяти послідовний кабель / JTAG)

І те й інше незручно, порівняно з простотою перевірки хешу. Тому я настійно рекомендую робити це для критичних файлів.


0

Зазвичай я намагаюся лише перевірити, чи було завантаження перервано, і я відновив його пізніше, тому що запити HTTP з компенсацією пошуку не настільки широко використовуються, тому щось дурне може статися.

У багатьох випадках завантаження - це стислий файл, який не розпаковується, якщо його зламано. Якщо це НЕ так, перевірка не є поганою ідеєю. Я можу перевірити ISO, перш ніж записати його на носій, що записується.

Перевірка його з того самого сайту, з якого я отримав, мало корисного, безпечного, як говорили інші відповіді та коментарі. Це може бути корисніше, якщо ви завантажили з дзеркала, але хеш - з оригіналу вгору. Або якщо ім'я файлу неоднозначне, і ви чомусь не впевнені, що отримали потрібну версію.

Справа в тому, що публікація хесів корисна для багатьох особливих випадків, крім просто завантаження файлу з того самого сайту, на якому розміщено хеш.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.