Skip to content

feat(tee): SEV-SNP attestation verifier (Tier 3) - #21

Merged
imran-siddique merged 1 commit into
mainfrom
feat/sev-snp-attestation
Jul 1, 2026
Merged

feat(tee): SEV-SNP attestation verifier (Tier 3)#21
imran-siddique merged 1 commit into
mainfrom
feat/sev-snp-attestation

Conversation

@imran-siddique

Copy link
Copy Markdown
Member

What

First Tier 3 attestation backend: a real, fail-closed AMD SEV-SNP verifier.

  • ca2a_runtime.tee.sev_snp: parses the SEV-SNP ATTESTATION_REPORT (measurement, report data, ECDSA-P384 signature) and adds SevSnpProvider (report generation requires a real SEV-SNP guest; detect() is False otherwise).
  • ca2a_verify.sev_snp: VCEK certificate chain verification (ARK -> ASK -> VCEK to a trusted AMD root), ECDSA-P384 report-signature verification over the report body, and measurement / report-data binding.

Validation

Per the agreed approach (real vectors with synthetic fallback):

  • Real: the certificate-chain path is verified against the genuine AMD Milan ARK/ASK root chain fetched from AMD KDS (committed under tests/fixtures/sev_snp/).
  • Synthetic: the report-signature path is exercised end to end with a synthetic VCEK and report, because a real report + VCEK pair needs SEV-SNP hardware.

Tamper, wrong measurement, untrusted root, broken chain, unsupported algorithm, and short reports all fail closed. Suite: 70 passed, 3 skipped, 99% coverage.

Scope / honesty

TDX and TPM backends remain Tier 3 (tracked in #3, #4). End-to-end validation against real hardware vectors and unblocking claim C6 remain open (#6). LIMITATIONS, ROADMAP, and the attestation spec are updated to state exactly what is validated vs pending.

Closes #2
Closes #5

🤖 Generated with Claude Code

Implement real AMD SEV-SNP attestation appraisal, all fail-closed:
- ca2a_runtime.tee.sev_snp: ATTESTATION_REPORT parsing (measurement, report
  data, ECDSA-P384 signature) and SevSnpProvider (attest requires a real
  SEV-SNP guest; detect() is False otherwise).
- ca2a_verify.sev_snp: VCEK certificate chain verification (ARK -> ASK -> VCEK
  to a trusted AMD root), ECDSA-P384 report-signature verification over the
  report body, and measurement/report-data binding.

Validation: the certificate-chain path is exercised against the genuine AMD
Milan ARK/ASK root chain fetched from AMD KDS (tests/fixtures/sev_snp/). The
report-signature path is exercised end to end with a synthetic VCEK and report,
since a real report plus VCEK pair requires SEV-SNP hardware. Tamper, wrong
measurement, untrusted root, broken chain, and malformed inputs all fail closed.

TDX and TPM backends remain Tier 3. Suite: 70 passed, 3 skipped, 99% coverage.

Closes #2
Closes #5

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@imran-siddique
imran-siddique merged commit e775a00 into main Jul 1, 2026
11 checks passed
@imran-siddique
imran-siddique deleted the feat/sev-snp-attestation branch July 1, 2026 16:17
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.

feat(tee): OPAQUE managed runtime provider (explicit opt-in) feat(tee): SEV-SNP attestation backend (VCEK chain via AMD KDS)

1 participant