KINDLE HOME

Age Encryption

Una guida pratica alla crittografia moderna senza mal di testa

Il Problema con GPG

Per anni, GPG è stato lo standard de facto per la crittografia dei file. Ma chiunque l'abbia usato sa quanto può essere frustrante: keyring corrotti, chiavi scadute, web of trust incomprensibile, errori criptici del tipo "no secret key" quando sei sicuro di averla.

Filippo Valsorda, crittografo che ha lavorato a Cloudflare e ora è nel team Go di Google, si è stufato. Nel 2019 ha creato Age (pronunciato "aghe", come il giapponese 上げ), uno strumento che fa una cosa sola e la fa bene: cifrare e decifrare file.

La filosofia è radicale nella sua semplicità: niente keyring, niente trust model, niente scadenze. Una coppia di chiavi, una password, file cifrati. Fine.

Come Funziona

Le Chiavi

Age usa crittografia asimmetrica, ma in modo molto più semplice di GPG. Hai due chiavi:

Generare una coppia di chiavi è un comando:

age-keygen -o key.txt

Il file key.txt conterrà sia la chiave pubblica (come commento) che quella privata. Qualcosa del tipo:

# created: 2025-01-10T10:30:00+01:00
# public key: age1ql3z7hjy54pw3hyww5ay3fq...
AGE-SECRET-KEY-1QQQPQQ7V...

La chiave pubblica inizia sempre con age1, quella privata con AGE-SECRET-KEY-1. Impossibile confonderle.

Cifrare un File

Per cifrare un file usando la chiave pubblica di qualcuno:

age -r age1ql3z7hjy54pw3hyww5ay... -o secrets.age secrets.txt

Il flag -r sta per "recipient" (destinatario). Puoi specificare più destinatari, e ognuno potrà decifrare il file con la propria chiave privata.

Puoi anche cifrare con una semplice password (crittografia simmetrica):

age -p -o secrets.age secrets.txt

Ti chiederà di inserire una password. Chiunque la conosca potrà decifrare.

Decifrare

Per decifrare con la chiave privata:

age -d -i key.txt secrets.age > secrets.txt

Il flag -d è per decrypt, -i per l'identity (la chiave privata).

Differenze con GPG

La differenza fondamentale è filosofica. GPG cerca di essere tutto per tutti: firme digitali, web of trust, gestione delle chiavi, integrazione email, smartcard. Age fa solo encryption.

Aspetto GPG Age
Encryption RSA/ECC X25519 + ChaCha20-Poly1305
Gestione chiavi Keyring complesso File di testo
Scadenza chiavi Configurabile Mai
Firme digitali No (usa minisign)
Formato output Binario o ASCII armor Testo con header leggibile

L'assenza di scadenza è intenzionale. Se la tua chiave viene compromessa, smetti di usarla. Se vuoi "ruotare" le chiavi per policy aziendale, generi nuove chiavi e ri-cifri. Ma non c'è una bomba a orologeria che ti fa perdere accesso ai tuoi file perché ti sei dimenticato di rinnovare.

Uso nel Brain

Nel brain, Age viene usato per proteggere il file .env che contiene tutti i secrets: API key, password database, token OAuth.

Il workflow è:

  1. La chiave pubblica è nel repository (può essere vista da tutti)
  2. Il file .env viene cifrato con age -r $PUBKEY -o .env.age .env
  3. Il file .env.age viene copiato sui backup servers
  4. Per decifrare serve la chiave privata, che sta solo in ~/.age/key.txt sui server autorizzati

Questo significa che anche se qualcuno ottiene accesso al repository o ai backup, senza la chiave privata i secrets sono illeggibili.

Key Management

La chiave privata è il punto debole. Se la perdi, perdi accesso a tutto ciò che hai cifrato. Se viene compromessa, tutti i tuoi secrets sono esposti.

Best practices:

Key Rotation

Se vuoi cambiare chiavi (per paranoia o per policy):

  1. Genera nuova coppia di chiavi
  2. Decifra tutti i file con la vecchia chiave
  3. Ri-cifra con la nuova chiave pubblica
  4. Distribuisci la nuova chiave privata ai server autorizzati
  5. Elimina la vecchia chiave privata (dopo aver verificato che tutto funziona)

Installazione

Age è disponibile per tutti i sistemi operativi:

# Debian/Ubuntu
apt install age

# macOS
brew install age

# Windows (con scoop)
scoop install age

Oppure puoi scaricare i binari precompilati da GitHub: github.com/FiloSottile/age

Plugin e Integrazioni

Age ha un ecosistema di plugin per integrazioni specifiche:

Quando NON Usare Age

Age non è la soluzione per tutto:

Ma per il 90% dei casi d'uso - proteggere file, secrets, backup - Age è la scelta migliore nel 2025.


Riferimenti:

- FINE -
1