escrow-box
Escrow box é um protótipo aberto que guarda um segredo em uma máquina virtual medida e o libera conforme uma regra acordada. A implementação de referência trata da custódia de código-fonte. Após o selamento e a verificação, a VM pode ficar desligada até ser necessário verificar o evento de liberação.
- TPM 2.0
- UKI
- Clevis
- Status
- Protótipo testado localmente com QEMU e swtpm; o repositório documenta uma inicialização em Shielded VM. O uso em produção exige uma plataforma qualificada e uma transferência de controle verificada. A assinatura por carteira é uma aplicação descrita, não implementada na referência de código-fonte.
- Licença
- Apache 2.0.
- Plataformas
- Linux x86-64; ambiente local QEMU/OVMF/swtpm e experimentos documentados na nuvem.
O que resolve
O cliente precisa verificar que o código depositado reproduz o binário entregue, enquanto o fornecedor o mantém privado até o evento acordado. A verificação é separada da liberação.
Principais recursos
- A chave de descriptografia fica vinculada ao TPM e às medições da imagem de inicialização.
- O verificador recompila o artefato entregue e o compara byte a byte; apenas hashes e o resultado saem da máquina.
- A regra de referência usa a situação no registro empresarial e um sinal de atividade assinado, com um prazo de espera quando faltam evidências.
- Comandos SSH fixos permitem verificação, consulta de estado e liberação sem um terminal interativo.
- Após o selamento e a verificação, a VM pode ficar desligada até a consulta do evento. Seus discos podem ser copiados, removidos do host para liberar espaço e restaurados quando necessários. A VM e o estado original do TPM são preservados; esse estado ocupa apenas alguns quilobytes. A cópia inclui a imagem, o depósito criptografado, o envelope selado da chave e o estado salvo do box.
Como funciona
Uma imagem unificada do kernel contém o depósito criptografado, as ferramentas de verificação e a regra de liberação. A inicialização medida vincula a chave à imagem. A proteção da memória e do estado do TPM depende da plataforma.
provision → check → verify → status → unlock
Requisitos
- Um host Linux de compilação com as ferramentas do repositório e uma VM com TPM.
- Para custódia real, uma plataforma que impeça o destinatário de ler a memória e o estado do TPM, com procedimentos acordados de reinício e recuperação.
- Um evento de liberação acordado, evidências autenticadas e verificações de aceitação antes de depositar um segredo real.
- Preservar a mesma VM e seu estado TPM; manter uma cópia completa dos discos e restaurá-la nessa VM com a configuração de plataforma acordada.
Esta página resume o README e a documentação do repositório em outubro de 2026. A fonte de referência é o próprio repositório.