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

Філіппо Валсорда (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 AE.

З особливостей Age виділяється: можливість використання компактних 512-бітових відкритих ключів, які легко переносяться через буфер обміну; простий та не перевантажений опціями інтерфейс командного рядка; відсутність файлів конфігурації; можливість використання у скриптах та у комбінації з іншими утилітами через вибудовування ланцюжка викликів у 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. ample.jpg > example.jpg.age $age -d -i ~/.ssh/id_ed25519 example.jpg.age > example.jpg

Є режим шифрування файлу відразу кількох одержувачів, у якому файл одночасно шифрується з допомогою кількох відкритих ключів і кожен зі списку одержувачів може його розшифрувати. Також надані засоби для симетричного шифрування файлів на основі пароля та захисту файлів із закритими ключами через їхнє шифрування з використанням пароля. Корисною особливістю є те, що якщо при шифруванні ввести порожній пароль, утиліта автоматично сама згенерує і запропонує надійний пароль. $ age -p secrets.txt > secrets.txt.age Enter passphrase (увімкнути autogenerate a secure one): За допомогою 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 (допоможуть autogenerate a secure one): Using -wasp-honey-input-actress».

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

Джерело: opennet.ru

Додати коментар або відгук