Определение простыми словами
PGP — это «навесной замок», который вы открыто раздаёте всем желающим, и «единственный ключ», который храните только у себя. Любой, у кого есть ваш публичный ключ, шифрует им сообщение, и расшифровать его можете только вы своим приватным ключом. Та же пара работает в обратную сторону для подписи: вы подписываете файл приватным ключом, а получатель проверяет подпись публичным.
Стандарт описан в RFC 4880 (OpenPGP) и используется для писем, бэкапов, артефактов сборки и подписи коммитов в Git. На VPS чаще всего ставят GnuPG — свободную реализацию OpenPGP.
Сравнение с альтернативами
| Технология | Назначение | Где применяется |
|---|---|---|
| PGP / GPG | Шифрование файлов и писем, подпись релизов | Email, бэкапы, репозитории пакетов |
| S/MIME | Шифрование и подпись писем по сертификатам X.509 | Корпоративная почта, Outlook, Exchange |
| age | Современное шифрование файлов с короткими ключами | Скрипты, бэкапы, секреты в репозитории |
| SSH | Удалённый доступ и туннели | Администрирование серверов |
Кейсы использования
- Шифрование резервных копий перед загрузкой в облако или на сторонний хостинг.
- Подпись релизов и образов: пользователь проверяет, что бинарник собран именно вами.
- Защита переписки с подрядчиками и журналистами при передаче чувствительных файлов.
- Подпись Git-коммитов и тегов — на GitHub и GitLab появляется значок «Verified».
- Хранение мастер-паролей и секретов в текстовых файлах в зашифрованном виде.
Негативный сценарий: PGP не подходит для чатов в реальном времени и не даёт «прямой секретности» (forward secrecy) — если приватный ключ утечёт, расшифруют всю старую переписку. Для мессенджеров используйте Signal Protocol, для веб-трафика — TLS.
Технические детали
apt install gnupg
gpg --full-generate-key
gpg --list-keys
gpg --armor --export user@example.com > pubkey.asc
gpg --encrypt --recipient user@example.com backup.tar.gz
gpg --decrypt backup.tar.gz.gpg > backup.tar.gz
gpg --detach-sign --armor release.zip
gpg --verify release.zip.asc release.zip
🔥 Где это применяется
Частые вопросы
Чем PGP отличается от GPG?
PGP — коммерческий продукт Symantec и одноимённый стандарт. GPG (GnuPG) — свободная реализация открытого стандарта OpenPGP, совместимая с PGP. На Linux-серверах используется именно GnuPG.
Можно ли восстановить файл, если потерян приватный ключ?
Нет. Без приватного ключа и парольной фразы расшифровать данные невозможно. Поэтому ключи и пароли хранят минимум в двух независимых местах, а для восстановления делают revocation-сертификат.
Подходит ли PGP для шифрования больших файлов?
Да. Внутри PGP сначала генерирует случайный симметричный ключ AES, шифрует им данные, а затем шифрует только этот короткий ключ через RSA или ECC. Скорость остаётся высокой даже на гигабайтных архивах.