Открыть сервис

PGP

PGP (Pretty Good Privacy) — это криптографическая программа, предназначенная для шифрования данных, создания и проверки цифровых подписей, а также управления ключами шифрования. PGP обеспечивает конфиденциальность, аутентификацию и целостность передаваемой информации, используя комбинацию симметричного и асимметричного шифрования. Программа была разработана в 1991 году американским программистом Филом Циммерманном и стала одним из первых широко доступных средств криптографической защиты для массового пользователя.

История

Создание и ранние версии

Разработка PGP началась в конце 1980-х годов, когда Фил Циммерманн, активист движения за гражданские свободы, осознал необходимость в доступном инструменте для защиты частной переписки. Первая версия программы (PGP 1.0) была выпущена в 1991 году и распространялась бесплатно через интернет, в частности через системы досок объявлений (BBS). Циммерманн опасался, что правительство США может ввести ограничения на использование криптографии, и стремился сделать технологию доступной до введения таких мер.

Юридические проблемы

Сразу после публикации PGP столкнулась с юридическими трудностями. В США программное обеспечение, использующее криптографию, классифицировалось как «боеприпасы» в соответствии с правилами экспортного контроля (International Traffic in Arms Regulations, ITAR). Распространение PGP за пределы США без лицензии считалось нарушением закона. В 1993 году Циммерманн стал объектом уголовного расследования со стороны Министерства юстиции США по подозрению в незаконном экспорте криптографического ПО. Расследование длилось три года и было закрыто в 1996 году без предъявления обвинений. Этот инцидент привлёк широкое внимание общественности к вопросам криптографии и гражданских свобод.

Дальнейшее развитие

В 1997 году была опубликована спецификация OpenPGP (RFC 2440), которая стандартизировала формат ключей и сообщений PGP, что позволило создавать совместимые реализации. В 2002 году компания PGP Corporation (основанная при участии Циммерманна) выпустила коммерческую версию PGP Desktop. В 2010 году PGP Corporation была приобретена компанией Symantec, которая продолжила разработку продукта. В 2016 году Symantec объявила о прекращении поддержки PGP Desktop, однако проект остаётся живым благодаря открытым реализациям, таким как GnuPG (GNU Privacy Guard), разработанный в 1999 году немецким программистом Вернером Кохом.

Основные принципы работы

Гибридное шифрование

PGP использует гибридную криптосистему, сочетающую преимущества симметричного и асимметричного шифрования. При шифровании сообщения программа генерирует случайный сеансовый ключ (симметричный), который используется для быстрого шифрования самих данных (например, алгоритмом AES, Twofish или CAST5). Затем этот сеансовый ключ шифруется открытым ключом получателя (асимметричным алгоритмом RSA или DSA). В результате получатель может расшифровать сеансовый ключ своим закрытым ключом, а затем — само сообщение. Такой подход позволяет эффективно обрабатывать большие объёмы данных, не теряя в безопасности.

Цифровая подпись

PGP позволяет создавать цифровые подписи, которые подтверждают авторство и целостность сообщения. Отправитель вычисляет хеш-сумму сообщения (например, с помощью SHA-2) и шифрует её своим закрытым ключом. Получатель, используя открытый ключ отправителя, расшифровывает подпись и сравнивает полученный хеш с самостоятельно вычисленным. Совпадение хешей подтверждает, что сообщение не было изменено и было отправлено именно владельцем закрытого ключа.

Управление ключами

Центральным элементом PGP является сеть доверия (Web of Trust). В отличие от централизованных инфраструктур открытых ключей (PKI), PGP не требует наличия удостоверяющих центров. Пользователи сами подписывают ключи друг друга, подтверждая их подлинность. Доверие к ключу определяется степенью его подписанности доверенными лицами. Каждый пользователь ведёт связку ключей (keyring), содержащую его собственные ключи (открытый и закрытый) и открытые ключи других пользователей.

Классификация и виды

По реализации

  1. Коммерческие версии — PGP Desktop, PGP Whole Disk Encryption, PGP Command Line (разрабатывались PGP Corporation и Symantec). Обеспечивали шифрование дисков, электронной почты, файлов и мгновенных сообщений.
  2. Открытые реализации — GnuPG (GPG), OpenPGP.js, Bouncy Castle (криптографическая библиотека на Java). GnuPG является наиболее распространённой свободной реализацией, совместимой со стандартом OpenPGP.
  3. Встраиваемые решения — библиотеки и модули для интеграции PGP в другие приложения (например, плагины для почтовых клиентов).

По назначению

  • Шифрование файлов и дисков — защита данных на локальных носителях.
  • Шифрование электронной почты — интеграция с почтовыми клиентами (например, Enigmail для Thunderbird, GPG для Outlook).
  • Цифровые подписи — верификация программного обеспечения, документов и сообщений.
  • Шифрование мгновенных сообщений — поддержка в некоторых мессенджерах (например, через OTR с использованием PGP).

Характеристики и алгоритмы

PGP поддерживает несколько криптографических алгоритмов, которые могут комбинироваться в зависимости от версии и настроек:

Ключи PGP могут иметь различную длину (обычно от 1024 до 4096 бит). Чем длиннее ключ, тем выше стойкость к взлому, но медленнее операции. Стандарт OpenPGP (RFC 4880) определяет форматы ключей, сертификатов и сообщений.

Применение

Защита электронной почты

PGP традиционно используется для шифрования и подписывания писем. Пользователи создают пару ключей, обмениваются открытыми ключами и подписывают их. Сообщения, отправленные с использованием PGP, не могут быть прочитаны третьими лицами, включая провайдеров почтовых услуг. В 2010-х годах популярность PGP для почты снизилась из-за сложности настройки и появления альтернатив (например, Signal, Telegram с end-to-end шифрованием).

Шифрование файлов и дисков

PGP Whole Disk Encryption (доступен в коммерческих версиях) позволяет шифровать целиком жёсткие диски или разделы, обеспечивая защиту данных при потере или краже устройства. Открытые реализации, такие как GnuPG, поддерживают шифрование отдельных файлов.

Верификация программного обеспечения

Многие разработчики (например, дистрибутивы Linux, проекты свободного ПО) подписывают свои релизы с помощью PGP. Пользователи могут проверить цифровую подпись загруженного файла, чтобы убедиться, что он не был модифицирован злоумышленниками. Это особенно важно для обеспечения безопасности при установке критически важного ПО.

Юридическое и корпоративное использование

PGP применяется в организациях для защиты конфиденциальной переписки, документов и баз данных. В некоторых юрисдикциях использование криптографии регулируется, и PGP может быть запрещена или ограничена. В России, согласно Федеральному закону «О связи» и «Об информации, информационных технологиях и о защите информации», использование средств криптографической защиты подлежит лицензированию, однако применение PGP для личных целей не запрещено, если не нарушаются требования к сертификации средств шифрования.

Критика и уязвимости

Сложность использования

PGP критикуется за высокий порог входа для массового пользователя. Процесс генерации ключей, обмена ими и управления доверием требует понимания криптографии. Ошибки (например, отправка сообщения без шифрования или использование слабого пароля для закрытого ключа) могут свести на нет всю защиту.

Уязвимости в реализации

В 2018 году исследователи из Университета Мюнстера выявили серию уязвимостей в PGP и S/MIME, получивших название EFAIL. Атака позволяла расшифровать ранее отправленные сообщения путём внедрения вредоносного HTML-кода в письма, который при обработке почтовым клиентом отправлял расшифрованный текст злоумышленнику. Уязвимость затрагивала большинство реализаций PGP и привела к рекомендациям отключить автоматическое расшифрование в почтовых клиентах.

Проблемы с сетевым доверием

Модель Web of Trust требует активного участия пользователей в подписании ключей. На практике многие пользователи не подписывают ключи друг друга, что снижает надёжность проверки подлинности. Кроме того, возможны атаки «человек посередине» при первоначальном обмене ключами, если не используется дополнительный канал связи.

Устаревание алгоритмов

Некоторые алгоритмы, поддерживаемые старыми версиями PGP (например, MD5, SHA-1), считаются устаревшими и уязвимыми к коллизиям. Современные реализации (GnuPG 2.x) по умолчанию используют более стойкие алгоритмы, но совместимость со старыми системами может быть ограничена.

Интересные факты

  • Название «Pretty Good Privacy» было вдохновлено персонажем Ральфа Уолдо Эмерсона из книги «Почти идеальная конфиденциальность» (англ. «Pretty Good Privacy»), а также отсылкой к магазину «Pretty Good Grocery» из радиопередачи «Prairie Home Companion».
  • В 1995 году Фил Циммерманн опубликовал исходный код PGP в виде книги (с ISBN), что позволило обойти экспортные ограничения США, так как печатная продукция не подпадала под ITAR.
  • PGP была использована для шифрования переписки журналистами и правозащитниками, в том числе Эдвардом Сноуденом при передаче секретных документов.
  • В 2016 году Symantec объявила о прекращении поддержки PGP Desktop, рекомендовав пользователям перейти на другие продукты. Однако проект GnuPG остаётся активным и поддерживается сообществом.

Источники

  • RFC 4880 — OpenPGP Message Format (2007).
  • RFC 2440 — OpenPGP Message Format (1998, устаревший).
  • Zimmermann, P. «The Official PGP User’s Guide». MIT Press, 1995.
  • Garfinkel, S. «PGP: Pretty Good Privacy». O’Reilly Media, 1995.
  • Документация GnuPG (gnupg.org).
  • Отчёт об уязвимости EFAIL (2018) — Мюнстерский университет.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →