Confidential training demo

Train on medical records you can't see

You run a model company. You've paid a public health service for the right to train on 2,000 of its patient records. The health service has loaded them into a Caution enclave. You can't read them, and neither can Caution or AWS. Check the code, train, and take your model.

Before uploading, the health service reviewed the same code, ran caution verify, and pinned its dataset's hash. In production each company also has its own key (see the README). Here there's no login.

Checking the enclave…

AWS Nitro evidenceChecking
STEVE session bound to this attestationChecking
Code identity (PCR0, PCR1, PCR2)Checking
Dataset in the enclave matches the pinned hashChecking

Requesting fresh evidence…

About the PCRs

This page is served by the enclave it checks, so it shows the PCRs the enclave reports. Your browser confirms AWS signed them and that the STEVE session belongs to this enclave. To confirm they match the published source, rebuild it with caution verify and compare.

How your browser talks to the enclave

Through STEVE. A service worker in your browser checks a fresh attestation for this session, agrees a key with the enclave, and encrypts every request. Answers come back under the same key, so they come from the code with these PCRs. Here the enclave serves the service worker itself, which is fine for a demo; in production you'd load it from somewhere you trust. How STEVE attests the session

Checks your browser ran

    The dataset pin in caution.hcl

    The health service gave you its dataset's SHA-256 before deployment. It's an argument of the trainer, so it's part of the measured image, and the trainer accepts no other data.

    
                
    PCR values and session

    Compare with the source

    From a checkout of git.caution.co/public/demo-confidential-training, this rebuilds the enclave image and compares its PCRs with the running enclave's.

    caution verify
    Next, train on the records.