Bootchain measurements (MRTD and RTMR0-2) are hardware-specific values that verify the TEE boot process. You must compute these measurements for your specific deployment configuration.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/concrete-security/atlas/llms.txt
Use this file to discover all available pages before exploring further.
Why measurements are hardware-specific
The same Dstack version produces different measurements on different hardware configurations. Measurements depend on:- CPU count - Number of vCPUs allocated to the VM
- Memory size - Amount of RAM allocated
- PCI hole size - PCI memory address space configuration
- Number of GPUs - GPU passthrough configuration
- Number of NVSwitches - NVLink configuration
- Hotplug configuration - Whether hotplug is enabled/disabled
- QEMU version - The QEMU version used to run the VM
What gets measured
TDX measurement registers verify the complete boot chain:| Register | Measures | Scope |
|---|---|---|
| MRTD | TD memory contents and configuration (TDVF/firmware) | Generic TDX |
| RTMR0 | Virtual hardware environment | Generic TDX |
| RTMR1 | Linux kernel | Generic TDX |
| RTMR2 | Kernel command-line and initramfs | Generic TDX |
| RTMR3 | App compose, TLS certificates, runtime measurements | Dstack-specific |
MRTD and RTMR0-2 are generic Intel TDX measurements. RTMR3 verification is Dstack-specific and handled automatically by the verifier.
Requirements
You need a Linux machine with:- Docker installed
- Cargo (Rust toolchain) installed
- Internet connection to download Dstack releases
Complete measurement process
This guide uses Dstack v0.5.4.1 Nvidia as an example. Dstack releases:- GPU releases: https://github.com/nearai/private-ml-sdk/releases
- CPU releases: https://github.com/Dstack-TEE/meta-dstack/releases
Step 1: Set up working directory
Step 2: Clone Dstack and build measurement tools
Step 3: Reproduce and extract the Dstack release
Step 4: Compute bootchain measurements
You need your target VM configuration. Example:Step 5: Compute OS image hash
The OS image hash is the SHA256 of thesha256sum.txt file:
Step 6: Clean up
Using measurements in your policy
Add the computed values to your policy configuration:Reproducibility
All Dstack measurements are computed using reproducible builds:- Building the same Dstack version on different machines produces identical measurements
- This allows independent verification of Dstack image integrity
- Build process follows: Dstack reproducible builds
Troubleshooting
Bootchain mismatch error
If you get aBootchainMismatch error:
- Verify Dstack version - Ensure the remote TEE is running the expected Dstack version
- Check hardware configuration - Verify CPU count, memory, GPUs match your measurement configuration
- Recompute measurements - Use the exact hardware configuration of your deployment
- Verify measurement tool - Ensure you’re using the correct
dstack-mrversion
OS image hash mismatch error
If you get anOsImageHashMismatch error:
- Check the TEE boot image - Verify the TEE booted with the expected Dstack image
- Recompute the hash - Ensure you computed the SHA256 of
sha256sum.txt, not individual components - Verify release integrity - Check that the Dstack release wasn’t modified
dstack-mr build failures
Ifcargo build --release fails:
- Update Rust - Ensure you have a recent Rust toolchain:
rustup update - Check dependencies - Verify Docker is running for the ACPI builder step
- Review error messages - Missing system dependencies may be indicated
References
Related
DstackTdx policy
Configure Intel TDX attestation
TCB status values
Understanding TCB security levels