Все статьи

Checksum Verifier: как проверить, что файл не повреждён

В России для государственных информационных систем и любой криптографии, подлежащей сертификации ФСБ, контрольные суммы обычно вычисляют не SHA-256, а ГОСТ Р 34.11-2012 «Стрибог» — национальным стандартом хеширования, пришедшим на смену устаревшему ГОСТ Р 34.11-94. Дистрибутивы отечественных ОС (Astra Linux, «Альт») и другого сертифицированного ПО нередко публикуют суммы именно в этом алгоритме, а не в привычном SHA-256.

Почему у контрольной суммы вообще должен совпадать алгоритм

Хеш, вычисленный одним алгоритмом, нельзя сравнивать с хешем, вычисленным другим, — даже если оба они корректны сами по себе, длины и внутренняя структура отличаются, поэтому единственный способ проверки — вычислить именно тот алгоритм, в котором опубликована эталонная сумма. Для «Стрибога» большинство браузерных инструментов, включая этот, такой возможности не имеют — Web Crypto API стандартно предоставляет только SHA-семейство и MD5, а «Стрибог» требует отдельной реализации.

Чего контрольная сумма не гарантирует

Совпадение хешей подтверждает лишь то, что файл идентичен тому, из которого вычислен опубликованный хеш, — но не то, что этот оригинал безопасен или действительно происходит от заявленного источника. Если злоумышленник подменит и файл, и опубликованную контрольную сумму одновременно (например, на скомпрометированном зеркале), проверка ничего не выявит — отсюда важность подписи (например, GPG) поверх самой суммы.

Зачем это нужно

  • Убедиться, что загруженный образ дистрибутива или архив не повредился при скачивании с зеркала.
  • Быстро сравнить два больших файла без побайтового сопоставления.
  • Проверить, что резервная копия файла идентична оригиналу.

Почему иногда используют CRC32 вместо SHA-256

CRC32 намного быстрее криптографических хеш-функций, но его легко подделать намеренно — это не проблема для обнаружения случайного повреждения при передаче (для чего CRC32 и создавали), но непригодная защита от злоумышленника, который хочет подменить файл незаметно. Поэтому CRC32 до сих пор встречается в архиваторах (ZIP, RAR) и сетевых протоколах для контроля ошибок, а не там, где нужна именно криптографическая стойкость.

Попробовать инструмент