Filippo Valsorda, criptograf encargat de securitatea limbajului de programare Go la Google, a publicat prima versiune stabilă a noului instrument pentru criptarea datelor — Age (Actually Good Encryption). Instrumentul oferă o interfață simplă de linie de comandă pentru criptarea fișierelor folosind algoritmi criptografici simetrici (pe bază de parolă) și asimetrici (pe bază de chei publice). Codul proiectului este scris în limbajul Go și este distribuit sub licența BSD. Compilările sunt pregătite pentru Linux, FreeBSD, macOS și Windows.
Funcțiile de bază sunt extrase într-o bibliotecă, care poate fi utilizată pentru integrarea funcționalităților oferite de utilitar în propriile aplicații. Separat, în cadrul proiectului rage se dezvoltă o implementare alternativă a unui utilitar și bibliotecă similare, scrise în limbajul Rust. Pentru criptare sunt utilizate algoritmi verificați precum HKDF (Funcția de Derivare a Cheilor Bazată pe HMAC), SHA-256, HMAC (Cod de Autentificare a Mesajelor Bazat pe Hash), X25519, Scrypt și ChaCha20-Poly1305 AEAD.
Из особенностей 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.tar.gz $ age -R ~/.ssh/id_ed25519.pub example.jpg > example.jpg.age $ age -d -i ~/.ssh/id_ed25519 example.jpg.age > example.jpg
Există un mod de criptare a fișierului simultan pentru mai mulți destinatari, în care fișierul este criptat folosind multiple chei publice, iar fiecare persoană din lista de destinatari poate să-l decripteze. De asemenea, sunt furnizate instrumente pentru criptarea simetrică a fișierelor pe baza unei parole și protejarea fișierelor cu chei private prin criptarea acestora folosind o parolă. O caracteristică utilă este că, dacă la criptare se introduce o parolă goală, utilitarul generează automat și oferă o parolă sigură. $ age -p secrets.txt > secrets.txt.age Introduceți fraza-cheie (lăsați gol pentru a genera automat una sigură): Folosind fraza-cheie generată automat «release-response-step-brand-wrap-ankle-pair-unusual-sword-train». $ age -d secrets.txt.age > secrets.txt Introduceți fraza-cheie: $ age-keygen | age -p > key.age Cheia publică: age1yhm4gftwfmrpz87tdslm530wrx6m79y9f2hdzt0lndjnehwj0bkqrjpyx5 Introduceți fraza-cheie (lăsați gol pentru a genera automat una sigură): Folosind fraza-cheie generată automat «hip-roast-boring-snake-mention-east-wasp-honey-input-actress».
În planurile pentru viitor se menționează crearea unui backend pentru stocarea parolelor și server chei de partajare comună (PAKE), suport pentru chei YubiKey, posibilitatea de a genera chei ușor de reținut sub formă de seturi de cuvinte și crearea utilitarului age-mount pentru montarea în sistemul de fișiere a fișierelor sau arhivelor criptate.
Sursa: opennet.ro
