PGP (Pretty Good Privacy) — это программа, использующая криптографию с открытым ключом, предназначенная для шифрования и подписания данных во время обмена информацией. В данном руководстве мы обсудим, как проверить PGP-подпись программного обеспечения, скачанного из Интернета на системе Linux.
Пользователи Linux могут безопасно устанавливать программы через репозитории своего дистрибутива. Однако иногда требуется скачать и установить софт с веб-сайта. Как убедиться, что загруженный файл не был изменен злоумышленниками?
Некоторые разработчики программ используют PGP-инструменты, такие как GPG (GNU Privacy Guard), представляющий собой бесплатную реализацию OpenPGP стандарта. Это позволяет проверить подлинность и целостность программ с помощью GPG.
Этот процесс довольно прост.
- Загружается публичный ключ автора программного обеспечения в формате. asc.
- Вы проверяете хэш публичного ключа, чтобы убедиться в его подлинности.
- Добавьте корректный публичный ключ в вашу GPG-цепочку публичных ключей.
- Вы загружаете файл с PGP-подписью (.sig) для программного обеспечения.
- Для проверки PGP-подписи применяется публичный ключ. Если подпись подтверждается как подлинная, это гарантирует, что программное обеспечение не подверглось изменению.
В качестве примера мы берем VeraCrypt, чтобы продемонстрировать, как проверить PGP-подпись скачанного программного обеспечения.
Содержание статьи
Проверка подписи PGP в VeraCrypt
Несмотря на то что VeraCrypt — это программа с открытым исходным кодом, она отсутствует в репозитории Ubuntu. Установочный файл VeraCrypt для Linux можно скачать с официального сайта. Я использую настольную версию Ubuntu 20.04, поэтому скачиваю. deb файл, предназначенный для этой версии.

На странице загрузки VeraCrypt доступен PGP публичный ключ и ссылка для загрузки PGP подписи. Нажмите на ссылки, чтобы скачать эти два файла. Для получения PGP публичного ключа VeraCrypt выполните следующую команду.
wget https://www. idrix. fr/VeraCrypt/VeraCrypt_PGP_public_key. asc
Прежде чем выполнять какие-либо действия с публичным ключом, важно удостовериться в его подлинности, проверив его отпечаток. Для отображения отпечатка ключа воспользуйтесь командой, приведенной ниже.
gpg --show-keys VeraCrypt_PGP_public_key. asc
Вторая строка вывода представляет собой отпечаток ключа.

Если у вас установлена устаревшая версия GPG (можно проверить с помощью gpg —version), например, 1.4.20, воспользуйтесь следующей командой для вывода отпечатка.
gpg --with-fingerprint VeraCrypt_PGP_public_key. asc
Сравните его с отпечатком, размещённым на сайте 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 указывает на то, что подпись некорректна, это свидетельствует о том, что файл установщика программы был изменен или поврежден.
Импортирование открытого ключа из доверенного источника.
Имейте в виду, что если разработчик программного обеспечения предоставляет свой 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.

