Π€ΠΈΠ»ΠΈΠΏΠΎ ΠΠ°Π»ΡΠΎΡΠ΄Π°, ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°Ρ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈΠΎΡ ΡΠ°Π·ΠΈΠΊ Go Π²ΠΎ Google, Π³ΠΎ ΠΎΠ±ΡΠ°Π²ΠΈ ΠΏΡΠ²ΠΎΡΠΎ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ²Π°ΡΠ° Π°Π»Π°ΡΠΊΠ° Π·Π° ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, Age (ΠΡΡΡΠ½ΠΎΡΡ Π΄ΠΎΠ±ΡΠΎ ΡΠΈΡΡΠΈΡΠ°ΡΠ΅). ΠΠ»Π°ΡΠΊΠ°ΡΠ° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°ΡΠ° Π»ΠΈΠ½ΠΈΡΠ° Π·Π° ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠΈΠΌΠ΅ΡΡΠΈΡΠ½ΠΈ (Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°) ΠΈ Π°ΡΠΈΠΌΠ΅ΡΡΠΈΡΠ½ΠΈ (ΡΠ°Π²Π΅Π½ ΠΊΠ»ΡΡ) ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ. ΠΡΠΎΠ΅ΠΊΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ Go ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° BSD. ΠΠ·Π³ΡΠ°Π΄Π±ΠΈΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π·Π° Linux, FreeBSD, macOS ΠΈ Windows.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½Π° ΠΎΠ΄ Π°Π»Π°ΡΠΊΠ°ΡΠ° Π²ΠΎ Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ. ΠΠ΄Π΄Π΅Π»Π½ΠΎ, Π²ΠΎ ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Rage, ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° ΡΠ»ΠΈΡΠ½Π° Π°Π»Π°ΡΠΊΠ° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° ΡΠ°Π·ΠΈΠΊΠΎΡ Rust. ΠΠ° ΡΠΈΡΡΠΈΡΠ°ΡΠ΅, ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π΄ΠΎΠΊΠ°ΠΆΠ°Π½ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ: HKDF (HMAC-Π±Π°Π·ΠΈΡΠ°Π½Π° 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 ΠΠ°Π²Π΅Π½ ΠΊΠ»ΡΡ: age1ql3z7hjy58pw3hyww5ayyfg7zqgvc7w3j2elw2zmrj2kg5sfn9bqmcac8p $ tar cvz ~/ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ | Π²ΠΎΠ·ΡΠ°ΡΡ -r age1ql3z7hjy58pw3hyww5ayyfg7zqgvc7w3j2elw2zmrj2kg5sfn9bqmcac8p > data.tar.gz.age $ Π²ΠΎΠ·ΡΠ°ΡΡ --Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡΠ°Ρ -i key.txt data.tar.gz.age > data.tar.gz. > example.jpg.age $ Π²ΠΎΠ·ΡΠ°ΡΡ -d -i ~/.ssh/id_ed25519 example.jpg.age > example.jpg
ΠΠΎΡΡΠΎΠΈ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ°ΡΠΈ ΠΎΠ΄Π΅Π΄Π½Π°Ρ, Π²ΠΎ ΠΊΠΎΡ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΠ΅ ΡΠΈΡΡΠΈΡΠ° ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ°Π²Π½ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΈ ΠΈ ΡΠ΅ΠΊΠΎΡ ΠΎΠ΄ ΡΠΏΠΈΡΠΎΠΊΠΎΡ Π½Π° ΠΏΡΠΈΠΌΠ°ΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ Π΄Π΅ΡΠΈΡΡΠΈΡΠ°. ΠΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ΠΈ ΡΠ΅ ΠΈ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΡΠΈΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° ΠΈ Π·Π° Π·Π°ΡΡΠΈΡΠ° Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅ ΡΠΎ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΈ ΡΠΎ Π½ΠΈΠ²Π½ΠΎ ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°. ΠΠΎΡΠΈΡΠ½Π° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π΅ ΡΠΎΠ° ΡΡΠΎ Π°ΠΊΠΎ Π²Π½Π΅ΡΠ΅ΡΠ΅ ΠΏΡΠ°Π·Π½Π° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ, Π°Π»Π°ΡΠΊΠ°ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° ΠΈ ΡΠ΅ ΠΏΠΎΠ½ΡΠ΄ΠΈ ΡΠΈΠ»Π½Π° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°. $ age -p secrets.txt > secrets.txt.age ΠΠ½Π΅ΡΠ΅ΡΠ΅ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° (ΠΎΡΡΠ°Π²Π΅ΡΠ΅ ΠΏΡΠ°Π·Π½Π° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° Π±Π΅Π·Π±Π΅Π΄Π½Π°): ΠΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π°ΡΠ° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° βrelease-response-step-brand-wrap-ankle-pair-unusual-sword-trainβ . $ age -d secrets.txt.age > secrets.txt ΠΠ½Π΅ΡΠ΅ΡΠ΅ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°: $ age-keygen | ΠΠΎΠ·ΡΠ°ΡΡ -p> ΠΊΠ»ΡΡ. Π²ΠΎΠ·ΡΠ°ΡΡ ΡΠ°Π²Π΅Π½ ΠΊΠ»ΡΡ: Age1YHM4GFTWFMRPZ87TDSLM530WRX6M79YA9F2HDZTJNEHNEHNEHNEHNEHNEHPQRJPYX0 ΠΠ½Π΅ΡΠ΅ΡΠ΅ ΠΠ ΠΠΠΠ Π€Π ΠΠΠ (ΠΡΡΠ°Π²Π΅ΡΠ΅ ΠΠ ΠΠΠΠ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ACECURE One-WASTORGEN-WASTORGEN-Autogeneration: Π‘Π-ΠΠΠ-ΠΠΠΠ£Π’-ΠΠΊΡΠ΅ΡΠΊΠ°β.
ΠΠ»Π°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π° ΠΈΠ΄Π½ΠΈΠ½Π°ΡΠ° Π²ΠΊΠ»ΡΡΡΠ²Π°Π°Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π½Π° Π·Π°Π΄Π½ΠΈΠ½Π° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π»ΠΎΠ·ΠΈΠ½ΠΊΠΈ ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π·Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΈ (PAKE), ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΊΠ»ΡΡΠ΅Π²ΠΈ YubiKey, ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΠΈ ΠΊΠΎΠΈ Π»Π΅ΡΠ½ΠΎ ΡΠ΅ ΠΏΠ°ΠΌΠ΅ΡΠ°Ρ Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° Π·Π±ΠΈΡ Π½Π° Π·Π±ΠΎΡΠΎΠ²ΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΠ΅ Π½Π° ΡΡΠ°ΡΠΎΡΠ½Π°ΡΠ° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π° Π°Π»Π°ΡΠΊΠ° Π·Π° ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΡΠΈΡΡΠΈΡΠ°Π½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΈΠ»ΠΈ Π°ΡΡ
ΠΈΠ²ΠΈ Π²ΠΎ FS.
ΠΠ·Π²ΠΎΡ: opennet.ru