PGP Tool

Сравнение · 5 мин. чтения

PGP vs Age — когда выбирать современный инструмент шифрования файлов

Age — более новый, компактный, целенаправленный инструмент шифрования файлов. PGP обладает бо́льшей экосистемой и встроенной подписью.

Age (произносится "ах-гай") был выпущен в 2019 году Филиппо Вальзордой. Он делает шифрование файлов — и только это. PGP делает это же, плюс ещё два десятка вещей. Вопрос в том, помогает ли дополнительная поверхность или вредит.

Что каждый из них делает#

Age делает шифрование файлов. Всё. Нет подписей, нет web of trust, нет keyserver, нет дат истечения, нет subkey, нет MIME, нет интеграции с почтой. Формат: X25519 + ChaCha20-Poly1305.

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

Криптография#

  • Age — X25519 ECDH + ChaCha20-Poly1305 + HKDF. Один выбор алгоритма, современный, без устаревших режимов.
  • PGP — RSA/ElGamal/ECDH + AES-128/192/256/IDEA/3DES/Camellia. Десятилетия устаревших опций.
  • Оба криптографически надёжны при настройках по умолчанию. У Age меньше поверхность атаки из-за меньшего числа переключателей.

Идентичность и обнаружение#

Идентичности Age — короткие ASCII-строки: age1ql3z7hjy54... и AGE-SECRET-KEY-1.... Нет User ID, нет email, нет срока истечения, нет цепочки подписей.

PGP-ключи несут User ID, даты создания, истечения, подписи и могут быть найдены по email на keyserver. Метаданные дают возможность "зашифровать для [email protected] без предварительного запроса её ключа" — но делают ключи большими, а формат сложным.

Подпись#

PGP подписывает. Age — нет. Позиция Филиппо: подпись должна быть отдельным инструментом (signify, minisign, ssh-keygen -Y sign). Смешивание — это то, что сделало спецификацию PGP такой большой.

Если нужно проверить происхождение, PGP делает это в одной операции. С Age вы шифруете через Age, а подписываете через что-то другое.

Экосистема#

  • PGP — каждый дистрибутив Linux, почтовые клиенты, подпись GitHub, подпись пакетов, десятилетия пользователей.
  • Age — один Go-бинарник, Rust-порт (rage), хорошая упаковка, интеграция с sops. Растёт, но небольшая.

Рекомендация#

  • Шифрование для известного технического получателя с установленным Age — Age.
  • Шифрование для кого-то, с кем вы ещё не переписывались — PGP (опубликованный ключ, привязанный к email).
  • Электронная почта — PGP. У Age нет почтового формата.
  • Секреты в Git-конфиг-репозитории — Age через sops.
  • Подпись — PGP, если нужен один инструмент для обоих задач, или Age + minisign.

Age — для "зашифровать это для человека, у которого у меня уже есть идентичность". PGP — для "зашифровать для кого-то, у кого есть только email, или подписать для доказательства происхождения". Не конкуренты; ответы на разные предложения.