Первый стабильный выпуск Age, утилиты для шифрования данных

7 сентября 2021 года

Филиппо Валсорда ( Filippo Valsorda), криптограф, отвечающий в Google за безопасность языка программирования Go, опубликовал первый стабильный выпуск новой утилиты для шифрования данных - Age (Actually Good Encryption). Утилита предоставляет простой интерфейс командной строки для шифрования файлов с использованием симметричных (по паролю) и асимметричных (по открытым ключам) криптографических алгоритмов. Код проекта написан на языке Go и распространяется под лицензией BSD. Сборки подготовлены для Linux, FreeBSD, macOS и Windows.

Базовые функции вынесены в библиотеку, которую можно использовать для интеграции предоставляемой утилитой функциональности в свои программы. Отдельно в рамках проекта rage развивается альтернативная реализация аналогичной утилиты и библиотеки на языке Rust. Для шифрования используются проверенные алгоритмы HKDF (HMAC-based Extract-and-Expand Key Derivation Function), SHA-256, HMAC (Hash-based Message Authentication Code), X25519, Scrypt и ChaCha20-Poly1305 AEAD.

Из особенностей Age выделяется: возможность использования компактных ключей, легко переносимых через буфер обмена; простой и не перегруженный опциями интерфейс командной строки; отсутствие файлов конфигурации; возможность использования в скриптах и в комбинации с другими утилитами через выстраивание цепочки вызовов в UNIX-стиле. Поддерживается как генерация собственных компактных ключей, так и использование существующих ключей от SSH ("ssh-ed25519", "ssh-rsa"), включая поддержку файлов Github.keys.


$ age-keygen -o key.txt
Public key: age1ql3z7hjy58pw3hyww5ayyfg7zqgvc7w3j2elw2zmrj2kg5sfn9bqmcac8p
$ tar cvz ~/data | age -r age1ql3z7hjy58pw3hyww5ayyfg7zqgvc7w3j2elw2zmrj2kg5sfn9bqmcac8p > data.tar.gz.age
$ age --decrypt -i key.txt data.tar.gz.age > data.tar.gz

$ age -R ~/.ssh/id_ed25519.pub example.jpg example.jpg.age
$ age -d -i ~/.ssh/id_ed25519 example.jpg.age example.jpg

Имеется режим шифрования файла сразу для нескольких получателей, при котором файл одновременно шифруется с использованием нескольких открытых ключей и каждый из списка получателей может его расшифровать. Также предоставлена возможность симметричного шифрования файлов на основе пароля, а также защиты файлов с закрытыми ключами через их шифрование с использованием пароля. Полезной особенностью является то, что если при шифровании ввести пустой пароль, то утилита автоматически сама сгенерирует и предложит надёжный пароль.


$ age -p secrets.txt secrets.txt.age
Enter passphrase (leave empty to autogenerate a secure one):
Using the autogenerated passphrase "release-response-step-brand-wrap-ankle-pair-unusual-sword-train".
$ age -d secrets.txt.age secrets.txt
Enter passphrase:

$ age-keygen | age -p key.age
Public key: age1yhm4gftwfmrpz87tdslm530wrx6m79y9f2hdzt0lndjnehwj0bkqrjpyx5
Enter passphrase (leave empty to autogenerate a secure one):
Using the autogenerated passphrase "hip-roast-boring-snake-mention-east-wasp-honey-input-actress".

Из планов на будущее отмечается создание бэкенда для хранения паролей и сервера совместно используемых ключей ( PAKE), поддержка ключей YubiKey, возможность генерации удобных для запоминания ключей в форме набора слов и создание утилиты age-mount для монтирования в ФС зашифрованных файлов или архивов.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Первый стабильный выпуск Age, утилиты для шифрования данных», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.