MD5, SHA-1 чи SHA-256: який хеш обрати для завантажень
Для перевірки завантаження використовуйте SHA-256 або SHA-512, щойно видавець їх пропонує. MD5 і SHA-1 досі помічають випадкові пошкодження, наприклад обірване завантаження, але дослідники показали, що два різні файли можна створити так, щоб вони мали однаковий хеш MD5 чи SHA-1. Збіг за цими алгоритмами тому не може довести, що файл саме той, який створив видавець. Хеш є відбитком, а не шифруванням, і має значення лише тоді, коли він походить із джерела, якому ви довіряєте.
Генератор хешівЧи збігається мій файл?БезкоштовноЩо робить хеш, а чого не робить
Хеш-функція перетворює дані будь-якого розміру на відбиток фіксованої довжини. Той самий вхід завжди дає той самий відбиток, а зміна одного байта дає зовсім інший. Тому хеш корисний для порівняння: якщо відбиток вашої копії збігається з опублікованим, обидва файли майже напевно однакові.
Хеш не є шифруванням. Його не можна обернути, щоб відновити файл, і для нього не потрібен ключ. Він нічого не приховує, і сам по собі не доводить, хто створив файл. Контрольна сума — це просто хеш, який видавець публікує поруч із завантаженням, щоб ви могли порівняти.
Чотири поширені варіанти
| Алгоритм | Довжина результату | Для чого використовувати |
|---|---|---|
| MD5 | 128 біт, 32 шістнадцяткові символи | Лише для виявлення випадкових пошкоджень |
| SHA-1 | 160 біт, 40 шістнадцяткових символів | Застарілі перевірки; для безпеки не використовуйте |
| SHA-256 | 256 біт, 64 шістнадцяткові символи | Звичайний вибір для завантажень |
| SHA-512 | 512 біт, 128 шістнадцяткових символів | Та сама родина, але з довшим результатом |
Чому MD5 і SHA-1 недостатні
Колізія означає, що два різні вхідні дані мають однаковий хеш. Колізії в MD5 відомі з 2004 року. У 2017 році дослідники опублікували практичну колізію SHA-1: два різні PDF-файли мають один хеш.
Для завантажень це важливо, бо зловмисник, який контролює файл, може створити шкідливу версію з таким самим хешем MD5 чи SHA-1, як в оригіналу. Якщо видавець наводить лише MD5 або SHA-1, збіг уже не доводить, що файл справжній. Власні часті запитання генератора хешів підкреслюють те саме: для всього, що стосується безпеки, використовуйте SHA-256 або SHA-512.
Станом на момент написання не відомо жодної практичної колізії SHA-256, тому саме вона є звичайним вибором. Посібник зі звірення контрольної суми SHA-256 описує кроки.
Оберіть правильний варіант
- Якщо видавець пропонує SHA-256 або SHA-512, використовуйте його, а MD5 і SHA-1 для безпеки відкладіть убік.
- Якщо пропонують лише MD5 або SHA-1, все одно перевірте їх за допомогою генератора хешів. Він досі помічає пошкоджене чи неповне завантаження. Збіг вважайте ознакою «не пошкоджено», а не «справжній».
- Якщо хеша немає, цілісність таким способом перевірити не можна. Завантажуйте зі官方 сторінки через HTTPS, а якщо проєкт публікує підписані файли контрольних сум, перевірте підпис.
Генератор хешів одночасно обчислює MD5, SHA-1, SHA-256, SHA-384 і SHA-512 для тексту або для одного файлу. Файл читається у вашому браузері, і нічого не вивантажується. Вставте хеш видавця в поле Expected hash. Перед порівнянням інструмент видаляє пробіли й ігнорує регістр, тож хеш, надрукований великими літерами або групами, також збігатиметься. Дуже великі файли можуть навантажувати пам'ять браузера, тоді скористайтеся командним інструментом, наприклад sha256sum у Linux або shasum -a 256 на Mac.
Що означає збіг
Збіг хешів означає, що ваша копія майже напевно ідентична файлу, для якого обчислено хеш. Він не говорить, хто виконав обчислення, і не гарантує, що хешований файл був саме тим, що видавець хотів опублікувати. Для цього джерело важливіше за алгоритм. Якщо хеш узято зі сторінки релізу самого видавця, і ви зайшли на неї напряму, а не за посиланням у повідомленні, збіг є надійним доказом. Якщо хеш узято з коментаря, дзеркала чи форуму, вважайте його неперевіреним, доки не знайдете його на довіреній сторінці.
Контрольна сума потребує довіреного джерела
Контрольна сума, що лежить на тому самому сервері, що й файл, доводить лише те, що копія збігається з тим, що зберігає цей сервер. Якщо зловмисник замінить файл, він може замінити й контрольну суму поруч. Контрольна сума допомагає, коли походить з окремого джерела, наприклад із підписаних приміток до релізу проєкту або зі сторінки, до якої ви дійшли незалежно від посилання на завантаження.
Хеші для паролів інші
Хешування також використовується для зберігання паролів, але там потрібен повільний хеш, створений саме для паролів, з унікальною сіллю для кожного. Швидкий хеш на кшталт SHA-256 там не підходить. Для завантажень завдання полягає в порівнянні, і SHA-256 з ним справляється добре.
Окремі випадки
- Регістр. Шістнадцяткові літери від A до F однакові в будь-якому регістрі, тож порівнюйте, не зважаючи на великі й малі літери.
- Скорочені хеші. Деякі сайти друкують лише початок хешу. Короткий збіг мало що доводить, тому порівнюйте все значення повністю.
- Кілька файлів. Деякі проєкти публікують один файл контрольних сум для всього релізу. Знайдіть рядок з точною назвою файлу, бо збіг у рядку іншого файлу нічого не доводить.
Переклад з Англійський оригінал за допомогою ШІ.
Коментарі
Коментарів поки немає. Будьте першим.


