Как проверить SHA-256 контрольную сумму файла в браузере
Контрольная сумма — это короткий отпечаток, вычисленный по содержимому файла. Если хэш скачанного файла совпадает со значением, которое публикует издатель, файл побайтно совпадает с тем, что был захэширован. Если отличается хотя бы один бит, отпечаток меняется полностью. Перетащите файл в генератор хэшей, вставьте опубликованное значение, и инструмент покажет, какой алгоритм совпадает.
Генератор хэшейФайл из загрузки совпадает?Сделать бесплатноЧто доказывает контрольная сумма
Контрольная сумма выявляет изменения. Она поймает загрузку, которая прервалась на полпути, файл, повреждённый нестабильным соединением или сбоящим диском, и зеркало, которое отдаёт не ту сборку, что в оригинале. Такие ошибки распространены, и совпадение хэша их исключает.
Она не доказывает, что издатель заслуживает доверия. Допустим, злоумышленник может подменить файл на странице загрузки и одновременно изменить хэш рядом с ним. Значения совпадут, и проверка пройдёт. Контрольная сумма надёжна ровно настолько, насколько надёжен источник, откуда вы взяли хэш. Для осмысленной проверки хэш должен прийти не тем же путём, что и файл: из подписанного анонса релиза, файла с контрольными суммами и подписью GPG, из записей менеджера пакетов или с сайта издателя, адрес которого вы введёте сами. Хэш, скопированный по той же ссылке, что и файл, против целенаправленной атаки почти ничего не даёт.
Совпадение хэша также ничего не говорит о том, что делает программа. Оно подтверждает, что у вас тот файл, который захэшировал издатель. Безопасен ли этот файл, — вопрос к издателю, и ответ дают подпись, репутация источника и шаги проверки самого проекта, если они есть.
Где издатели публикуют хэши
Сначала посмотрите рядом с кнопкой загрузки. Многие проекты выводят значение SHA-256 прямо на странице загрузки. Крупные проекты часто публикуют файл, обычно с именем SHA256SUMS или похожим, со строкой на каждый файл, а иногда рядом лежит файл подписи. Некоторые платформы для программ хранят хэши в собственных метаданных. Ещё одно обычное место — README и примечания к релизу.
Обратите внимание и на название алгоритма. Строка, в которой указано SHA-256, требует хэш SHA-256, то есть 64 шестнадцатеричных символа. Значение из 32 символов — это MD5, а из 40 — SHA-1. Инструменту нужно знать, с каким алгоритмом он сравнивает, и вам тоже.
Сравните хэш за четыре шага
- Скачайте файл один раз с официальной страницы.
- Откройте генератор хэшей, выберите Файл и перетащите туда файл. Дождитесь окончания. Очень большие файлы могут обрабатываться долго и не поместиться в память браузера.
- Вставьте опубликованный хэш в поле Ожидаемый хэш, необязательно. Регистр и пробелы не учитываются, поэтому значение в верхнем регистре, скопированное со страницы, подойдёт.
- Посмотрите на результат. Инструмент покажет, какой алгоритм совпал. Если совпадений нет, не запускайте файл. Скачайте его заново. Если и вторая копия не проходит проверку, опубликованное значение и ваш файл не совпадают, и стоит спросить издателя, какое из них верное.
Если вы предпочитаете терминал, та же проверка занимает одну команду. В Linux выполните sha256sum для файла. В macOS то же делает shasum -a 256. В Windows PowerShell команда Get-FileHash -Algorithm SHA256 с путём к файлу выдаёт значение. Результат — та же шестнадцатеричная строка, что показывает инструмент.
Хэш нужен не только для сверки с опубликованным значением. Проверка на повреждения использует ту же идею, чтобы определить, повреждён ли файл, а поиск дубликатов работает так же: сравнивает хэши, чтобы найти одинаковые копии в папке.
Хэширование введённого текста
Текстовый режим вычисляет хэш того, что вы ввели или вставили. Сначала текст переводится в байты UTF-8. Текстовое поле хранит переносы строк как LF, поэтому вставленный текст хэшируется с окончаниями LF, какой бы системы он ни был. Файл, сохранённый в Windows, обычно заканчивает каждую строку как CRLF, и его байты дают другой хэш. Поэтому, если издатель приводит хэш файла, используйте режим «Файл» и хэшируйте сам файл. Если нужно увидеть, где именно две версии различаются, инструмент сравнения текстов покажет изменения рядом.
Почему MD5 и SHA-1 ненадёжны
Инструмент поддерживает MD5 и SHA-1, потому что многие старые страницы загрузки до сих пор указывают именно их. Для выявления повреждений они подходят. Случайное изменение почти никогда не даст совпадающее значение MD5 или SHA-1.
От злоумышленника они не защищают. Коллизия — это два разных входных набора с одинаковым хэшем. Коллизии MD5 теперь можно получить дёшево, поэтому ни один сценарий, связанный с безопасностью, не должен опираться на MD5. Коллизия SHA-1 была публично продемонстрирована в 2017 году, и с тех пор браузеры и центры сертификации перестали использовать SHA-1 для подписей. Если издатель предлагает только MD5 или SHA-1, попросите SHA-256 или подписанный файл с контрольными суммами. Во всех случаях, когда кто-то может намеренно подменить файл, используйте SHA-256 или более стойкий алгоритм. На момент написания ни одна известная практическая атака не ломает SHA-256. Какой алгоритм выбрать, описано в руководстве по алгоритмам.
Короткие ответы
Значит ли совпадение хэша, что файл безопасен? Оно значит, что файл — тот самый, который захэшировали. Безопасность зависит от того, пришёл ли хэш из источника, которому вы доверяете.
Могут ли два разных файла иметь одинаковый SHA-256? На практике нет. На момент написания не известно ни одного практического способа найти такую пару.
Почему хэш не совпадает после того, как я его скопировал? Сначала проверьте алгоритм. Затем посмотрите, не потерян ли символ, не лишний ли он, и не обрезана ли копия. Регистр и пробелы не учитываются, так что дело не в них.
Переведено с помощью ИИ с Английский оригинал.
Комментарии
Комментариев пока нет. Будьте первым.


