ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ выпуск 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 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

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Ρ€Π΅ΠΆΠΈΠΌ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Ρ„Π°ΠΉΠ»Π° сразу для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ„Π°ΠΉΠ» ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡˆΠΈΡ„Ρ€ΡƒΠ΅Ρ‚ΡΡ с использованиСм Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· списка ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π΅Π³ΠΎ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’Π°ΠΊΠΆΠ΅ прСдоставлСны срСдства для симмСтричного ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° основС пароля ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² с Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΈΡ… ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ с использованиСм пароля. ПолСзной ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ссли ΠΏΡ€ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠΈ ввСсти пустой ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, Ρ‚ΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° автоматичСски сама сгСнСрируСт ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. $ 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 для монтирования Π² Π€Π‘ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ².

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru