escrow-box
Escrow box es un prototipo de código abierto que guarda un secreto en una máquina virtual medida y lo entrega según una regla acordada. La implementación de referencia custodia código fuente. Tras sellarla y verificarla, la VM puede permanecer apagada hasta que sea necesario comprobar el evento de entrega.
- TPM 2.0
- UKI
- Clevis
- Estado
- Prototipo probado localmente con QEMU y swtpm; el repositorio documenta el arranque en una Shielded VM. El uso en producción requiere calificar la plataforma y verificar el traspaso de control. La firma con un monedero es una aplicación descrita, no implementada en la referencia de código fuente.
- Licencia
- Apache 2.0.
- Plataformas
- Linux x86-64; banco local QEMU/OVMF/swtpm y experimentos documentados en la nube.
Qué resuelve
El cliente necesita comprobar que el código depositado reproduce el binario entregado, y el proveedor necesita mantenerlo privado hasta el evento acordado. La verificación se separa de la entrega.
Funciones principales
- La clave de descifrado queda vinculada al TPM y a las mediciones de la imagen de arranque.
- El verificador recompila el artefacto entregado y lo compara byte a byte; solo salen los hashes y el resultado.
- La regla de referencia usa el estado del registro mercantil y una señal de actividad firmada, con un plazo de espera si faltan pruebas.
- Comandos SSH fijos permiten comprobar, consultar el estado y liberar el depósito sin una consola interactiva.
- Después del sellado y la verificación, la VM puede mantenerse apagada hasta comprobar el evento. Sus discos pueden respaldarse, retirarse del host para liberar espacio y restaurarse cuando hagan falta. Se conservan la VM y el estado original del TPM, que ocupa solo unos kilobytes. La copia incluye la imagen, el depósito cifrado, el contenedor sellado de la clave y el estado guardado del box.
Cómo funciona
Una imagen unificada del núcleo contiene el depósito cifrado, las herramientas de verificación y la regla de entrega. El arranque medido vincula la clave a esa imagen. La protección de memoria y estado del TPM depende de la plataforma.
provision → check → verify → status → unlock
Requisitos
- Una máquina Linux de compilación con las herramientas del repositorio y una VM con TPM.
- Para un depósito real, una plataforma que impida al receptor leer la memoria y el estado del TPM, con procedimientos acordados de reinicio y recuperación.
- Un evento de entrega acordado, pruebas autenticadas y verificaciones de aceptación antes de depositar un secreto real.
- Conservar la misma VM y su estado TPM; guardar una copia completa de los discos y restaurarla en esa VM con la configuración de plataforma acordada.
Esta página resume el README y la documentación del repositorio a octubre de 2026. La fuente de referencia es el propio repositorio.