Filippo Valsorda, cryptograaf en verantwoordelijk voor de beveiliging van de programmeertaal Go bij Google, heeft de eerste stabiele versie van een nieuwe tool voor gegevensversleuteling gepubliceerd - Age (Actually Good Encryption). De tool biedt een eenvoudige opdrachtregelinterface voor het versleutelen van bestanden met behulp van symmetrische (op basis van een wachtwoord) en asymmetrische (op basis van openbare sleutels) cryptografische algoritmen. De code van het project is geschreven in de programmeertaal Go en valt onder de BSD-licentie. Bouwsels zijn beschikbaar voor Linux, FreeBSD, macOS en Windows.
De basisfunctionaliteit is ondergebracht in een bibliotheek die kan worden gebruikt voor het integreren van de door de tool geboden functionaliteit in eigen programma's. Daarnaast ontwikkelt het project rage een alternatieve implementatie van een soortgelijke tool en bibliotheek, geschreven in de programmeertaal Rust. Voor de versleuteling worden gerenommeerde algoritmen gebruikt zoals HKDF (HMAC-based Extract-and-Expand Key Derivation Function), SHA-256, HMAC (Hash-based Message Authentication Code), X25519, Scrypt en 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
Er is een bestandversleutelingsmodus voor meerdere ontvangers, waarbij het bestand gelijktijdig wordt versleuteld met meerdere openbare sleutels en elk van de ontvangers in de lijst het kan ontsleutelen. Ook zijn er middelen voor symmetrische bestandversleuteling op basis van een wachtwoord en voor de bescherming van bestanden met privé-sleutels door middel van encryptie met een wachtwoord. Een nuttige functie is dat als bij het versleutelen een leeg wachtwoord wordt ingevoerd, de tool automatisch een veilig wachtwoord genereert en aanbiedt. $ age -p secrets.txt > secrets.txt.age Voer wachtwoordzin in (laat leeg om een veilig wachtwoord te autogenereren): Gebruik makend van de autogegenereerde wachtwoordzin «release-response-step-brand-wrap-ankle-pair-unusual-sword-train». $ age -d secrets.txt.age > secrets.txt Voer wachtwoordzin in: $ age-keygen | age -p > key.age Openbare sleutel: age1yhm4gftwfmrpz87tdslm530wrx6m79y9f2hdzt0lndjnehwj0bkqrjpyx5 Voer wachtwoordzin in (laat leeg om een veilig wachtwoord te autogenereren): Gebruik makend van de autogegenereerde wachtwoordzin «hip-roast-boring-snake-mention-east-wasp-honey-input-actress».
Voor de toekomstplannen wordt de ontwikkeling van een backend voor het opslaan van wachtwoorden en de server gemeenschappelijke sleutels (PAKE) genoemd, ondersteuning voor YubiKey-sleutels, de mogelijkheid om geheugensteuntjes voor sleutels in de vorm van een woordenlijst te genereren en de creatie van de tool age-mount voor het monteren van versleutelde bestanden of archieven in het bestandssysteem.
Bron: opennet.ru
