Гид по технологиям

Как проверить контрольную сумму ISO Linux и убедиться, что образ не подменён

9 min read Безопасность Обновлено 23 Dec 2025
Проверка контрольной суммы ISO Linux
Проверка контрольной суммы ISO Linux

Как проверить контрольную сумму ISO Linux и убедиться, что образ не подменён

Краткие ссылки

  • How This Process Works

  • How to Verify a Checksum On Linux

  • How to Verify a Checksum On Windows

Месяцем ранее сайт Linux Mint был взломан, и туда загрузили модифицированный ISO с бэкдором. Проблему быстро исправили, но инцидент подчёркивает важность проверки ISO перед использованием. Ниже описаны практические шаги и рекомендации.

Как это работает

Коротко — процесс проверки ISO состоит из следующих шагов:

  1. Загрузите ISO образ с сайта дистрибутива или с зеркала/торрента.
  2. Скачайте файл с контрольными суммами (обычно TXT) и его цифровую подпись (часто .gpg или .asc).
  3. Получите публичный PGP-ключ подписавшего лица или проекта (через сайт или отдельный keyserver).
  4. С помощью PGP-ключа проверьте цифровую подпись файла с контрольными суммами — это подтверждает, что файл с суммами не подменён.
  5. Сгенерируйте контрольную сумму для скачанного ISO и сравните её с официальным значением в TXT — это подтверждает целостность образа.

Общие замечания:

  • Типы контрольных сумм: MD5 (устарел), SHA-1 (редко), SHA-256 (стандарт для современных дистрибутивов). Мы в основном используем SHA-256.
  • Если дистрибутив не подписывает файлы с контрольными суммами, вы выполняете только шаги 1, 2 и 5 — это менее надёжно, так как злоумышленник может подменить и ISO, и файл сумм.
  • PGP повышает уверенность, но не даёт стопроцентной гарантии: если атакующий может подменить как ISO, так и публичный ключ на том же сервере, проблема остаётся. Поэтому по возможности получайте отпечаток ключа по отдельному каналу (официальный сайт через HTTPS, профиль разработчика в соцсетях с верификацией, зеркала).

Подробности модели доверия PGP

Ниже кратко описание важных терминов:

  • Подпись (signature): криптографический объём данных, созданный приватным ключом, подтверждающий авторство/целостность файла.
  • Публичный ключ (public key): ключ, которым проверяют подпись; приватный — держит автор.
  • Отпечаток ключа (fingerprint): хеш-строка, дающая краткое представление ключа; сравните её с источником дистрибутива.
  • Web of Trust: модель, где пользователи подтверждают ключи друг друга; для большинства пользователей достаточно сверить отпечаток с сайтом дистрибутива.

Важно: подтверждение «good signature» указывает, что подпись математически корректна для указанного ключа. Но доверять ключу — отдельная задача: убедитесь, что отпечаток ключа соответствует тому, что публикует дистрибутив.

Как проверить контрольную сумму на Linux

В качестве примера используем Linux Mint. Процедура применима к большинству дистрибутивов с незначительными изменениями.

Шаги:

  1. Скачайте ISO, файл с суммами и файл подписи. Например: sha256sum.txt и sha256sum.txt.gpg. Сохраняйте файлы в одну папку (обычно ~/Downloads).

  2. Получите PGP-ключ проекта. Для Linux Mint ключ размещён на сервере Ubuntu Keyserver; пример команды:

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 0FF405B2

Обратите внимание: сайт дистрибутива обычно указывает нужный KEYID или полную ссылку.

Загрузка PGP-ключа из ключевого сервера

  1. Перейдите в папку с загруженными файлами:
cd ~/Downloads
  1. Проверьте подпись файла с контрольными суммами:
gpg --verify sha256sum.txt.gpg sha256sum.txt

Ожидаемый результат: gpg сообщит «good signature», укажет идентификатор ключа и имя владельца (если подпись подписана явно). Если ключ не находится в «вебе доверия», gpg может предупредить, что ключ не «trusted», но это не означает, что подпись неправильная — это про модель доверия.

Результат проверки подписи GPG

  1. Если подпись хорошая, проверьте контрольную сумму самого ISO:
sha256sum --check sha256sum.txt

Программа попытается найти файлы, перечисленные в sha256sum.txt, и сообщит OK для совпавших. Если вы скачали только один образ, другие строки покажут «no such file or directory» — это нормально.

Результат проверки контрольной суммы

  1. Альтернативный способ — вычислить хеш вручную и сравнить визуально:
sha256sum /path/to/file.iso
# или для MD5
md5sum /path/to/file.iso

Сравните полученную строку с тем, что в официальном файле.

Советы для продвинутых пользователей:

  • Получите отпечаток ключа и сверяйте его с отпечатком, опубликованным на официальном сайте через HTTPS.
  • Для автоматизации впишите проверки в скрипт и запускайте в CI перед распространением образа в организации.

Как проверить контрольную сумму на Windows

Windows не содержит встроенных средств для проверки PGP-подписей и некоторых чексумм, но есть свободные инструменты. Мы рассмотрим Gpg4win (с Kleopatra) и PowerShell.

  1. Скачайте Gpg4win: набор инструментов для работы с OpenPGP на Windows. В его состав входит Kleopatra — GUI для управления ключами.

  2. Скачайте файл ключа (например, fedora.gpg) и файл с контрольными суммами с сайта дистрибутива.

  3. В Kleopatra: File > Import Certificates — выберите скачанный .gpg-файл.

Импорт ключа в Kleopatra

  1. Проверка подписи файла с суммами: File > Decrypt/Verify Files. Выберите sha256sum.txt.gpg или аналог.
  • Снимите галочку «Input file is a detached signature» если подпись встроенная.
  • Нажмите Decrypt/Verify.

Результат проверки подписи в Kleopatra

Вердикт от Kleopatra может содержать предупреждение об отсутствии доверия: это нормально, если вы не строили web of trust. Тем не менее, вы увидите, каким ключом была создана подпись, и сможете сверить отпечаток.

  1. Если автоматическая проверка контрольных сумм не срабатывает, создайте собственный хеш для ISO: Settings > Configure Kleopatra > Crypto Operations > File Operations — выберите sha256sum или md5sum в зависимости от формата.

  2. Или используйте PowerShell для получения SHA-256 без GUI:

Get-FileHash -Path C:\path\to\file.iso -Algorithm SHA256

Скопируйте результат и сравните с официальным значением.

Если вы предпочитаете полностью GUI-подход, Kleopatra позволяет создать файл со свёрнутой суммой и сравнить его с загруженным.

Сравнение контрольных сумм в Kleopatra

Генерация и сравнение контрольной суммы в Kleopatra

Типовые ошибки и как их исправлять

  • gpg: Can’t check signature: No public key — импортируйте нужный ключ (gpg –recv-keys KEYID), либо скачайте .gpg с сайта дистрибутива.
  • gpg сообщает bad signature — файл подписи или файл сумм был подменён; не доверяйте ISO и повторно проверьте источники.
  • sha256sum сообщает FAILED или хеш не совпадает — скачайте ISO повторно с другого зеркала или проверьте целостность сети.
  • Если Kleopatra не распознаёт структуру checksum-файла — проверьте формат (иногда дистрибутив использует нестандартный заполненный формат). Создайте сравниваемый файл вручную.

Рекомендации:

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

Когда проверка не даст защиты

  • Злоумышленник контролирует и основной сайт дистрибутива, и сервер ключей — тогда подпись и ключ могут быть подменены.
  • Ключ владельца проекта скомпрометирован — подписи будут валидны, но злоумышленник подписывает вредоносные образы.
  • Вы доверяете ключу, сравнив только имя владельца, но не сверили отпечаток — это слабая проверка.

В таких сценариях нужны дополнительные меры: многоканальное подтверждение отпечатков (социальные сети проекта, зеркала, публичные зеркала Git), организация внутренней проверки и использование hardware root of trust (TPM) и secure boot при установке.

Практическое руководство — пошаговый SOP

  1. Скачайте ISO, файл сумм и файл подписи в одну папку.
  2. Получите публичный ключ проекта через указанный источник (HTTPS-страница дистрибутива, keyserver) и импортируйте его.
  3. Проверьте подпись файла сумм: gpg –verify подпись файл_сумм.
  4. Сверьте отпечаток ключа с опубликованным отпечатком на официальном ресурсе.
  5. Выполните sha256sum –check файл_сумм и убедитесь, что ваш ISO имеет статус OK.
  6. Если шаги выполнены успешно, образ можно использовать; если нет — не устанавливайте и сообщите об инциденте/запросите другой источник.

Критерии приёмки

  • Подпись контрольного файла валидна (gpg сообщает good signature).
  • Отпечаток ключа совпадает с официальным источником.
  • sha256sum сообщает OK для загруженного ISO.

Чек-лист перед установкой ISO

  • ISO скачан с официального зеркала или проверенного зеркала.
  • Загружен файл контрольных сумм и файл подписи (если доступно).
  • Импортирован публичный ключ проекта.
  • Подпись файла с суммами проверена и признана корректной.
  • Отпечаток ключа сверен с официальным источником.
  • Контрольная сумма ISO совпадает с официальной.
  • Выполнено резервное копирование важных данных перед установкой.

Шпаргалка команд

Linux / macOS:

# Загрузить ключ по KEYID
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 0FF405B2

# Провести верификацию подписи
gpg --verify sha256sum.txt.gpg sha256sum.txt

# Проверить ISO по списку сумм
sha256sum --check sha256sum.txt

# Получить sha256 одной команды
sha256sum /path/to/file.iso

# macOS: альтернатива
shasum -a 256 /path/to/file.iso

Windows (PowerShell):

# Получить sha256 в PowerShell
Get-FileHash -Path C:\path\to\file.iso -Algorithm SHA256

Gpg4win/Kleopatra используется через GUI, но эквиваленты команд gpg доступны и в комплекте.

Рольовые чек-листы

Обычный пользователь:

  • Скачал ISO и файл сумм.
  • Проверил sha256 локально и сравнил с официальным текстом.
  • Не установил, если сумм нет или они не совпадают.

Системный администратор:

  • Автоматизировал проверку образов в CI/скриптах развертывания.
  • Имеет внутренний репозиторий с проверенными образами.
  • Обеспечивает многоканальную проверку отпечатков ключей разработчиков.

Менеджер зеркала:

  • Поддерживает HTTPS и RSS/способ уведомления об изменениях.
  • Делегирует публикацию ключей на отдельный защищённый сервер.

Ментальные модели и эвристики

  • Всегда предполагайте, что публичный ресурс может быть скомпрометирован — используйте слои проверки.
  • «Подпись + проверенный отпечаток + совпадение суммы» — минимальная конфигурация доверия для установки.
  • Не игнорируйте предупреждения GPG об отсутствии доверия — они сигнализируют об отсутствии внешнего подтверждения, а не о математической ошибке.

Причины несоответствия и способы реакции

  • Несовпадение сумм: перекачайте файл, попробуйте другое зеркало, свяжитесь с разработчиками дистрибутива.
  • Отсутствие ключа: скачайте ключ по указанному KEYID или с официального сайта.
  • Подмена ключа на сервере: сверяйте отпечатки по независимым каналам.

Decision flowchart

flowchart TD
  A[Начать: есть ISO и файл сумм?] -->|нет| Z[Скачать файлы]
  A --> B[Есть файл подписи?]
  B -->|да| C[Импортировать публичный ключ]
  C --> D[Проверить подпись файла сумм]
  D -->|good signature| E[Сверить отпечаток ключа]
  E -->|совпадает| F[Проверить sha256sum]
  F -->|OK| G[Использовать ISO]
  F -->|не OK| H[Не использовать; перекачать/уведомить]
  D -->|bad signature| H
  B -->|нет| I[Проверить sha256sum напрямую]
  I -->|совпадает| G
  I -->|не совпадает| H

Риск-матрица и смягчения

  • Подмена ISO на зеркале — риск: средний; смягчение: подпись + сверка сумм.
  • Компрометация ключа — риск: высокий; смягчение: многоканальная верификация отпечатка, уведомления от проекта.
  • Человеческая ошибка (не проверил) — риск: высокий; смягчение: автоматизация проверок, обучение персонала.

Примеры альтернативных инструментов

  • apg/gpg2 — альтернативы gpg в некоторых дистрибутивах.
  • PowerShell Get-FileHash — для Windows.
  • sigtool, rhash — утилиты для проверки разных типов сумм.
  • OpenSSL — при необходимости может посчитать дайджест, но удобнее использовать специфичные утилиты.

Миграция и совместимость

  • Старые образы могут использовать MD5 — учитывайте это при выборе алгоритма в настройках Kleopatra.
  • Для CI/CD используйте контейнерные образы с предустановленным gpg и утилитами хеширования для совместимости.

Примечания по локальным зеркалам и особенностям региона

  • Используйте зеркала, поддерживающие HTTPS и имеющие репутацию. Зеркала, не использующие HTTPS, повышают риск MITM‑атак.
  • В случае сомнений получайте ключи и отпечатки через официальные страницы проекта или авторитетные каналы.

Краткое резюме

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

Image Credit: Eduardo Quagliato on Flickr

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Организация разговоров в ChatGPT с ChatGPT Folders
Расширения

Организация разговоров в ChatGPT с ChatGPT Folders

Запретить сообщения Facebook в Instagram
Социальные сети

Запретить сообщения Facebook в Instagram

Как перенести контакты на новый Android
Android.

Как перенести контакты на новый Android

Резюме LinkedIn: как написать, чтобы вас заметили
Карьера

Резюме LinkedIn: как написать, чтобы вас заметили

Позиционирование изображений в Word — полный гид
Microsoft Word

Позиционирование изображений в Word — полный гид

Создать папку в Git Bash и открыть в VS Code
Разработка

Создать папку в Git Bash и открыть в VS Code