Pretty Good Privacy
Pretty Good Privacy (PGP) — это криптографическая программа и стандарт шифрования, предназначенные для обеспечения конфиденциальности, аутентификации и целостности данных, передаваемых по открытым каналам связи, в первую очередь электронной почты. PGP использует комбинацию симметричного и асимметричного шифрования, а также цифровые подписи. Разработана Филипом Циммерманом в 1991 году.
История
Создание и ранние годы
Программа была создана американским программистом и активистом Филипом Циммерманом в 1991 году. Основной мотивацией для создания PGP послужили опасения Циммермана по поводу принятия в США законопроекта S.266, который мог бы обязать производителей средств шифрования встраивать в них «лазейки» для доступа правоохранительных органов. Циммерман выпустил первую версию PGP (версия 1.0) в свободное распространение через интернет и BBS.
Проблемы с экспортом и патентами
Распространение PGP привело к юридическим проблемам. В 1993 году правительство США начало расследование в отношении Циммермана по обвинению в нарушении законов об экспорте криптографического оборудования (криптография в то время приравнивалась к военным технологиям). Дело было закрыто в 1996 году без предъявления обвинений. Кроме того, в PGP использовались алгоритмы RSA и IDEA, защищенные патентами, что создавало сложности для коммерческого распространения.
Переход к коммерческой модели
В 1997 году Циммерман основал компанию PGP Inc., которая начала выпускать коммерческие версии PGP. В 2002 году компания была приобретена Network Associates, а затем, в 2004 году, выкуплена группой инвесторов и переименована в PGP Corporation. В 2010 году PGP Corporation была приобретена корпорацией Symantec, которая продолжила выпуск продукта под названием Symantec Encryption Desktop.
Открытие исходного кода и OpenPGP
В 1997 году по инициативе Циммермана был создан открытый стандарт OpenPGP (RFC 2440, затем RFC 4880). Это позволило разрабатывать совместимые реализации PGP, не зависящие от проприетарного кода. Наиболее известной такой реализацией является GNU Privacy Guard (GnuPG или GPG), выпущенная в 1999 году.
Криптографические принципы
Гибридное шифрование
PGP использует гибридную криптосистему, сочетающую преимущества симметричного и асимметричного шифрования.
- Генерация сеансового ключа: Для каждого сообщения генерируется уникальный случайный ключ симметричного шифрования (сеансовый ключ).
- Шифрование данных: Само сообщение шифруется с использованием быстрого симметричного алгоритма (например, AES, CAST5, 3DES) с этим сеансовым ключом.
- Шифрование ключа: Сеансовый ключ шифруется открытым ключом получателя с использованием асимметричного алгоритма (RSA, ElGamal, DSA).
- Передача: Зашифрованное сообщение и зашифрованный сеансовый ключ отправляются получателю.
Получатель расшифровывает сеансовый ключ своим закрытым ключом, а затем использует его для расшифровки самого сообщения.
Цифровые подписи
Для аутентификации отправителя и обеспечения целостности сообщения PGP использует цифровые подписи.
- Хеширование: Отправитель вычисляет хеш (дайджест) сообщения с помощью криптографической хеш-функции (SHA-1, SHA-2, MD5).
- Шифрование хеша: Полученный хеш шифруется закрытым ключом отправителя, создавая цифровую подпись.
- Прикрепление: Подпись прикрепляется к сообщению или отправляется отдельно.
Получатель расшифровывает подпись открытым ключом отправителя, вычисляет хеш полученного сообщения и сравнивает их. Если они совпадают, это подтверждает, что сообщение не было изменено и отправлено именно владельцем закрытого ключа.
Сеть доверия (Web of Trust)
В отличие от инфраструктуры открытых ключей (PKI), основанной на централизованных центрах сертификации, PGP использует децентрализованную модель «сети доверия». В этой модели каждый пользователь сам удостоверяет подлинность открытых ключей других пользователей, подписывая их своим ключом. Доверие к ключу нового пользователя устанавливается на основе того, сколько доверенных лиц (чья подпись уже есть у пользователя) подписали этот ключ. Эта модель позволяет избежать единой точки отказа и не требует обращения к центральному органу.
Функциональность
Шифрование и дешифрование
PGP позволяет зашифровать файл или текст сообщения таким образом, что прочитать его сможет только владелец соответствующего закрытого ключа.
Цифровые подписи
Пользователь может подписать сообщение или файл, что гарантирует его авторство и неизменность.
Управление ключами
PGP включает в себя инструменты для генерации пар ключей (открытого и закрытого), их импорта, экспорта, хранения в связке ключей (keyring), а также для подписания и отзыва ключей.
Серверы ключей
Пользователи могут публиковать свои открытые ключи на общедоступных серверах ключей (например, keyserver.ubuntu.com, pgp.mit.edu) для облегчения их поиска и распространения.
Применение
Электронная почта
PGP является стандартом де-факто для шифрования электронной почты. Существуют плагины и интеграции для популярных почтовых клиентов: Enigmail (для Thunderbird), GPG Suite (для Apple Mail), Gpg4win (для Outlook).
Файлы и диски
PGP может использоваться для шифрования отдельных файлов, архивов или целых дисковых разделов (например, с помощью TrueCrypt или VeraCrypt, которые используют схожие принципы).
Программное обеспечение
Разработчики программного обеспечения часто используют PGP-подписи для верификации подлинности и целостности распространяемых файлов. Пользователь может проверить подпись дистрибутива, чтобы убедиться, что он не был модифицирован злоумышленниками.
Криптовалюты
Некоторые криптовалюты, такие как Bitcoin, используют криптографические алгоритмы, схожие с PGP, для создания цифровых подписей транзакций.
Критика и ограничения
Сложность использования
PGP считается сложным для массового пользователя. Процесс генерации ключей, обмена открытыми ключами, проверки их подлинности и управления ими требует определенных технических знаний.
Управление ключами
Модель «сети доверия» может быть сложной для понимания и использования. Потеря закрытого ключа или пароля от него делает невозможным расшифровку всех ранее зашифрованных данных.
Метаданные
PGP шифрует только содержимое сообщения, но не его метаданные (тема письма, адреса отправителя и получателя, дата отправки). Эти данные остаются в открытом виде и могут быть проанализированы.
Уязвимости в реализации
Исторически в различных реализациях PGP находились уязвимости. Например, в 2018 году была обнаружена уязвимость EFAIL, которая позволяла извлекать содержимое зашифрованных писем при определенных условиях, используя активное содержимое HTML-писем.
Правовой статус в России
В Российской Федерации использование криптографических средств, в том числе PGP, регулируется Федеральным законом «Об информации, информационных технологиях и о защите информации» и рядом подзаконных актов. Распространение и использование средств шифрования без уведомления или лицензии ФСБ России может быть ограничено. На практике PGP используется в России, но его применение в коммерческих и государственных структурах должно соответствовать требованиям законодательства о криптографии.
Альтернативы
- GNU Privacy Guard (GnuPG): Свободная реализация стандарта OpenPGP.
- S/MIME: Стандарт шифрования электронной почты, основанный на инфраструктуре открытых ключей (PKI) и сертификатах X.509.
- Signal Protocol: Протокол сквозного шифрования, используемый в мессенджерах Signal, WhatsApp (продукт Meta, признанной экстремистской и запрещённой в РФ) и других, обеспечивающий шифрование не только сообщений, но и метаданных в большей степени.
- BitLocker, FileVault: Встроенные средства шифрования дисков в операционных системах Windows и macOS.
Источники
- RFC 4880 — OpenPGP Message Format
- Циммерман, Филип. «The Official PGP User's Guide». MIT Press, 1995.
- Symantec Encryption Desktop Documentation
- GnuPG Manual
- Федеральный закон «Об информации, информационных технологиях и о защите информации» № 149-ФЗ
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →