age — шифрование файлов без головной боли
Представьте, что вам нужно быстро зашифровать конфиденциальный файл перед отправкой коллеге. PGP кажется избыточным, а самописные скрипты — ненадёжными. Именно для таких случаев создан age — инструмент, который делает шифрование простым, как tar и gzip.
Почему разработчики выбирают age
Созданный Филиппо Вальсорда (известным по проекту Cloudflare) и Беном Картрайтом, age сочетает в себе три ключевых принципа:
- Минимализм — никаких конфигурационных файлов и сложных параметров
- Безопасность — современные криптографические алгоритмы (X25519, ChaCha20-Poly1305)
- UNIX-философия — работает с pipes и стандартными потоками ввода-вывода
Основные возможности в трёх командах
Генерация ключей:
age-keygen -o key.txt
# Public key: age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p
Шифрование файла:
tar cvz ~/data | age -r age1ql3... > data.tar.gz.age
Дешифрование:
age --decrypt -i key.txt data.tar.gz.age > data.tar.gz
Чем age лучше альтернатив
По сравнению с PGP:
- Нет уязвимостей в дизайне (PGP был создан в 1991 году)
- Компактные ключи (вместо 4KB RSA — 32 байта)
- Нет зависимости от глобального keyring
По сравнению с OpenSSL:
- Более безопасные алгоритмы по умолчанию
- Человекочитаемые ключи
- Встроенная поддержка паролей
Продвинутые сценарии использования
1. Шифрование для нескольких получателей
age -o backup.age -r key1.pub -r key2.pub important_data.bin
2. Использование SSH-ключей
# Шифруем файл с помощью SSH-ключа
age -R ~/.ssh/id_ed25519.pub secret.txt > secret.txt.age
3. Интеграция с GitHub
# Шифруем файл для всех, у кого есть доступ к вашему GitHub-аккаунту
curl https://github.com/username.keys | age -R - file.txt > file.txt.age
Технические особенности
- Формат файла: бинарный или PEM-кодированный (с флагом
--armor) - Алгоритмы: X25519 для обмена ключами, ChaCha20-Poly1305 для шифрования
- Кроссплатформенность: работает на Linux, macOS, Windows, BSD
- Расширяемость: поддержка плагинов (например, для YubiKey)
Когда стоит выбрать age
Этот инструмент идеален для:
- Разработчиков, которым нужно простое шифрование для CI/CD пайплайнов
- Системных администраторов, работающих с конфиденциальными конфигами
- Команд, которым нужно обмениваться зашифрованными данными без сложных setup'ов
age — это редкий пример инструмента, который сочетает безопасность с простотой использования. Если вы до сих пор мучаетесь с PGP или самописными решениями, попробуйте age. Возможно, это именно тот инструмент, которого вам не хватало.
💡 Совет: Для Rust-разработчиков существует альтернативная реализация — rage.
