Способы проверки PGP-подписи программного обеспечения, загруженного на Linux

PGP (Pretty Good Privacy) — это программа, использующая криптографию с открытым ключом, предназначенная для шифрования и подписания данных во время обмена информацией. В данном руководстве мы обсудим, как проверить PGP-подпись программного обеспечения, скачанного из Интернета на системе Linux.

Пользователи Linux могут безопасно устанавливать программы через репозитории своего дистрибутива. Однако иногда требуется скачать и установить софт с веб-сайта. Как убедиться, что загруженный файл не был изменен злоумышленниками?

Некоторые разработчики программ используют PGP-инструменты, такие как GPG (GNU Privacy Guard), представляющий собой бесплатную реализацию OpenPGP стандарта. Это позволяет проверить подлинность и целостность программ с помощью GPG.

Этот процесс довольно прост.

  1. Загружается публичный ключ автора программного обеспечения в формате. asc.
  2. Вы проверяете хэш публичного ключа, чтобы убедиться в его подлинности.
  3. Добавьте корректный публичный ключ в вашу GPG-цепочку публичных ключей.
  4. Вы загружаете файл с PGP-подписью (.sig) для программного обеспечения.
  5. Для проверки PGP-подписи применяется публичный ключ. Если подпись подтверждается как подлинная, это гарантирует, что программное обеспечение не подверглось изменению.

В качестве примера мы берем VeraCrypt, чтобы продемонстрировать, как проверить PGP-подпись скачанного программного обеспечения.

Проверка подписи PGP в VeraCrypt

Несмотря на то что VeraCrypt — это программа с открытым исходным кодом, она отсутствует в репозитории Ubuntu. Установочный файл VeraCrypt для Linux можно скачать с официального сайта. Я использую настольную версию Ubuntu 20.04, поэтому скачиваю. deb файл, предназначенный для этой версии.

Читайте также:  Установка phpMyAdmin на Ubuntu 22.04 LTS с использованием Nginx (LEMP)

VeraCrypt-verify-gpg-signature-on-linux

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

wget https://www. idrix. fr/VeraCrypt/VeraCrypt_PGP_public_key. asc

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

gpg --show-keys VeraCrypt_PGP_public_key. asc

Вторая строка вывода представляет собой отпечаток ключа.

PGP открытый ключ

Если у вас установлена устаревшая версия GPG (можно проверить с помощью gpg —version), например, 1.4.20, воспользуйтесь следующей командой для вывода отпечатка.

gpg --with-fingerprint VeraCrypt_PGP_public_key. asc

Сравните его с отпечатком, размещённым на сайте VeraCrypt.

Читайте также:  Настройте свой почтовый сервер на CentOS 8/RHEL 8 с использованием SMTP-сервера Postfix

отпечаток открытого ключа GPG для VeraCrypt

Как видно, два отпечатка пальцев совпадают, что свидетельствует о корректности открытого ключа. Следовательно, вы можете добавить открытый ключ в ваш GPG-ключевой кольцо, используя:

gpg --import VeraCrypt_PGP_public_key. asc

Теперь необходимо проверить подпись файла установщика программного обеспечения с помощью приведенной ниже команды. Вам потребуется указать файл подписи (.sig) и сам файл установщика. Обратите внимание, что это отдельная подпись, что подразумевает наличие подписи и программного обеспечения в разных файлах.

gpg --verify veracrypt-1.24-Update7-Ubuntu-20.04-amd64.deb. sig veracrypt-1.24-Update7-Ubuntu-20.04-amd64.deb

Хорошая подпись.

Проверка подписи осуществляется следующим образом:

  • Подпись представляет собой хеш-код, который был зашифрован с использованием закрытого ключа разработчика программного обеспечения.
  • GPG применяет открытый ключ для декодирования хеш-кода.
  • GPG рассчитывает хэш-значение установщика VeraCrypt и производит сравнение этих двух значений.
  • Если хеш-значения идентичны, это означает, что подпись корректна и программное обеспечение не было изменено.

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

Читайте также:  Как без проблем перенаправить URL без www на URL с www (и наоборот) с помощью .htaccess

Импортирование открытого ключа из доверенного источника.

Имейте в виду, что если разработчик программного обеспечения предоставляет свой ID открытого ключа на сайте, вы можете воспользоваться следующей командой для импорта открытого ключа, чтобы избежать необходимости вручную загружать и добавлять PGP-открытый ключ в ваш ключевой ринг.

gpg —получить-ключи

Затем визуализируйте отпечаток с помощью:

gpg —отпечаток

Сравните отпечаток, полученный из вывода, с тем, который размещён на веб-сайте. Это обеспечивает большую безопасность, так как открытый ключ загружается с сервера открытых ключей, который по умолчанию настроен на hkp://keys. gnupg.net в файле.~/.gnupg/gpg.conf.Существует множество серверов открытых ключей по всему миру. У Ubuntu имеется собственный сервер ключей, а также сервер ключей предоставляет MIT.

При появлении следующей ошибки,

gpg: keyserver receive failed: No data

вы можете воспользоваться другим сервером ключей, например:

gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 0x680D16DE

Надеюсь, этот учебник был полезен для вас в проверке PGP-подписи загружаемого ПО. Если вам понравился этот материал, не забудьте подписаться на нашу бесплатную рассылку, следить за нами в Twitter или поставить лайк нашей странице в Facebook.