Когда вы скачиваете ISO-образ дистрибутива Linux, рядом с ним на зеркале обычно лежит небольшой текстовый файл с расширением вроде .sha256sum, .md5sum или .txt. Это файл контрольных сумм: он содержит эталонные «отпечатки» оригинальных образов. Сверив отпечаток скачанного файла с эталонным, вы за минуту узнаёте, не повредился ли образ при загрузке и не был ли подменён. В этой статье разберём, как устроены такие файлы, чем отличаются алгоритмы, как читать их содержимое и как выполнить проверку на практике.
- Зачем вообще проверять контрольную сумму
- Как устроен файл контрольных сумм
- Откуда брать эталонный файл сумм
- Проверка в Linux и macOS
- Проверка в Windows
- Что делать, если сумма не совпала
- Типичные ошибки при работе с суммами
- Частые вопросы
- Обязательно ли проверять каждый скачанный образ?
- Почему после записи образа на флешку сумма не совпадает?
- Можно ли доверять сумме, если она совпала, но взята с того же зеркала?
- Что делать, если у проекта только MD5-суммы?
- Короткий план действий
Зачем вообще проверять контрольную сумму
У проверки образа две цели, и важно различать их.
- Целостность. Большие файлы при загрузке иногда обрываются или искажаются: сбой сети, проблемы зеркала, ошибки диска. Повреждённый 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 утилиты для подсчёта сумм предустановлены. Самый удобный путь — дать программе самой прочитать файл сумм и сверить всё автоматически.
- Перейдите в каталог, где лежит образ и файл сумм: cd ~/Загрузки.
- Выполните команду: sha256sum -c SHA256SUMS (имя файла подставьте своё).
- Прочитайте результат. Строка вида имя.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, поэтому сторонние программы не обязательны.
- Откройте командную строку или PowerShell в папке с образом.
- Выполните: certutil -hashfile имя_файла.iso SHA256.
- Сравните выведенную сумму с эталонной из файла сумм.
certutil выводит сумму без имени файла и в верхнем регистре — регистр символов при сравнении не важен, hex-строки равны независимо от него. Если хочется автоматической сверки, откройте файл сумм в текстовом редакторе, скопируйте нужную строку и сравните через любой diff-инструмент либо внимательно построчно. Графические утилиты вроде 7-Zip (раздел расчёта хешей) или HashTab дают тот же результат через контекстное меню проводника.
Что делать, если сумма не совпала
Несовпадение — не повод паниковать, но и не повод игнорировать его. Действуйте по порядку:
- Перепроверьте, что сравниваете правильные строки: тот же алгоритм, тот же файл, та же архитектура и редакция образа. Ошибка «не тот файл из списка» — самая частая причина ложной тревоги.
- Убедитесь, что скачали актуальную версию файла сумм: если релиз переиздавался, старые суммы не подойдут к новому образу.
- Скачайте образ заново, желательно с другого зеркала, и проверьте снова. Единичное повреждение при передаче — самое вероятное объяснение.
- Если расхождение повторяется на разных зеркалах, а суммы взяты с официального сайта, прекратите использование файла и сообщите о проблеме в проект: возможна подмена или ошибка публикации.
Не записывайте образ на носитель и не запускайте его, пока проверка не пройдена: повреждённый установщик способен создать больше проблем, чем кажется, особенно если речь о серверном развёртывании.
Типичные ошибки при работе с суммами
- Сравнение сумм разных алгоритмов. MD5-строка никогда не совпадёт с SHA-256 — убедитесь, что считаете хеш тем же алгоритмом, которым он был опубликован.
- Проверка «самого себя». Файл сумм, лежащий на том же зеркале, что и образ, подтверждает только целостность передачи, но не подлинность.
- Игнорирование версии. Суммы относятся к конкретному релизу; после обновления образа они меняются.
- Визуальная сверка «на глаз». При длине в 64 символа глаз пропускает перестановки; лучше использовать автоматическое сравнение.
- Проверка после записи. Сумма относится к ISO-файлу, а не к флешке. После записи на носитель хеш будет другим — это нормально и не признак проблемы.
Частые вопросы
Обязательно ли проверять каждый скачанный образ?
Строго обязательно — нет. Но проверка занимает меньше минуты и экономит часы диагностики при сбоях установки. Для серверных образов и систем, где важна безопасность, пропускать её неразумно.
Почему после записи образа на флешку сумма не совпадает?
Потому что вы сравниваете разные вещи: хеш считается для исходного ISO-файла. Записанный носитель имеет другую структуру данных, и его хеш закономерно отличается. Проверяйте именно скачанный файл до записи.
Можно ли доверять сумме, если она совпала, но взята с того же зеркала?
Такая проверка подтверждает, что файл не побился при скачивании, но не защищает от подмены обоих файлов одновременно. Для уверенности в подлинности берите суммы с основного сайта проекта и, в идеале, проверяйте GPG-подпись.
Что делать, если у проекта только MD5-суммы?
Для проверки целостности этого достаточно. Если проект не публикует более стойких сумм и подписей, это скорее вопрос к его процессам выпуска, чем повод отказываться от дистрибутива, но дополнительную осторожность проявить стоит.
Короткий план действий
Главный принцип: сверяйте хеш скачанного образа с эталонной суммой самого стойкого доступного алгоритма, а эталон берите из источника, независимого от зеркала загрузки. Практический порядок такой: скачайте образ и файл сумм с официального сайта проекта, посчитайте SHA-256 локально (sha256sum -c в Linux, certutil в Windows), убедитесь в ответе «OK» и только потом записывайте носитель. При несовпадении сначала исключите ошибку с версией и алгоритмом, затем перекачайте файл с другого зеркала. Если планируете использовать образ в ответственной среде, добавьте к этому проверку GPG-подписи файла сумм — это единственный способ убедиться, что сами эталоны не были подменены.
