Pierwsza stabilna wersja Age, narzędzia do szyfrowania danych

Filippo Valsorda, kryptolog odpowiedzialny za bezpieczeństwo języka programowania Go w Google, opublikował pierwszą stabilną wersję nowego narzędzia do szyfrowania danych, Age (Actually Good Encryption). Narzędzie zapewnia prosty interfejs wiersza poleceń do szyfrowania plików przy użyciu symetrycznych (hasło) i asymetrycznych (klucz publiczny) algorytmów kryptograficznych. Kod projektu jest napisany w Go i rozpowszechniany na licencji BSD. Kompilacje są przygotowane dla systemów Linux, FreeBSD, macOS i Windows.

Podstawowe funkcje znajdują się w bibliotece, za pomocą której można zintegrować funkcje udostępniane przez narzędzie z programami. Osobno, w ramach projektu rage, opracowywana jest alternatywna implementacja podobnego narzędzia i biblioteki, napisana w języku Rust. Do szyfrowania wykorzystywane są sprawdzone algorytmy: HKDF (funkcja wyodrębniania i rozwijania klucza oparta na HMAC), SHA-256, HMAC (kod uwierzytelniania wiadomości oparty na haszu), X25519, Scrypt oraz ChaCha20-Poly1305 AEAD.

Wśród cech Age wyróżniają się: możliwość korzystania z kompaktowych 512-bitowych kluczy publicznych, które można łatwo przenosić za pomocą schowka; prosty interfejs wiersza poleceń, nie przeciążony opcjami; brak plików konfiguracyjnych; Możliwość wykorzystania w skryptach oraz w połączeniu z innymi narzędziami poprzez budowanie łańcucha wywołań w stylu UNIX. Obsługiwane jest zarówno generowanie własnych kluczy kompaktowych, jak i korzystanie z istniejących kluczy SSH („ssh-ed25519”, „ssh-rsa”), w tym obsługa plików Github.keys. $ age-keygen -o key.txt Klucz publiczny: 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 przykład.jpg > przykład.jpg.age $ wiek -d -i ~/.ssh/id_ed25519 przykład.jpg.age > przykład.jpg

Dostępny jest tryb szyfrowania pliku dla wielu odbiorców jednocześnie, w którym plik jest szyfrowany jednocześnie przy użyciu kilku kluczy publicznych i każdy z listy odbiorców może go odszyfrować. Dostępne są także narzędzia do symetrycznego szyfrowania plików przy użyciu hasła oraz do ochrony plików klucza prywatnego poprzez szyfrowanie ich hasłem. Przydatną funkcją jest to, że jeśli podczas szyfrowania wprowadzisz puste hasło, narzędzie automatycznie wygeneruje i zaproponuje silne hasło. $ age -p secrets.txt > secrets.txt.age Wpisz hasło (pozostaw puste, aby automatycznie wygenerować bezpieczne): Używając automatycznie wygenerowanego hasła „release-response-step-brand-wrap-kostka-pair-unusual-sword-train” . $ wiek -d sekrety.txt.age > sekrety.txt Wpisz hasło: $ age-keygen | Wiek -p> key.age.age Publiczny: Age1YHM4GFTWFMRPZ87TDSLM530WRX6M79YY9F2HDZTAHNEHNEHNEHNEHNEHNEHPQRJPYX0 WPISZ HASŁO (pozostaw puste, aby automatycznie wygenerować aCure One): Używanie automatycznie generowanego hasła „HIP-RAST-BORING-SNAKE-MEAST-WASP-HONEY-INPUT- Aktorka”.

Plany na przyszłość obejmują utworzenie backendu do przechowywania haseł i serwera kluczy współdzielonych (PAKE), obsługę kluczy YubiKey, możliwość generowania łatwych do zapamiętania kluczy w postaci zestawu słów oraz utworzenie narzędzia do montażu wieku do montowania zaszyfrowanych plików lub archiwów w FS.

Źródło: opennet.ru

Dodaj komentarz