PGP Tool

Учиться · 8 мин. чтения

Как работает PGP — объяснение простыми словами

PGP сочетает асимметричное и симметричное шифрование, позволяя отправлять личные сообщения без совместного использования секрета. Вот что на самом деле происходит под капотом.

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

Под приятным названием скрывается умелое сочетание двух различных видов криптографии. Каждый из них решает проблему, с которой другой справиться не может, и PGP объединяет их в единый рабочий процесс.

Две половины: асимметричная и симметричная

Симметричное шифрование (представьте AES) работает быстро и использует единый общий ключ — тот же ключ, что запирает и отпирает сообщение. Проблема: обе стороны уже должны иметь этот ключ. Если вы можете выслать его по почте, злоумышленник может его перехватить.

Асимметричное шифрование (RSA, ECC) использует пару ключей: открытый ключ, который может иметь кто угодно, и закрытый ключ, которым владеете только вы. Любой может зашифровать что-либо вашим открытым ключом, но расшифровать может лишь тот, у кого есть закрытый. Проблема: это медленно и ограничивается небольшими данными.

Как PGP их объединяет

  1. Вы генерируете свежий случайный «сеансовый ключ» — одноразовый AES-ключ специально для этого сообщения.
  2. Вы шифруете само тело сообщения сеансовым ключом (быстро, симметрично).
  3. Вы шифруете сеансовый ключ открытым PGP-ключом получателя (медленно, но нагрузка невелика).
  4. Вы объединяете оба шифртекста и отправляете.

На другом конце получатель использует свой закрытый ключ для разблокировки сеансового ключа, а затем — сеансовый ключ для разблокировки сообщения. Сеансовый ключ уничтожается. Каждое новое сообщение получает новый сеансовый ключ.

Подпись — зеркальное отражение

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

Почему это трудно взломать

Взломать PGP означает либо угадать закрытый ключ получателя (вычислительно нереально для RSA-3072+ или любой современной кривой ECC), либо найти уязвимость в базовых алгоритмах. Десятилетия публичного анализа RSA, AES и Curve25519 не выявили таких уязвимостей.

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

С чего начать

Создайте пару ключей в инструменте «Генерация ключей», поделитесь открытым ключом с теми, кто хочет вам писать, и храните закрытый ключ на устройстве, которым управляете только вы. Это всё, что нужно для начала.