Π€ΠΈΠ»ΠΈΠΏΠΎ ΠΠ°Π»ΡΠΎΡΠ΄Π°, ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°Ρ, ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Go Π² Google, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΠΏΡΡΠ²ΠΎΡΠΎ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ²Π° ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Age (Actually Good Encryption). ΠΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΡΠΎΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΈΠΌΠ΅ΡΡΠΈΡΠ½ΠΈ (ΠΏΠ°ΡΠΎΠ»Π°) ΠΈ Π°ΡΠΈΠΌΠ΅ΡΡΠΈΡΠ½ΠΈ (ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ ΠΊΠ»ΡΡ) ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Go ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ BSD Π»ΠΈΡΠ΅Π½Π·. ΠΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈΡΠ΅ ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π·Π° Linux, FreeBSD, macOS ΠΈ Windows.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° ΠΎΡ ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, Π²ΡΠ² Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ. ΠΡΠ΄Π΅Π»Π½ΠΎ, Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° rage, ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Π΅Π·ΠΈΠΊΠ° Rust. ΠΠ° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΄ΠΎΠΊΠ°Π·Π°Π½ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ: HKDF (HMAC-Π±Π°Π·ΠΈΡΠ°Π½Π° Extract-and-Expand Key Derivation Function), SHA-256, HMAC (Hash-Π±Π°Π·ΠΈΡΠ°Π½ 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 $ Π²ΡΠ·ΡΠ°ΡΡ --decrypt -i key.txt data.tar.gz.age > data.tar.gz $ Π²ΡΠ·ΡΠ°ΡΡ -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 ΠΡΠ²Π΅Π΄Π΅ΡΠ΅ ΠΏΠ°ΡΠΎΠ»Π° (ΠΎΡΡΠ°Π²Π΅ΡΠ΅ ΠΏΡΠ°Π·Π½ΠΎ, Π·Π° Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π·Π°ΡΠΈΡΠ΅Π½Π°): ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π°ΡΠ° ΠΏΠ°ΡΠΎΠ»Π° βrelease-response-step-brand-wrap-ankle-pair-unusual-sword-trainβ . $ age -d secrets.txt.age > secrets.txt ΠΡΠ²Π΅Π΄Π΅ΡΠ΅ ΠΏΠ°ΡΠΎΠ»Π°: $ age-keygen | Age -p> key.age ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ ΠΊΠ»ΡΡ: Age1YHM4GFTWFMRPZ87TDSLM530WRX6M79YA9F2HDZTJNEHNEHNEHNEHNEHPQRJPYX0 ΠΠͺΠΠΠΠΠ’Π ΠΠΠ ΠΠΠ (ΠΡΡΠ°Π²Π΅ΡΠ΅ ΠΠ ΠΠΠΠ, Π·Π° Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°ΡΠ΅ ACECURE One): ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π°ΡΠ° ΠΏΠ°ΡΠΎΠ»Π° βHIP-RAST-BORING-SNAKE-MEAST-WASP-HONEY- ΠΠ₯ΠΠ-ΠΠΊΡΡΠΈΡΠ°".
ΠΠ»Π°Π½ΠΎΠ²Π΅ΡΠ΅ Π·Π° Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π±Π΅ΠΊΠ΅Π½Π΄ Π·Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠΎΠ»ΠΈ ΠΈ ΡΡΡΠ²ΡΡ Π·Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ (PAKE), ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ YubiKey, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π»Π΅ΡΠ½ΠΈ Π·Π° Π·Π°ΠΏΠΎΠΌΠ½ΡΠ½Π΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π½Π°Π±ΠΎΡ ΠΎΡ Π΄ΡΠΌΠΈ ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠ·ΡΠ°ΡΡ Π·Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈΠ»ΠΈ Π°ΡΡ
ΠΈΠ²ΠΈ Π²ΡΠ² FS.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru