
PGP (Pretty Good Privacy) – криптографический стандарт для шифрования и цифровой подписи сообщений. Код подтверждения в PGP часто представляет собой зашифрованное сообщение, которое требует расшифровки с помощью приватного ключа. Без правильного подхода его чтение может вызвать затруднения, особенно если вы работаете с инструментами вроде GnuPG или Kleopatra. В этом руководстве разберём процесс пошагово, избегая типичных ошибок.
Для расшифровки PGP-кода потребуется: установленный GnuPG (версия 2.2.x или новее), приватный ключ, соответствующий открытому ключу отправителя, и само зашифрованное сообщение. Если код пришёл в формате .asc или .pgp, его нужно сохранить в текстовый файл. Пример содержимого:
——BEGIN PGP MESSAGE——
Version: GnuPG v2
hQEMAx5Jz5Jz5Jz5AQf+Jv…
——END PGP MESSAGE——
Перед началом убедитесь, что приватный ключ импортирован в связку ключей GnuPG. Проверить это можно командой gpg —list-secret-keys. Если ключ отсутствует, импортируйте его из файла или запросите у владельца. Без корректного ключа расшифровка невозможна.
Альтернатива командной строке – графические интерфейсы. В Kleopatra (часть Gpg4win) выберите «Расшифровать/проверить», загрузите файл и введите пароль. Программа автоматически отобразит содержимое. Обратите внимание: некоторые PGP-сообщения могут содержать вложенные файлы, которые потребуют дополнительного сохранения.
Где найти PGP код подтверждения в письме или сообщении
PGP код подтверждения чаще всего скрыт в теле письма или сообщения, но его расположение зависит от отправителя. В большинстве случаев он находится в одном из трёх мест: в тексте письма, в приложенном файле или в заголовках сообщения. Если письмо отправлено через автоматизированную систему (например, GitHub, ProtonMail или Keybase), код обычно выделен отдельным блоком или помечен как «Verification Code» или «PGP Signature».
В рукописных письмах или сообщениях от частных лиц код может быть встроен в текст без явных меток. Ищите строки, начинающиеся с -----BEGIN PGP SIGNED MESSAGE----- или -----BEGIN PGP SIGNATURE-----. Эти маркеры указывают на начало зашифрованного блока, внутри которого и содержится код подтверждения. Если сообщение подписано, но не зашифровано, код будет виден в открытом виде после строки Hash: SHA256 или аналогичной.
- В письмах от сервисов (например, Bitwarden, Signal, Tutanota) код часто размещён в конце сообщения под заголовком «Код подтверждения» или «Verification Code».
- В мессенджерах (Telegram, WhatsApp) код может быть отправлен отдельным сообщением или вложен в ответ на запрос.
- В GitHub код подтверждения для коммитов или релизов отображается в разделе «Verified» рядом с подписью.
Если письмо содержит вложение с расширением .asc или .sig, это PGP-подпись. Откройте файл в текстовом редакторе – код подтверждения будет внутри блока между -----BEGIN PGP SIGNATURE----- и -----END PGP SIGNATURE-----. Для проверки используйте команду gpg --verify файл.asc в терминале.
В некоторых случаях код подтверждения генерируется динамически и отправляется только при запросе. Например, при регистрации на форумах или в закрытых чатах (Matrix, Element) код может приходить в ответ на команду /verify или после нажатия кнопки «Подтвердить». Проверяйте историю переписки или уведомления в приложении.
- Откройте письмо или сообщение в исходном виде (в Gmail – «Показать оригинал», в Thunderbird – «Просмотр → Исходный код сообщения»).
- Найдите заголовок
Content-Type: multipart/signed– это признак PGP-подписи. - Прокрутите до раздела с
application/pgp-signature– там будет сам код.
Если код не виден, возможно, сообщение зашифровано полностью. В таком случае используйте команду gpg --decrypt файл.pgp для расшифровки. Для работы с зашифрованными письмами в почтовых клиентах (например, Thunderbird с Enigmail) потребуется предварительно импортировать открытый ключ отправителя.
В редких случаях код подтверждения может быть скрыт в метаданных письма. Проверьте заголовки X-PGP-Sig или OpenPGP через инструменты анализа почты (например, mailheader.org). Если код не найден ни в одном из перечисленных мест, запросите повторную отправку у отправителя с указанием формата (например, «пришлите код в виде текста, а не подписи»).
Какие инструменты нужны для расшифровки PGP кода
Для работы с PGP-кодом потребуется специализированное программное обеспечение, поддерживающее стандарт OpenPGP. Наиболее распространённые инструменты: GnuPG (GPG) – кроссплатформенная утилита с открытым исходным кодом, доступная для Linux, macOS и Windows; Kleopatra – графический интерфейс для GPG, интегрированный в пакет Gpg4win для Windows; и GPG Suite для macOS, включающий удобный менеджер ключей. Для мобильных устройств подойдут OpenKeychain (Android) или iPGMail (iOS), но их функциональность ограничена по сравнению с десктопными решениями.
Помимо базового ПО, понадобится приватный ключ, соответствующий публичному ключу, которым был зашифрован код подтверждения. Ключ должен храниться в защищённом формате (например, `.asc` или `.gpg`) и быть импортирован в используемую программу. Если ключ защищён парольной фразой, её потребуется ввести при расшифровке. Для автоматизации процесса в командной строке можно использовать команды `gpg —decrypt файл.txt.asc` или `gpg —output расшифрованный_файл —decrypt файл.pgp`, где `файл.txt.asc` – зашифрованное сообщение.
В корпоративных средах часто применяются плагины для почтовых клиентов: Enigmail для Thunderbird (до версии 78) или встроенная поддержка PGP в ProtonMail и Mailvelope. Для разработчиков полезны библиотеки типа `python-gnupg` (Python) или `openpgp.js` (JavaScript), позволяющие интегрировать расшифровку в собственные приложения. При работе с большими объёмами данных рекомендуется использовать аппаратные токены (например, YubiKey с поддержкой PGP), повышающие безопасность хранения ключей.
Как установить и настроить PGP-клиент на компьютере
Выбор PGP-клиента зависит от операционной системы. Для Windows оптимальным решением остаётся Gpg4win (версия 4.2.0 и новее), включающий Kleopatra – графический интерфейс для управления ключами. На macOS используйте GPG Suite (последняя стабильная сборка – 2023.1), а для Linux – пакет GnuPG (gpg 2.4.x) с дополнениями вроде Seahorse для интеграции с GNOME. Избегайте устаревших версий: в них могут быть уязвимости, например, CVE-2022-34903 в GnuPG 2.2.x.
Установка на Windows: скачайте дистрибутив с официального сайта, запустите инсталлятор и выберите компоненты:
- GnuPG – базовый пакет;
- Kleopatra – GUI для работы с ключами;
- GpgOL – плагин для Outlook (если нужен);
- GpgEX – контекстное меню для проводника.
После установки перезагрузите систему – это критично для корректной работы плагинов.
На macOS процесс проще: установите GPG Suite через gpgtools.org, следуя подсказкам мастера. Обратите внимание на настройки интеграции с почтовыми клиентами (Apple Mail, Thunderbird) – они активируются автоматически, но могут потребовать дополнительных прав в системных настройках безопасности. Для Linux (Debian/Ubuntu) выполните команду:
sudo apt install gnupg2 seahorse pinentry-qt
– это установит базовый пакет и графический интерфейс для ввода паролей.
Первичная настройка начинается с генерации ключевой пары. В Kleopatra выберите Файл → Новый ключ → Создать OpenPGP-ключ, укажите:
- Имя и email (должны совпадать с данными в почтовом клиенте);
- Тип ключа: RSA и RSA (4096 бит – минимально рекомендуемый размер);
- Срок действия: 1–2 года (позже можно продлить);
- Парольную фразу длиной не менее 16 символов с использованием спецсимволов.
После генерации экспортируйте открытый ключ (Файл → Экспортировать сертификаты) и разместите его на ключевых серверах, например, hkps://keys.openpgp.org.
Для проверки работоспособности отправьте зашифрованное письмо самому себе. В Thunderbird с плагином Enigmail (или встроенным в GPG Suite почтовым клиентом) выберите опцию Зашифровать перед отправкой. Если письмо открывается без ошибок, настройка выполнена корректно. Храните закрытый ключ в безопасном месте – например, на зашифрованном USB-накопителе или в менеджере паролей с поддержкой PGP (KeePassXC). Не делитесь им даже с доверенными лицами: компрометация ключа требует его отзыва и перегенерации всей цепочки.
Как импортировать открытый ключ отправителя в PGP-клиент

Скопируйте открытый ключ из письма или файла отправителя в буфер обмена. В большинстве PGP-клиентов (например, Gpg4win, Kleopatra или GPG Suite) найдите опцию «Импорт ключа» в меню «Файл» или «Ключи». Вставьте содержимое буфера в появившееся окно и подтвердите действие. Если ключ передан в виде файла с расширением .asc или .pgp, используйте функцию «Импорт из файла» и укажите путь к нему.
После импорта проверьте отпечаток ключа (fingerprint) в списке ключей клиента. Он должен совпадать с тем, что предоставил отправитель – обычно это 40-значная строка в формате SHA-1 или SHA-256. Для сверки используйте команду gpg --fingerprint [ID_ключа] в терминале или соответствующий раздел в графическом интерфейсе. Если отпечатки не совпадают, удалите ключ и запросите его повторно.
Назначьте ключу доверие, если планируете использовать его регулярно. В Kleopatra выделите ключ, выберите «Изменить доверие» и установите уровень «Я доверяю этому ключу полностью». В командной строке выполните gpg --edit-key [ID_ключа], затем введите trust и выберите соответствующий уровень. Без этого шага клиент может выдавать предупреждения при проверке подписей.
Как скопировать зашифрованный PGP код из источника
Зашифрованный PGP-код обычно начинается с блока -----BEGIN PGP MESSAGE----- и заканчивается -----END PGP MESSAGE-----. Перед копированием убедитесь, что выделяете весь блок, включая эти строки – они критически важны для корректной расшифровки.
Если код приходит в текстовом формате (например, в письме или мессенджере), выделите его мышью, удерживая левую кнопку от начала до конца блока. В Windows/Linux используйте Ctrl+C, на macOS – Cmd+C. Избегайте выделения лишних символов: пробелов, переносов строк или подписей после завершающего тега.
В некоторых почтовых клиентах (Thunderbird, Outlook) PGP-код может отображаться как вложение с расширением .asc или .pgp. Щелкните правой кнопкой по файлу и выберите «Копировать содержимое» или откройте его в текстовом редакторе (Notepad++, VS Code) для ручного копирования.
При работе с терминалом (Linux/macOS) используйте команду xclip -sel clip для копирования выделенного текста в буфер обмена. Если код хранится в файле, выполните cat file.asc | xclip -sel clip. В Windows аналогично работает clip в PowerShell: Get-Content file.asc | clip.
Браузерные расширения для PGP (например, Mailvelope) часто добавляют кнопку «Копировать» рядом с зашифрованным блоком. Нажмите её – текст автоматически попадёт в буфер без риска случайных изменений. Проверьте, что расширение активно для текущего домена.
Если код разбит на несколько частей (например, в Telegram или Slack), скопируйте каждую часть отдельно и объедините их в текстовом редакторе без дополнительных символов. Убедитесь, что порядок блоков сохранён – PGP чувствителен к последовательности строк.
В мобильных приложениях (K-9 Mail, FairEmail) удерживайте палец на тексте до появления лупы, затем расширьте выделение до границ PGP-блока. Используйте стандартную кнопку «Копировать» из контекстного меню. Избегайте сторонних клавиатур – они могут вставлять невидимые символы.
После копирования вставьте код в буфер расшифровки (например, в GPG Suite, Kleopatra или командную строку gpg --decrypt) и проверьте отсутствие ошибок. Если появляется сообщение No valid OpenPGP data found, повторите копирование, исключив лишние пробелы или переносы строк.
Как вставить и расшифровать PGP код в выбранном инструменте

Выберите инструмент для работы с PGP: Gpg4win (Windows), GPG Suite (macOS) или командная строка (Linux). Убедитесь, что установлена последняя версия – например, Gpg4win 4.2.0 поддерживает алгоритмы Ed25519 и SHA-3, критичные для современной безопасности. Если используете Kleopatra (входит в Gpg4win), откройте интерфейс и перейдите в раздел «Файлы» или «Буфер обмена» в зависимости от источника зашифрованного сообщения.
Вставьте PGP-код в инструмент. Для этого скопируйте весь блок, включая заголовки -----BEGIN PGP MESSAGE----- и -----END PGP MESSAGE-----. В Kleopatra выберите «Буфер обмена» → «Расшифровать/проверить», в GPG Suite – «Services» → «OpenPGP: Decrypt Selection». В командной строке Linux выполните:
gpg --decrypt <файл_с_сообщением.pgp>
Если сообщение в буфере обмена, используйте:
gpg --decrypt <(xclip -o -selection clipboard)
Укажите ключ для расшифровки. Инструменты автоматически предложат выбрать приватный ключ из связки, если их несколько. В Kleopatra откроется окно с запросом пароля – введите его без пробелов и дополнительных символов. Для командной строки добавьте параметр --pinentry-mode loopback, если используете нестандартный ввод пароля. Пример:
gpg --pinentry-mode loopback --decrypt файл.pgp
Проверьте результат. Успешная расшифровка отобразит текст в окне инструмента или в терминале. Если возникла ошибка gpg: decryption failed: No secret key, убедитесь, что приватный ключ импортирован и соответствует публичному ключу отправителя. В Kleopatra и GPG Suite можно проверить связку ключей через меню «Настройки» → «Управление ключами».
| Ошибка | Причина | Решение |
|---|---|---|
No public key |
Отсутствует публичный ключ отправителя | Импортируйте ключ командой gpg --import ключ.asc |
Bad passphrase |
Неверный пароль от приватного ключа | Проверьте раскладку клавиатуры и Caps Lock |
Invalid packet |
Поврежденный или неполный PGP-блок | Скопируйте сообщение заново, исключив лишние символы |
gpg --decrypt файл.pgp > результат.txt
Для работы с бинарными данными (например, зашифрованными файлами) используйте параметр --output:
gpg --output документ.pdf --decrypt документ.pdf.pgp
Как проверить правильность расшифрованного кода подтверждения
Проверьте контрольную сумму или хеш-код, если они предусмотрены в исходном сообщении. Некоторые системы генерируют PGP-код вместе с хешем (например, SHA-256) для верификации. Расшифровав код, вычислите его хеш самостоятельно и сравните с предоставленным. В Linux или macOS это делается командой echo -n "КОД" | sha256sum. В Windows используйте PowerShell: Get-FileHash -Algorithm SHA256 -InputStream ([System.IO.MemoryStream]::new([System.Text.Encoding]::UTF8.GetBytes("КОД"))). Совпадение хешей подтверждает корректность расшифровки.
| Тип ошибки | Признаки | Решение |
|---|---|---|
| Неверный формат | Код содержит строчные буквы, символы вне [A-Z0-9] | Повторите расшифровку с правильным ключом |
| Несовпадение хеша | Вычисленный хеш не совпадает с эталонным | Проверьте исходное сообщение на целостность |
| Короткий/длинный код | Длина меньше 6 или больше 8 символов | Уточните требования к коду у отправителя |
Что делать, если PGP код не расшифровывается или выдает ошибку
Первым шагом проверьте корректность закрытого ключа. Откройте файл ключа в текстовом редакторе и убедитесь, что он начинается с -----BEGIN PGP PRIVATE KEY BLOCK----- и заканчивается -----END PGP PRIVATE KEY BLOCK-----. Если блок поврежден или отсутствует, восстановите ключ из резервной копии. Также проверьте, не был ли ключ экспортирован с парольной фразой – в этом случае GnuPG или Kleopatra потребуют её ввод перед расшифровкой.
Если ключ в порядке, но расшифровка всё равно не работает, проверьте версию PGP-сообщения. Современные инструменты (например, GnuPG 2.4+) поддерживают алгоритмы RSA, ECC и AES-256, но устаревшие версии могут не работать с новыми форматами. Попробуйте расшифровать сообщение в разных программах:
- GnuPG (командная строка):
gpg --decrypt файл.asc - Kleopatra (GUI для Windows/Linux)
- GPG Suite (macOS)
Если одна из программ выдает ошибку gpg: decryption failed: No secret key, убедитесь, что ключ импортирован и помечен как доверенный.
Ошибки часто возникают из-за несовпадения ключей. Проверьте отпечаток (fingerprint) закрытого ключа и убедитесь, что он совпадает с тем, который использовался для шифрования. В GnuPG выполните команду: gpg --fingerprint ваш@email.com. Если отпечатки не совпадают, запросите повторное шифрование сообщения с правильным ключом. Также проверьте срок действия ключа – просроченные ключи не работают для расшифровки.
