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

Как создать GPG-ключ: полное руководство

8 min read Безопасность Обновлено 08 Jan 2026
Создать GPG-ключ — руководство
Создать GPG-ключ — руководство

GPG (GnuPG, GNU Privacy Guard) — это свободная реализация стандарта OpenPGP. Он предоставляет асимметричное шифрование, цифровую подпись и средства для проверки подлинности сообщений. Ключ GPG — это пара ключей: публичный (для шифрования и проверки подписи) и приватный (для расшифровки и подписи). Ключи позволяют:

  • зашифровать почту и файлы так, чтобы расшифровать мог только владелец приватного ключа;
  • подписывать сообщения, чтобы доказать происхождение;
  • строить «web of trust» — сеть доверия между пользователями.

Определение — GPG-ключ: пара криптографических ключей (публичный и приватный), связываемых с идентификатором пользователя (имя, email, комментарий).

Краткая история

GPG вырос из PGP — программы, созданной Филом Циммерманом (Phil Zimmermann) в начале 1990-х. PGP распространялся как исходники и привлёк внимание властей из‑за экспортных ограничений криптографии. Позже сообщество и Фонд свободного программного обеспечения развили GnuPG в соответствии со стандартом OpenPGP.

Важно понимать угрозную модель (кого вы защищаете и от кого). GPG хорошо подходит для:

  • защиты электронной почты и файлов от пассивного перехвата;
  • долгосрочного хранения зашифрованных архивов;
  • ситуаций, где доверие можно установить через ключи.

Ограничения и случаи, когда GPG может не подойти:

  • если вам нужна мгновенная синхронизация ключей и простота для неподготовленных пользователей — рассмотрите Signal или другие мессенджеры с end-to-end шифрованием;
  • если вам нужен централизованный контроль ключей в организации — возможно, лучше S/MIME с корпоративными центрами сертификации;
  • GPG сложнее настроить правильно для мобильных пользователей; в таких случаях используйте OpenKeychain и тщательно протестируйте сценарии.

Подходы к генерации ключей:

  • графические клиенты: Kleopatra/Gpg4win (Windows), Kleopatra на Linux (KDE), Seahorse (GNOME);
  • мобильные приложения: OpenKeychain (Android); на iOS доступны интеграции в почтовые клиенты или внешние утилиты;
  • командная строка: gpg (универсально, подходит на серверах и рабочих станциях);
  • аппаратные токены: YubiKey и другие USB/NFC-ключи для хранения приватных ключей.

Ниже — детальные инструкции и рекомендации, а также расширенные практики управления, ротации и инцидент-руководства.

Генерация GPG-ключа в Kleopatra (KDE / Gpg4win)

Экран блокировки на клавиатуре ноутбука символизирующий безопасность

Kleopatra — удобный менеджер ключей, поставляемый в составе Gpg4win для Windows и доступный на Linux. Инструкция:

  1. Установите Kleopatra:

Для Debian/Ubuntu (APT):

sudo apt-get install kleopatra

Для Red Hat/Fedora (RPM):

sudo yum install kleopatra

На Windows скачайте Gpg4win и установите его.

  1. Запустите Kleopatra.

  2. Файл → Новая пара ключей → Создать личную OpenPGP-пару ключей.

Экран приветствия Kleopatra

  1. Введите имя и email. Рекомендуется указывать реальные данные, если вы хотите, чтобы другие верили, что ключ принадлежит вам.

Форма ввода имени и email для ключа

  1. В “Дополнительных настройках” увеличьте размер RSA до 4096 бит и при необходимости отметьте “Аутентификация” (если будете использовать ключ для SSH). Установите срок действия (рекомендуется 2–3 года для возможности ротации).

Технические параметры ключа в Kleopatra

  1. Создайте сильную парольную фразу для защиты приватного ключа и дождитесь завершения генерации (процесс может занять несколько минут).

Успешное создание ключа в Kleopatra

  1. Сделайте резервную копию приватного ключа и сгенерируйте сертификат отзыва (revocation certificate). При необходимости загрузите публичный ключ на сервер ключей или опубликуйте через WKD/HTTPS.

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

Генерация GPG-ключа на Android с OpenKeychain

OpenKeychain — свободная программа для управления OpenPGP на Android.

  1. Установите OpenKeychain из F‑Droid или Google Play.
  2. Выберите “Create my key” (Создать ключ).
  3. Введите имя и email. При желании отметьте “Publish on keyservers” для публикации публичного ключа.
  4. Нажмите “Create key” и дождитесь завершения.

Процесс создания ключа в OpenKeychain

Ввод email в OpenKeychain

Настройка публикации на keyservers в OpenKeychain

Шифрование и список ключей в OpenKeychain

Командная строка даёт гибкость и прозрачность для серверов и опытных пользователей.

  1. Запуск стандартного мастера:
gpg --full-generate-key
  1. Выберите тип ключа: обычно “RSA and RSA”.
  2. Установите размер ключа: введите “4096” для большей стойкости.
  3. Установите срок действия — срок важен для ротации. Рекомендуется 2–3 года.
  4. Введите имя и email, затем надежную парольную фразу.

После генерации получите идентификатор ключа (KEYID). Посмотреть ключи:

gpg --list-keys

Список секретных ключей с длинным форматом ID:

gpg --list-secret-keys --keyid-format LONG

Экспорт публичного ключа (ASCII-armored):

gpg --armor --export user@example.com > pubkey.asc

Экспорт приватного ключа (для резервного копирования — храните в защищённом месте):

gpg --armor --export-secret-keys KEYID > private.asc

Генерация сертификата отзыва:

gpg --output revoke.asc --gen-revoke KEYID

Чтобы импортировать ключ на другом компьютере:

gpg --import pubkey.asc

Рекомендация: используйте мастер-ключ для подписи и управления и создайте отдельные под‑ключи для шифрования, подписи и аутентификации. Это позволяет периодически менять (роторить) под-ключи без изменения основного доверенного идентификатора.

Добавление под‑ключа (пример — через gpg –edit-key):

gpg --edit-key KEYID
addkey
# выбрать тип и размер, задать срок действия
save

Аппаратные токены (например, YubiKey) позволяют хранить приватный ключ вне компьютера. Плюсы: приватный ключ никогда не покидает устройство, подписи/расшифровка происходят на токене. Минусы: стоимость, возможная потеря устройства, сложность бекапа.

  • Используйте RSA 4096 или современный ECC (если вы понимаете совместимость). ECC (Curve25519, Ed25519) даёт более короткие ключи и хорошую производительность.
  • Всегда создавайте revocation certificate и храните его отдельно (например, зашифрованный резерв на USB в сейфе).
  • Бэкап приватного ключа в зашифрованном виде (например, LUKS/BitLocker/гпг‑зашифрованный файл).
  • Установите срок действия ключа и регулярно обновляйте/ротуйте под‑ключи.
  • Ограничьте публикацию публичного ключа до необходимых каналов: WKD (Web Key Directory) и корпоративные каталоги предпочтительнее старых SKS-сетей.
  • В многопользовательской среде используйте централизованные способы распространения публичных ключей и политики отзыва.

Если приватный ключ скомпрометирован:

  1. Немедленно опубликуйте сертификат отзыва (revocation) на тех же каналах, где публиковали ключ.
  2. Проинформируйте контакты и службы, которые полагались на ключ.
  3. Отозвав ключ, создайте новый ключ и опубликуйте его.

Создание сертификата отзыва заранее — критичный шаг. Если вы потеряете приватный ключ и у вас нет revocation, ключ останется действительным до истечения.

  • SKS keyserver-сеть устарела: данные там трудно удалить и возможны проблемы синхронизации.
  • WKD (Web Key Directory) и HTTPS-публикация предпочтительнее для современных почтовых решений.
  • Можете просто отправить публичный ключ по email или разместить на вашем веб‑сервере.

Важно помнить: публичный ключ — это не секрет, но публикация должна сопровождаться возможностью отзыва и хорошими метаданными (таскающая подпись или подтверждение).

Если GPG кажется вам слишком громоздким, рассмотрите:

  • Signal или другие мессенджеры с end-to-end шифрованием — просты в использовании для общения;
  • age — современный инструмент для шифрования файлов (простой и безопасный);
  • S/MIME — интегрирован в корпоративные почтовые системы.
  • Парольная фраза для приватного ключа должна быть длинной и уникальной (несколько слов, фраза 20+ символов).
  • Используйте менеджер паролей для хранения сильных фраз.
  • Никогда не храните приватный ключ в облаке в открытом виде.

Чтобы считать процесс генерации и настройки ключа успешным, проверьте:

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

Пользователь (конечный пользователь):

  • сгенерировать ключ RSA 4096 или ECC;
  • создать revocation certificate и положить в сейф;
  • экспортировать публичный ключ и отправить контакту;
  • протестировать шифрование/подпись с коллегой.

Администратор (организация):

  • настроить централизованный каталог ключей или WKD;
  • утвердить политику сроков действия и ротации;
  • обучить сотрудников процедурам восстановления и отзыву;
  • обеспечить безопасное хранение резервов приватных ключей в HSM при необходимости.
flowchart TD
  A[Нужно шифровать/подписывать?] -->|Да| B[Есть аппаратный токен?]
  B -->|Да| C[Использовать YubiKey, хранить мастер-ключ оффлайн]
  B -->|Нет| D[Использовать GPG: 4096 RSA или ECC]
  D --> E{Будет ли публиковаться на keyserver?}
  E -->|Да| F[Публикуйте через WKD или аккуратно на выбранный сервер]
  E -->|Нет| G[Отправлять публичный ключ напрямую контактам]
  A -->|Нет| H[Рассмотреть альтернативы: age, Signal]
  • Потеря приватного ключа: риск высокий — смягчение: revocation certificate, зашифрованные бэкапы.
  • Кража приватного ключа: риск критический — смягчение: хранение на токене, сильная парольная фраза.
  • Некорректная публикация: риск средний — смягчение: контролируемая публикация (WKD), уведомления.
  • Генерация (CLI): gpg –full-generate-key
  • Список ключей: gpg –list-keys
  • Экспорт публичного: gpg –armor –export user@example.com > pubkey.asc
  • Экспорт приватного: gpg –armor –export-secret-keys KEYID > private.asc
  • Импорт: gpg –import pubkey.asc
  • Генерация отзыва: gpg –output revoke.asc –gen-revoke KEYID
  • публичный ключ — открытая часть пары ключей, используется для шифрования и проверки подписи;
  • приватный ключ — секретная часть, используется для подписи и расшифровки;
  • revocation certificate — файл, который отзывает ключ, если он скомпрометирован;
  • WKD — Web Key Directory, способ публикации ключей через HTTPS;
  • subkey (под‑ключ) — дополнительный ключ для отдельной роли (шифрование/подпись).
  • При переходе с RSA на ECC проверьте поддержку в почтовых клиентах получателей.
  • Для корпоративной миграции разработайте план ротации: синхронная публикация новых ключей, обновление MUA (mail user agent) и обучение пользователей.
  • отсутствует revocation certificate — при потере приватного ключа вы не сможете отозвать публичный ключ;
  • слабая парольная фраза — приватный ключ легко подбирается;
  • публикация ключа без метаданных — пользователи не узнают, кому именно принадлежит ключ;
  • использование неподдерживаемых алгоритмов — проблемы совместимости с другими клиентами.

GPG остаётся мощным инструментом для защиты почты и файлов. Для большинства пользователей достаточно сгенерировать ключ RSA 4096 бит, создать revocation certificate, экспортировать публичный ключ и протестировать шифрование. Для повышенной безопасности используйте аппаратные токены, разделяйте роли с под‑ключами и внедрите политику ротации.

Важные заметки:

  • всегда храните revocation certificate в надёжном месте;
  • продумывайте план ротации и бэкапов;
  • выбирайте способ публикации публичного ключа с учётом приватности и управляемости.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Как легально смотреть MLB без кабеля
Стриминг

Как легально смотреть MLB без кабеля

Настройка Oculus Quest 2 — быстрый старт
VR руководство

Настройка Oculus Quest 2 — быстрый старт

Как связать блог с профилем на Goodreads
Авторство

Как связать блог с профилем на Goodreads

Шпаргалка по основным командам Arduino
Embedded

Шпаргалка по основным командам Arduino

Ошибка C14A в Snapchat: как исправить и вернуть доступ
Мобильные приложения

Ошибка C14A в Snapchat: как исправить и вернуть доступ

Ошибка 0x8000FFFF в Windows 10 — как исправить
Windows 10

Ошибка 0x8000FFFF в Windows 10 — как исправить