PGP-ключи
PGP-ключи — это криптографические объекты, используемые в протоколе Pretty Good Privacy (PGP) для шифрования, расшифровки, создания и проверки цифровых подписей. Каждый PGP-ключ представляет собой пару асимметричных ключей: закрытый (секретный) и открытый, которые связаны математически. PGP-ключи применяются для обеспечения конфиденциальности, целостности и аутентификации данных при передаче по открытым каналам связи, в частности в электронной почте, файловом обмене и при работе с системами управления версиями.
История и развитие
Протокол PGP был разработан американским программистом Филом Циммерманом в 1991 году. Первоначально PGP использовал алгоритм RSA для шифрования и подписи, а также IDEA для симметричного шифрования. С развитием протокола появились новые версии, включая OpenPGP (стандарт RFC 4880), который стал основой для многих современных реализаций, таких как GnuPG (GNU Privacy Guard). В 1990-е годы возникли споры вокруг экспортных ограничений США на криптографию, что привело к публикации исходного кода PGP в книге, что позволяло обойти ограничения. С тех пор PGP-ключи стали стандартом де-факто для защищённой коммуникации в сообществах, где требуется высокая степень конфиденциальности.
Типы PGP-ключей
Основные типы по назначению
- Ключи для шифрования — используются для зашифровки данных, которые может расшифровать только владелец закрытого ключа.
- Ключи для подписи — применяются для создания цифровой подписи, подтверждающей авторство и целостность сообщения или файла.
- Комбинированные ключи — большинство PGP-ключей одновременно служат для шифрования и подписи, так как в одной паре могут быть объединены обе функции.
По длине и алгоритму
- RSA-ключи — наиболее распространённые, с длиной от 1024 до 4096 бит. Рекомендуемая длина — 2048 или 4096 бит для обеспечения безопасности.
- DSA-ключи — используются для цифровых подписей, обычно с длиной 1024 бит (в OpenPGP — до 3072 бит).
- ElGamal-ключи — применяются для шифрования, часто в паре с DSA-ключами.
- Кривые Эллиптической криптографии (ECC) — более современные алгоритмы, такие как Ed25519, Curve25519, которые обеспечивают аналогичную безопасность при меньшей длине ключа (например, 256 бит).
Структура PGP-ключа
Каждый PGP-ключ состоит из нескольких элементов:
- Открытый ключ — публикуется в открытом доступе и используется для шифрования данных, предназначенных для владельца, или для проверки его подписи.
- Закрытый ключ — хранится в секрете владельцем, используется для расшифровки и создания подписей. Обычно защищён парольной фразой (passphrase).
- Сертификат — содержит метаданные: идентификатор пользователя (UID), который включает имя и адрес электронной почты, дату создания, срок действия, алгоритм и отпечаток (fingerprint).
- Подписи — могут быть добавлены другими пользователями для подтверждения подлинности ключа (сеть доверия).
Генерация и управление
Создание ключа
Для генерации PGP-ключа используется специальное программное обеспечение, например GnuPG (GPG) в Unix-подобных системах или Kleopatra в Windows. Процесс включает выбор алгоритма, длины ключа, срока действия и ввод идентификатора пользователя. После генерации создаётся пара ключей, а также файл отзыва (revocation certificate), который позволяет аннулировать ключ в случае компрометации.
Хранение
- Закрытый ключ хранится в зашифрованном виде на локальном устройстве пользователя, часто в файле
secring.gpg(в старых версиях) или в связке ключей (keyring). Рекомендуется создавать резервные копии и хранить их в надёжном месте. - Открытый ключ может быть загружен на серверы ключей (keyservers), такие как
keys.openpgp.org,pgp.mit.eduилиkeyserver.ubuntu.com, для распространения.
Отзыв ключа
Если закрытый ключ скомпрометирован или утерян, владелец публикует сертификат отзыва, который делает ключ недействительным. Сертификат отзыва должен быть создан заранее и храниться отдельно от ключа.
Применение
Электронная почта
PGP-ключи интегрируются с почтовыми клиентами (например, Thunderbird с расширением Enigmail, Outlook с плагинами) для автоматического шифрования и подписи писем. Это позволяет гарантировать, что только получатель, обладающий соответствующим закрытым ключом, сможет прочитать сообщение.
Файловый обмен
PGP используется для шифрования файлов перед передачей через незащищённые каналы (например, FTP, облачные хранилища). Также применяется для создания цифровых подписей для проверки целостности загружаемых программ (например, в дистрибутивах Linux).
Системы управления версиями
В Git PGP-ключи используются для подписи коммитов и тегов, что подтверждает авторство изменений. Это особенно важно в проектах с открытым исходным кодом, где требуется верификация вкладов.
Криптовалюты и блокчейн
Некоторые криптовалюты (например, Monero) используют PGP-подобные механизмы для создания адресов и подписей транзакций, хотя в большинстве случаев применяются специализированные криптографические схемы.
Сеть доверия (Web of Trust)
В отличие от централизованных инфраструктур открытых ключей (PKI), PGP использует децентрализованную модель — сеть доверия. Пользователи подписывают ключи друг друга, подтверждая, что данный открытый ключ действительно принадлежит указанному лицу. Уровень доверия к ключу определяется количеством и качеством подписей. Этот подход позволяет избежать зависимости от единого центра сертификации, но требует активного участия пользователей.
Критика и ограничения
- Сложность использования — для неопытных пользователей процесс генерации, обмена и проверки ключей может быть запутанным.
- Управление ключами — потеря закрытого ключа или забывание парольной фразы делает невозможным доступ к зашифрованным данным. Отсутствие централизованного восстановления.
- Уязвимости реализации — в прошлом были обнаружены уязвимости в реализациях PGP (например, атака EFAIL в 2018 году), которые позволяли расшифровывать сообщения при определённых условиях.
- Масштабируемость — сеть доверия эффективна в небольших сообществах, но становится трудноуправляемой в масштабах интернета.
Правовой статус в России
В Российской Федерации использование криптографических средств, включая PGP-ключи, регулируется Федеральным законом «О связи» и Федеральным законом «Об информации, информационных технологиях и о защите информации». Согласно законодательству, все средства криптографической защиты информации (СКЗИ) подлежат лицензированию, если они используются для защиты конфиденциальной информации. Однако применение PGP для личных целей (например, для шифрования электронной почты) не требует специального разрешения, если оно не связано с государственной тайной. В 2016 году вступили в силу поправки, обязывающие организаторов распространения информации предоставлять ключи шифрования по запросу ФСБ, что может затрагивать использование PGP в коммерческих и организационных целях.
Интересные факты
- Первая версия PGP была опубликована в 1991 году как freeware, что вызвало расследование ФБР в отношении Фила Циммермана, обвинявшегося в нарушении экспортных ограничений. Дело было закрыто в 1996 году.
- Отпечаток (fingerprint) PGP-ключа — это хеш-сумма, обычно представленная в виде шестнадцатеричной строки, которая позволяет однозначно идентифицировать ключ. Например,
B565 716F 86BD 3F4F 9C3F 8A22 3D5E 6C2E 1A2B 3C4D. - В 2018 году исследователи продемонстрировали атаку EFAIL, которая позволяла расшифровывать PGP-сообщения, внедряя вредоносный код в HTML-письма. В ответ многие почтовые клиенты отключили автоматическую расшифровку.
Источники
- RFC 4880 — OpenPGP Message Format (2007)
- Фил Циммерман. «The Official PGP User's Guide» (1995)
- GNU Privacy Guard (GnuPG) — документация
- Федеральный закон от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации»
- Федеральный закон от 07.07.2003 № 126-ФЗ «О связи»
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


