ASAravind Sivakumaran
Theme

Theme and appearance

Appearance
Palette

Pick any colour. The displayed accent adjusts for readable contrast in light or dark mode.

← IOMMU star map

SECURITY / ATTESTATION

Who should receive the secret?

The chapters before kept the host and untrusted devices out of a confidential VM. But in this example the VM starts without the application's secret: someone outside must decide to give it that key. The VM asks the AMD Secure Processor for a signed report about itself, and a verifier decides. The report is evidence, not a decision; these experiments are about the decision.

What claims does this page make? 3 points
The guest asks the AMD Secure Processor for a report; the verifier checks it and releases the secret only over the session the report binds. AMD-SP firmware signs the report Guest A public key P2 Verifier its own policy Secret or a sealed record

Experiments

Words used in the experiments
Report
A structure the AMD-SP firmware signs for a guest: what was launched (MEASUREMENT), its policy, the platform's security versions (TCB), and 64 bytes the guest chooses (REPORT_DATA).
Challenge
A fresh random value from the verifier, so an old report cannot be replayed.
Key pair
A private and public key the guest makes for this conversation. Binding the public key into the report means a secret encrypted to it reaches only the attested guest.
VMPL
The VMPL requested for this guest report. The firmware accepts a level numerically at least the caller's own, up to 3, so a VMPL0 caller can request a VMPL1 report: the field alone does not prove a VMPL1 caller. Which levels the verifier accepts is its own policy (see confidential VMs for VMPLs).
Associated data
A label AES-GCM authenticates but does not encrypt, such as a record's context.
VCEK, VLEK
The keys that sign reports: chip-specific and versioned (VCEK), or provisioned (VLEK). The report's SIGNING_KEY field says which.
ARK, ASK
AMD's root key and the intermediate key that certify a VCEK.
TCB, REPORTED_TCB
The trusted computing base's version numbers, one per component; REPORTED_TCB is the set the signing key was derived for.
AES-GCM, tag
Authenticated encryption: it hides a record and adds a tag that fails if a bit changes.

Experiment

The experiment, drawn from its own state

    Intel and Arm:

    What the verifier sees

    The report

      The verifier's policy

        Its checks, in order

          Outcome and records

            The hashes, the AES-GCM record and the tamper checks are computed in your browser (WebCrypto). The report is a set of named fields, not AMD's binary layout, and its signature is an input: nothing here is signed by an AMD key. The AES key is a public example key.

            What a report says, and what it does not

            Keys are roles

            KeyIts jobNot
            VEKEncrypts the guest's memoryGiven to anyone, the guest included
            VMPCKProtects messages between the guest and the firmwareA memory or PCIe key
            VCEK, VLEKSign the reportAnything that encrypts data
            Derived (sealing) keyChosen inputs, such as the measurement, give an application keyAn exported VEK
            SPDM and IDE session keysProtect a device's messages and link (trusted I/O)The guest's memory key

            VMPCK is the VM Platform Communication Key (Linux's sev-guest documentation). VEK is "the VM encryption key used to encrypt the guest's memory" (56860 rev 1.58, Table 6).

            Who signs it

            For the usual path the verifier builds a chain from AMD's root key (ARK) through an intermediate (ASK) to the chip's VCEK, fetched from AMD's KDS, and checks the report's signature with the VCEK. A VLEK has its own provisioning path; a verifier must not treat every certificate as a VCEK. The TCB fields differ by processor generation.

            Firmware interfaces change: pin the version you verified against.

            Sources