Tutti gli articoli
sicurezza28 maggio 2026·2 min di lettura

Cifratura envelope, spiegata semplice

Come teniamo al sicuro i segreti in Shush — e perché un'unica grande chiave di cifratura è un problema che non vuoi.

Di Logical

Quando abbiamo costruito Shush, il nostro secrets manager, la domanda di fondo era semplice da enunciare e facile da sbagliare: come conservi migliaia di segreti altrui in modo che una fuga di dati dal database non consegni a un attaccante le chiavi di tutto?

La risposta ingenua è un'unica chiave di cifratura forte per l'intero sistema. Funziona, ed è una trappola. Ruotarla vuol dire ricifrare ogni segreto che possiedi, in una sola operazione col fiato sospeso. E una sola chiave esposta scopre tutti i clienti insieme. Hai costruito una serratura per diecimila porte.

L'idea dell'envelope

La cifratura envelope risolve il problema usando chiavi per cifrare altre chiavi — come chiudere una lettera e poi sigillarla dentro una busta più robusta.

  • Ogni organizzazione ha la sua chiave dati. I suoi segreti sono cifrati con quella, e solo con quella.
  • La chiave dati non è in chiaro: è cifrata da una chiave master che non tocca mai il database.
  • Per leggere un segreto: si scarta la chiave dati dell'organizzazione con la chiave master, poi si decifra il valore. Entrambi i livelli sono AES-256-GCM, che rileva anche le manomissioni.

Il guadagno è nel raggio dell'esplosione. La chiave dati di un'organizzazione espone soltanto quella organizzazione. Ruotare la chiave di un singolo cliente non tocca quella di nessun altro. La chiave master vive separata dai dati cifrati, così un dump rubato del database è solo testo cifrato.

La sicurezza non è un muro robusto. È fare in modo che una falla in un punto resti in quel punto.

Le parti noiose che contano di più

La cifratura è la metà facile. Le decisioni che davvero tengono al sicuro i segreti sono meno appariscenti:

  • Due fattori su ogni account, senza eccezioni. Un secrets manager protetto dalla sola password è teatro.
  • Log di audit leggibili. Ogni lettura, scrittura e rotazione, con chi e quando — inutili se nessuno riesce a seguirli.
  • Segreti che non toccano mai il disco. La nostra CLI inietta i valori direttamente nell'ambiente di un processo a runtime, così non finiscono in un .env in chiaro in attesa di essere committato.

Niente di tutto questo è crittografia originale — ed è proprio il punto. La buona ingegneria della sicurezza è soprattutto la disciplina di usare bene primitive ben note, e di tenere piccolo il raggio dell'esplosione quando, inevitabilmente, qualcosa va storto.