Skip to content

docs(verifier): say what event_log_verified actually covers - #1335

Merged
kvinwang merged 2 commits into
nextfrom
docs/verifier-event-log-verified
Sep 23, 2026
Merged

kvinwang merged 2 commits into
nextfrom
docs/verifier-event-log-verified

Conversation

@kvinwang

Copy link
Copy Markdown
Collaborator

The doc comment said "For RTMR 0-2 … only the digests are verified through replay comparison with the quote." Grepping every consumer: the flag is set only after decode_app_info_ex succeeds, which reads the runtime event list replayed against RTMR3. TdxQuote.event_log reaches only the --debug diff (dead until #1332), three ACPI names on the lite path, and validate_v2_preimages, which checks preimage→digest and no register at all.

I argued for fixing the comment rather than the code: RTMR 0-2 are already verified by comparing the quoted values against measurements recomputed from the image, which does not trust the host's event log at all. That is strictly stronger than replaying it. The types.rs doc and verifier/README.md step 2 now say so.

Split out of #1251.

The field documented itself as verifying RTMR 0-2 digests "through replay
comparison with the quote". Nothing in dstack-verifier or dstack-attest replays
a boot-time event log: the flag is set once the runtime event log replays to
its register and the app identity decodes out of its payloads. A TDX quote's
RTMR 0-2 entries reach only the `--debug` diff and the three named ACPI digests
the lite path cross-checks.

Correct the comment rather than the code. Replaying RTMR 0-2 would add nothing:
those registers are already checked against measurements recomputed from the OS
image, which does not trust the host's event log at all, and is the stronger of
the two checks.
SEV-SNP has no runtime event log (identity comes from mr_config via
HOST_DATA), Nitro Enclave and GCP TDX were missing, and the replay runs
during quote verification, so a mismatch fails quote_verified. The
--debug diff does not read event log entries, and the lite ACPI digest
check is fatal rather than diagnostic.
@kvinwang
kvinwang merged commit 59fee20 into next Sep 23, 2026
11 checks passed
@kvinwang
kvinwang deleted the docs/verifier-event-log-verified branch September 23, 2026 06:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant