Why attestation matters
When you verify attestation, you prove your AI runs on real TEE hardware with authentic software. This gives you cryptographic proof that your hardware comes from NVIDIA or Intel, not some counterfeit supplier. You also confirm the software hasn’t been tampered with and your workloads stay protected.Verify TEE hardware stack
Let’s start by verifying your hardware is genuine. You need to check both GPUs and CPUs because TEE protection requires both to work together. If either one fails verification, your entire security model breaks down. First, you’ll generate a fresh nonce to ensure attestation freshness. Then you’ll verify NVIDIA GPUs are real and running in TEE mode. Next you’ll check Intel CPUs have TEE protections enabled and verify the report data binds the signing key and nonce. Finally, you’ll confirm the cryptographic features actually work. Here’s a Python example that walks through the entire verification process.Generate fresh nonce
Before fetching the attestation, generate a random nonce. This nonce gets embedded in the TEE’s cryptographic proof, ensuring the attestation was generated fresh for your request and not replayed from an old attestation.Get the attestation report
Now fetch the attestation report with your nonce. This report contains all the cryptographic proofs you need.Verify NVIDIA GPU attestation
Now let’s verify your NVIDIA GPUs are genuine. You’ll send thenvidia_payload from your report to NVIDIA’s own attestation service. Why NVIDIA’s service? Because only NVIDIA can confirm their hardware is authentic - they built secret keys into each chip during manufacturing.
x-nvidia-overall-att-result: True for verified authentic hardware.
Verify Intel TDX CPU attestation
For Intel CPUs, you’ll verify the TDX quote using Phala’s verification service. This service decodes and validates Intel’s cryptographic proof.intel_result contains the decoded quote data we’ll use next, including reportdata and mrconfig fields.
For manual verification, you can paste the intel_quote value into the TEE Attestation Explorer to see decoded details about TDX version and security features. You can also verify the quote locally using our open source Intel DCAP verifier dcap-qvl.
Verify report data binding
Now verify that the TDX report data cryptographically binds the signing key and your nonce to the hardware. The first 64 bytes of TDXreportdata contain:
- Bytes 0-31: Signing address (ECDSA or Ed25519 public key)
- Bytes 32-63: Your request nonce
- The signing key was generated inside the TEE (it’s embedded in hardware-attested report data)
- The attestation is fresh (it contains your unique nonce)
- The signing address you’ll use for signature verification actually belongs to this TEE instance
Verify TEE software stack
Your hardware checks out. Now you need to verify the software running on that hardware is exactly what you expect. The software verification detects supply chain attacks where someone modifies the OS, injects malicious code, or breaks the chain of trust between hardware and application. You’ll verify each layer - OS, application code, and cryptographic keys - to ensure the entire stack is authentic.1. Verify operating system integrity
First, check the OS hasn’t been tampered with. The TEE measures every byte of the operating system when it boots, creating a cryptographic fingerprint. You’ll compare this fingerprint against known good values. Follow this verification process to measure the OS image and compare it with TCB (Trusted Computing Base) values. The TCB values come from the dstack-os reproducible build result, and represent a clean, unmodified system. If even one byte changes, the fingerprint won’t match.2. Verify Docker compose manifest
Next, verify your application code hasn’t been modified. The TEE measures the entire Docker Compose configuration and embeds the hash in the TDX quote’smr_config field.
mr_config measurement is part of the TDX quote that Intel’s hardware signed, so you know this configuration hasn’t been modified after TEE boot.
3. Verify build provenance
Finally, verify the container images in your Docker Compose were built from expected source repositories. The verification extracts all container image digests and checks their Sigstore provenance.- Verify the container was built from the expected GitHub repository
- Review the GitHub Actions workflow that built the image
- Audit the build provenance and supply chain metadata
4. Verify distributed root-of-trust
The KMS ties everything together - hardware, OS, and application. It’s the distributed system that manages all cryptographic operations and decides which applications can boot. The KMS generates two root keys when it first boots: one for signing TLS certificates and another for deriving application-specific keys. These keys never leave the TEE. The KMS Verifier code shows how to verify the KMS itself runs in a verified TEE and that its keys haven’t been tampered with.5. Verify network end-to-end encryption
Finally, verify that all network traffic stays encrypted and under TEE control. The TEE generates its own TLS keys internally - they never exist outside the secure enclave. This means even if someone compromises the host system, they can’t intercept your traffic. For more details, your can check the docs of Domain Attestation.Complete verification example
For a complete Python script that performs all the verifications above, see the attestation verifier. This script handles:- Generating fresh nonce for attestation
- Fetching the attestation report from Confidential AI API
- Verifying NVIDIA GPUs through their attestation service
- Verifying Intel TDX quote
- Validating report data binds signing address and nonce
- Verifying Docker compose manifest matches mr_config
- Checking Sigstore provenance for all container images

