Filippo Valsorda, crittografo responsabile della sicurezza del linguaggio di programmazione Go in Google, ha pubblicato la prima versione stabile di un nuovo strumento per la crittografia dei dati — Age (Actually Good Encryption). Lo strumento offre un'interfaccia a riga di comando semplice per crittografare file utilizzando algoritmi crittografici simmetrici (basati su password) e asimmetrici (basati su chiavi pubbliche). Il codice del progetto è scritto nel linguaggio Go e distribuito con licenza BSD. Le versioni sono disponibili per Linux, FreeBSD, macOS e Windows.
Le funzionalità di base sono state estratte in una libreria, che può essere utilizzata per integrare le funzionalità fornite dallo strumento nei propri programmi. Separatamente, nel contesto del progetto, riot è in fase di sviluppo un'implementazione alternativa simile dello strumento e della libreria, scritta nel linguaggio Rust. Per la crittografia vengono utilizzati algoritmi collaudati come HKDF (HMAC-based Extract-and-Expand Key Derivation Function), SHA-256, HMAC (Hash-based Message Authentication Code), X25519, Scrypt e 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
È disponibile una modalità di crittografia di un file per più destinatari, in cui il file viene crittografato simultaneamente utilizzando più chiavi pubbliche e ciascun destinatario della lista può decrittografarlo. Sono forniti anche strumenti per la crittografia simmetrica dei file basata su password e per la protezione dei file con chiavi private tramite la loro crittografia utilizzando una password. Una caratteristica utile è che se durante la crittografia viene inserita una password vuota, lo strumento genererà automaticamente e suggerirà una password sicura. $ age -p secrets.txt > secrets.txt.age Inserisci la frase di accesso (lascia vuota per generare automaticamente una sicura): Utilizzo della frase di accesso generata automaticamente «release-response-step-brand-wrap-ankle-pair-unusual-sword-train». $ age -d secrets.txt.age > secrets.txt Inserisci la frase di accesso: $ age-keygen | age -p > key.age Chiave pubblica: age1yhm4gftwfmrpz87tdslm530wrx6m79y9f2hdzt0lndjnehwj0bkqrjpyx5 Inserisci la frase di accesso (lascia vuota per generare automaticamente una sicura): Utilizzo della frase di accesso generata automaticamente «hip-roast-boring-snake-mention-east-wasp-honey-input-actress».
Tra i piani futuri si prevede di creare un backend per la memorizzazione delle password e server chiavi condivise (PAKE), supporto per chiavi YubiKey, possibilità di generare chiavi facili da ricordare sotto forma di set di parole e creazione di uno strumento age-mount per il montaggio nel filesystem di file o archivi crittografati.
Fonte: opennet.ru
