My team and I are deploying a zero trust independently verifiable secret forwarding system on AWS Nitro Enclave, please ask me anything.<p>The idea is basic secret forwarding - you want to send a secret to many destinations, but find it too cumbersome to encrypt it with each destination’s public key, or you might not have all the public keys in hand.<p>To address this, we provide you with a code base running inside a Nitro Enclave. You have a KMS account, and you configure it to allow access only to 1) our code base hash AND 2) only when that signed code is running inside a certified Nitro Enclave.<p>The enclave bootstraps itself on first run by generating a key pair and encrypting the private key with a data key from KMS.<p>You can then send a secret to the enclave encrypted with its public key, and verifiably know exactly what’s going to happen. Only trusted code running inside the secure confines of the enclave would be able to decrypt and operate on the secret.<p>There’s lots of gotchas - if you make a server in the enclave remember to use a server that binds on the VSOCK AF and port; on the host run socat or a systemd socket unit to translate HTTP/TCP calls into the enclave’s VSOCK. Make sure you enrich all requests passed into the enclave with all the data and encrypted artefacts it needs to work. Make sure to send the encrypted artefacts out from the enclave and store them safely.<p>We do this for cinema movie distribution - filmmakers just send their movie’s encryption key to this system, and it sends it out to the public key of each projector in each screen in each theatre in the world. And big studios can verify that their billion dollar movies aren’t going anywhere other than their chosen rules.