Как читать файлы контрольных сумм дистрибутивов Linux и проверять образы

Когда вы скачиваете ISO-образ дистрибутива Linux, рядом с ним на зеркале обычно лежит небольшой текстовый файл с расширением вроде .sha256sum, .md5sum или .txt. Это файл контрольных сумм: он содержит эталонные «отпечатки» оригинальных образов. Сверив отпечаток скачанного файла с эталонным, вы за минуту узнаёте, не повредился ли образ при загрузке и не был ли подменён. В этой статье разберём, как устроены такие файлы, чем отличаются алгоритмы, как читать их содержимое и как выполнить проверку на практике.

Зачем вообще проверять контрольную сумму

У проверки образа две цели, и важно различать их.

  • Целостность. Большие файлы при загрузке иногда обрываются или искажаются: сбой сети, проблемы зеркала, ошибки диска. Повреждённый ISO может даже записаться на флешку, но установка сломается на полпути — и вы потратите часы на поиск причины там, где её нет.
  • Подлинность. Если злоумышленник подменил файл на зеркале или в цепочке доставки, сумма тоже изменится. Совпадение с эталоном означает, что перед вами именно тот байт-в-байт образ, который выпустил разработчик.

Важный нюанс: сама по себе сверка сумм защищает от случайного повреждения полностью, а от злонамеренной подмены — только если сам файл сумм получен из доверенного источника и дополнительно подтверждён цифровой подписью. Об этом ниже.

Как устроен файл контрольных сумм

Файл — это обычный текст, который можно открыть любым редактором. Типичная строка выглядит так:

d3b07384d113edec49eaa6238ad5ff00c42b9e1a ubuntu-24.04-desktop-amd64.iso

Структура всегда одинаковая: сначала длинная шестнадцатеричная строка (сама контрольная сумма), затем два пробела (или звёздочка после пробела в некоторых форматах), затем имя файла. Звёздочка означает бинарный режим подсчёта; для образов она роли практически не играет.

Длина строки подсказывает алгоритм:

Алгоритм Длина суммы Типичное имя файла Статус
MD5 32 символа MD5SUMS, .md5 Устарел для защиты от подделки, годится для проверки целостности
SHA-1 40 символов SHA1SUMS Считается устаревшим, постепенно выводится из использования
SHA-256 64 символа SHA256SUMS, .sha256 Современный стандарт для образов дистрибутивов
SHA-512 128 символов SHA512SUMS Более длинный вариант того же семейства

Если в одном каталоге лежат несколько файлов сумм, ориентируйтесь на самый стойкий доступный — обычно это SHA-256. MD5 и SHA-1 криптографически скомпрометированы: подобрать другой файл с тем же MD5 технически возможно, поэтому для проверки подлинности они ценности почти не имеют, хотя от обрыва связи по-прежнему спасают.

Откуда брать эталонный файл сумм

Правило простое: файл сумм должен приходить не с того же зеркала, что и образ, а из более доверенного места. Логика такая: если зеркало скомпрометировано целиком, злоумышленник подменит и образ, и сумму рядом с ним — сверка ничего не даст.

  • Скачивайте SHA256SUMS с основного сайта проекта, а не со случайного зеркала.
  • Ищите рядом файл подписи (.gpg, .sig) — это цифровая подпись файла сумм ключом разработчиков.
  • Некоторые проекты публикуют суммы прямо на странице загрузки или в анонсе релиза — это тоже надёжный источник.
  • Если проект публикует свой ключ подписи, сверьте его отпечаток с тем, что указан на официальном сайте или в независимых источниках.

Проверка подписи — отдельный шаг, требующий установленного GnuPG и импортированного ключа проекта. Для большинства бытовых задач достаточно скачать суммы с основного сайта; полная цепочка с GPG нужна, когда цена ошибки высока — например, если образ будет использоваться на сервере или в инфраструктуре.

Проверка в Linux и macOS

В Linux утилиты для подсчёта сумм предустановлены. Самый удобный путь — дать программе самой прочитать файл сумм и сверить всё автоматически.

  1. Перейдите в каталог, где лежит образ и файл сумм: cd ~/Загрузки.
  2. Выполните команду: sha256sum -c SHA256SUMS (имя файла подставьте своё).
  3. Прочитайте результат. Строка вида имя.iso: OK означает совпадение; FAILED — файл отличается от эталона.

Если в файле сумм перечислены образы, которых у вас нет локально, утилита сообщит «no such file or directory» — это нормально, важна только строка про ваш файл. Можно проверить и один файл вручную: sha256sum ubuntu-24.04-desktop-amd64.iso, а затем сравнить выведенную строку с эталонной глазами. На macOS используйте shasum -a 256 файл.iso.

Полезный приём: сравнивайте суммы программно, а не визуально. Длинные hex-строки легко перепутать, поэтому конструкция echo «эталонная_сумма файл.iso» | sha256sum -c — надёжнее ручной сверки.

Проверка в Windows

В современных версиях Windows есть встроенная утилита certutil, поэтому сторонние программы не обязательны.

  1. Откройте командную строку или PowerShell в папке с образом.
  2. Выполните: certutil -hashfile имя_файла.iso SHA256.
  3. Сравните выведенную сумму с эталонной из файла сумм.

certutil выводит сумму без имени файла и в верхнем регистре — регистр символов при сравнении не важен, hex-строки равны независимо от него. Если хочется автоматической сверки, откройте файл сумм в текстовом редакторе, скопируйте нужную строку и сравните через любой diff-инструмент либо внимательно построчно. Графические утилиты вроде 7-Zip (раздел расчёта хешей) или HashTab дают тот же результат через контекстное меню проводника.

Что делать, если сумма не совпала

Несовпадение — не повод паниковать, но и не повод игнорировать его. Действуйте по порядку:

  1. Перепроверьте, что сравниваете правильные строки: тот же алгоритм, тот же файл, та же архитектура и редакция образа. Ошибка «не тот файл из списка» — самая частая причина ложной тревоги.
  2. Убедитесь, что скачали актуальную версию файла сумм: если релиз переиздавался, старые суммы не подойдут к новому образу.
  3. Скачайте образ заново, желательно с другого зеркала, и проверьте снова. Единичное повреждение при передаче — самое вероятное объяснение.
  4. Если расхождение повторяется на разных зеркалах, а суммы взяты с официального сайта, прекратите использование файла и сообщите о проблеме в проект: возможна подмена или ошибка публикации.

Не записывайте образ на носитель и не запускайте его, пока проверка не пройдена: повреждённый установщик способен создать больше проблем, чем кажется, особенно если речь о серверном развёртывании.

Типичные ошибки при работе с суммами

  • Сравнение сумм разных алгоритмов. MD5-строка никогда не совпадёт с SHA-256 — убедитесь, что считаете хеш тем же алгоритмом, которым он был опубликован.
  • Проверка «самого себя». Файл сумм, лежащий на том же зеркале, что и образ, подтверждает только целостность передачи, но не подлинность.
  • Игнорирование версии. Суммы относятся к конкретному релизу; после обновления образа они меняются.
  • Визуальная сверка «на глаз». При длине в 64 символа глаз пропускает перестановки; лучше использовать автоматическое сравнение.
  • Проверка после записи. Сумма относится к ISO-файлу, а не к флешке. После записи на носитель хеш будет другим — это нормально и не признак проблемы.

Частые вопросы

Обязательно ли проверять каждый скачанный образ?

Строго обязательно — нет. Но проверка занимает меньше минуты и экономит часы диагностики при сбоях установки. Для серверных образов и систем, где важна безопасность, пропускать её неразумно.

Почему после записи образа на флешку сумма не совпадает?

Потому что вы сравниваете разные вещи: хеш считается для исходного ISO-файла. Записанный носитель имеет другую структуру данных, и его хеш закономерно отличается. Проверяйте именно скачанный файл до записи.

Можно ли доверять сумме, если она совпала, но взята с того же зеркала?

Такая проверка подтверждает, что файл не побился при скачивании, но не защищает от подмены обоих файлов одновременно. Для уверенности в подлинности берите суммы с основного сайта проекта и, в идеале, проверяйте GPG-подпись.

Что делать, если у проекта только MD5-суммы?

Для проверки целостности этого достаточно. Если проект не публикует более стойких сумм и подписей, это скорее вопрос к его процессам выпуска, чем повод отказываться от дистрибутива, но дополнительную осторожность проявить стоит.

Короткий план действий

Главный принцип: сверяйте хеш скачанного образа с эталонной суммой самого стойкого доступного алгоритма, а эталон берите из источника, независимого от зеркала загрузки. Практический порядок такой: скачайте образ и файл сумм с официального сайта проекта, посчитайте SHA-256 локально (sha256sum -c в Linux, certutil в Windows), убедитесь в ответе «OK» и только потом записывайте носитель. При несовпадении сначала исключите ошибку с версией и алгоритмом, затем перекачайте файл с другого зеркала. Если планируете использовать образ в ответственной среде, добавьте к этому проверку GPG-подписи файла сумм — это единственный способ убедиться, что сами эталоны не были подменены.

PEFile.ru