escrow-box
Escrow box è un prototipo open source che custodisce un segreto in una macchina virtuale misurata e lo rilascia secondo una regola concordata. La versione di riferimento custodisce codice sorgente. Dopo il sigillo e la verifica, la VM può restare spenta fino al controllo dell’evento di rilascio.
- TPM 2.0
- UKI
- Clevis
- Stato
- Prototipo testato localmente con QEMU e swtpm; il repository documenta un avvio su Shielded VM. Per la produzione servono una piattaforma qualificata e un passaggio di controllo verificato. La firma con un portafoglio è un’applicazione descritta, non implementata nella versione per i sorgenti.
- Licenza
- Apache 2.0.
- Piattaforme
- Linux x86-64; banco locale QEMU/OVMF/swtpm ed esperimenti cloud documentati.
Quale problema risolve
Il cliente deve verificare che il sorgente depositato riproduca il binario consegnato, mentre il fornitore lo mantiene privato fino all’evento concordato. Verifica e rilascio sono separati.
Funzionalità principali
- La chiave di decifratura è vincolata al TPM e alle misure dell’immagine di avvio.
- La verifica ricompila l’artefatto consegnato e lo confronta byte per byte; escono solo hash e risultato.
- La regola di riferimento usa lo stato del registro imprese e un segnale di attività firmato, con un periodo di attesa se mancano prove.
- Comandi SSH fissi offrono verifica, stato e rilascio senza una shell interattiva.
- Dopo il sigillo e la verifica, la VM può restare spenta fino al controllo dell’evento. I dischi si possono salvare, rimuovere dall’host per liberare spazio e ripristinare quando servono. Si conservano la VM e il suo stato TPM originale, che occupa solo pochi kilobyte. La copia include immagine, deposito cifrato, contenitore sigillato della chiave e stato salvato del box.
Come funziona
Un’immagine unificata del kernel contiene deposito cifrato, strumenti di verifica e regola di rilascio. L’avvio misurato lega la chiave all’immagine. La protezione della memoria e dello stato TPM dipende dalla piattaforma.
provision → check → verify → status → unlock
Requisiti
- Un host Linux di compilazione con gli strumenti del repository e una VM con TPM.
- Per un deposito reale, una piattaforma che impedisca al destinatario di leggere memoria e stato TPM, con procedure concordate di riavvio e ripristino.
- Un evento di rilascio concordato, prove autenticate e verifiche di accettazione prima di depositare un segreto reale.
- Conservare la stessa VM e il suo stato TPM; tenere una copia completa dei dischi e ripristinarla su quella VM con la configurazione di piattaforma concordata.
Questa pagina riassume il README e la documentazione del repository a ottobre 2026. La fonte di riferimento è il repository stesso.