Першы стабільны выпуск 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. ub 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 (далей empty to 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): east-wasp-honey-input-actress».

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

Крыніца: opennet.ru

Дадаць каментар