Сравнение · 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, или подписать для доказательства происхождения". Не конкуренты; ответы на разные предложения.