Filippo Valsorda, kriptografi që është përgjegjës për sigurinë e gjuhës së programimit Go në Google, publikoi versionin e parë stabil të mjetit të ri për enkriptimin e të dhënave - Age (Actually Good Encryption). Ky mjet ofron një ndërfaqe të thjeshtë të linjës komandove për enkriptimin e skedarëve duke përdorur algoritme kriptografike simetrike (me fjalëkalim) dhe asimetrike (me çelësa publikë). Kodi i projektit është shkruar në gjuhën Go dhe shpërndahet nën licencën BSD. Ndërtimet janë përgatitur për Linux, FreeBSD, macOS dhe Windows.
Funksionet bazë janë nxjerrë në një bibliotekë, e cila mund të përdoret për të integruar funksionalitetin e ofruar nga mjeti në programet tuaja. Veçmas, brenda projektit rage zhvillohet një realizim alternativ i një mjeti dhe biblioteke të ngjashme, e shkruar në gjuhën Rust. Për enkriptimin përdoren algoritme të verifikuara si HKDF (HMAC-based Extract-and-Expand Key Derivation Function), SHA-256, HMAC (Hash-based Message Authentication Code), X25519, Scrypt dhe 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
Ekziston një mod për enkriptim të skedarëve për disa marrës, ku skedari enkriptohet njëherësh duke përdorur disa çelësa publikë dhe secili nga lista e marrësve mund ta dekriptojë atë. Gjithashtu ofrohen mjete për enkriptimin simetrik të skedarëve në bazë të fjalëkalimit dhe mbrojtjen e skedarëve me çelësa privatë përmes enkriptimit të tyre duke përdorur një fjalëkalim. Një veçori e dobishme është se nëse gjatë enkriptimit hyn një fjalëkalim të zbrazët, mjeti automatikisht do të gjenerojë dhe ofrojë një fjalëkalim të sigurt. $ age -p secrets.txt > secrets.txt.age Shkruani fjalëkalimin (lëreni zbrazët për të gjeneruar një të sigurt automatikisht): Duke përdorur fjalëkalimin e gjeneruar automatikisht «release-response-step-brand-wrap-ankle-pair-unusual-sword-train». $ age -d secrets.txt.age > secrets.txt Shkruani fjalëkalimin: $ age-keygen | age -p > key.age Çelësi publik: age1yhm4gftwfmrpz87tdslm530wrx6m79y9f2hdzt0lndjnehwj0bkqrjpyx5 Shkruani fjalëkalimin (lëreni zbrazët për të gjeneruar një të sigurt automatikisht): Duke përdorur fjalëkalimin e gjeneruar automatikisht «hip-roast-boring-snake-mention-east-wasp-honey-input-actress».
Plani për të ardhmen përfshin krijimin e një backendi për ruajtjen e fjalëkalimeve dhe server çelësave të ndarë (PAKE), mbështetje për çelësa YubiKey, mundësinë e gjenerimit të çelësave të lehtë për t’u kujtuar në formën e një grupi fjalësh dhe krijimin e mjeteve age-mount për të montuar në sistemin e skedarëve skedarë ose arkiva të enkriptuara.
Burimi: opennet.ru
