Trust & Attestation
Trust is never absolute: itâs a chain
Section titled âTrust is never absolute: itâs a chainâRemote attestation doesnât create trust from nothing. It creates a verifiable chain from a hardware root of trust through to a relying partyâs policy decision.
Each link in the chain has explicit trust assumptions. The TPM Endorsement Key requires trusting the TPM manufacturerâs CA. The AIK binding requires trusting the Keylime registrarâs credential issuance. PCR measurements require trusting that the TPM measures boot components faithfully. The IMA log requires trusting the Linux kernelâs integrity measurement subsystem. The runtime policy requires trusting the identity that signed it (Sigstore OIDC). The Rekor log requires trusting the Sigstore transparency log, which is append-only and publicly verifiable.
This is analogous to the TLS/X.509 trust model: you trust the CA, and the CA vouches for the certificate. RA is the same pattern, starting from silicon instead of a CA database.
What the attestation evidence proves
Section titled âWhat the attestation evidence provesâA successful Ratatouille attestation proves:
- The machine has a real TPM: the AIK is bound to an EK with a valid manufacturer certificate chain
- The TPM measured the boot sequence: PCR values reflect what actually ran at boot
- PCR 10 reflects the IMA log: every IMA entry is accounted for in the running PCR accumulator
- The IMA log matches the approved policy: every executed binary is in the signed allow-list
- The policy was signed by an authorized identity: Sigstore verification + Rekor log entry
- The quote is fresh: nonce-based challenge prevents replay attacks
Together, these proofs mean: at the time of verification, this machine was running exactly the software stack its policy approves, and the claim is backed by hardware that cannot be forged in software.
What it doesnât prove
Section titled âWhat it doesnât proveâAttestation is not a guarantee of application security. An approved, attested binary can still contain vulnerabilities. It is also not immune to pre-enrollment compromise: if the machine was tampered with before baseline enrollment, the tampered state becomes the approved policy. Detection has a latency of up to ~10 seconds: an unauthorized binary that executes will be captured in the IMA log and detected on the next poll cycle, but there is a window between execution and the FAILED status firing. Attacks that compromise the TPM itself (DMA attacks, hardware implants, supply chain compromise of the chip) are out of scope. Finally, Ratatouille attests what ran; preventing a tampered bootloader from running in the first place requires UEFI Secure Boot, which is independent of RA.
How the agent proves itself, every session
Section titled âHow the agent proves itself, every sessionâThe hardware chain establishes that a TPM exists and that an Attestation Key (AK) is registered for the device. But how does the verifier know that the connection itâs accepting right now is from the agent whose AK was enrolled, and not from someone who copied the AK public key off the wire?
Keylimeâs push model uses Proof of Possession (PoP) on every session:
- The agent opens a session:
POST /v3.0/sessions - The verifier responds with a fresh random challenge nonce
- The agent asks its TPM to run
TPM2_Certifywith the AK as both the object being certified and the signing key, using the challenge asqualifyingData. This produces a signed assertion that proves possession of the AK private key inside the TPM at this moment - The agent sends the signed assertion back:
PATCH /v3.0/sessions/{sid} - The verifier checks the signature against the AK public key it has on file from registrar enrollment, and confirms the nonce matches the one it issued
- The verifier returns a short-lived bearer token (~15 minutes)
Subsequent attestation pushes carry this bearer token in Authorization: Bearer .... When it expires, the agent opens a new session. The AK private key never leaves the TPM, so an attacker with root on the agent host cannot impersonate the agent from elsewhere â they would have to physically remove the TPM.
This replaces an older Keylime model that authenticated agents via mTLS client certificates. Those certs lived on the agentâs filesystem and, if exfiltrated, granted admin-level access to the verifier. PoP eliminates both the filesystem secret and the over-broad authorization.
The trust chain root: TPM manufacturer
Section titled âThe trust chain root: TPM manufacturerâThe chain starts at the TPM manufacturer (Infineon, STMicroelectronics, Nuvoton, etc.). They issue an Endorsement Key (EK) certificate for every TPM they produce. This certificate chains to a manufacturer CA, which chains to a root CA published by the manufacturer.
The Keylime registrar verifies the EK certificate chain during enrollment. This is the first link: it proves the agent is talking to a real TPM, not a software emulator pretending to be one.
For cloud VMs with virtual TPMs (vTPMs), the trust root shifts to the cloud providerâs vTPM CA, meaning youâre trusting Google, AWS, or Azureâs attestation of the virtualized TPM. This is a weaker guarantee than physical TPM hardware, but itâs still hardware-rooted trust rather than pure software assertion.
Sigstore and the policy chain
Section titled âSigstore and the policy chainâThe other trust root is the policy signer. Runtime policies are signed using Sigstore keyless signing:
- The signer authenticates via OIDC (Google Workspace, GitHub Actions, Azure AD, etc.)
- Sigstore issues a short-lived certificate binding the signature to the authenticated identity
- The certificate and signature are logged to Rekor, a public, append-only transparency ledger
The Rekor log is checkpointed and monitored by independent parties. A valid Rekor inclusion proof means the signing event is permanently recorded and cannot be retroactively removed.
This means there are no long-lived signing keys that can be stolen. Every policy approval is attributable to a specific authenticated identity, and the approval is public and auditable, which is useful as compliance evidence.
Ratatouilleâs trust philosophy
Section titled âRatatouilleâs trust philosophyâRatatouille makes no claim to eliminate trust dependencies. Thatâs impossible. It makes the trust explicit, verifiable, and hardware-anchored rather than implicit and based on human attestation.
Before Ratatouille: âWe believe this machine is running approved software because someone filled out a form.â
With Ratatouille: âWe can verify this machine is running approved software because its TPM (manufactured by Infineon) measured its boot chain, its IMA log as recorded by PCR 10 matches the policy signed by this specific authorized identity, and the quote was produced 8 seconds ago with nonce 3Rgkfv2F. All of this is verifiable independently, without trusting Ratatouille.â
Thatâs the goal: make the relying partyâs trust decision as independent of human attestation as possible.