You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Attestation model: One-way. Enclave attests to host via NSM COSE_Sign1 (NitroProvider); host uses MockProvider because it is not inside a TEE. The host verifies the enclave's Nitro attestation (NitroVerifier with PCR pinning); the enclave accepts the host without attestation (MockVerifier). This is by design — the host runs on the same EC2 instance, not in a separate TEE.
Model loading: Bundled in EIF Docker image via --model-dir. KMS/S3 model fetch is available but requires separate kms_proxy_host.
PCR pinning: Set EPHEMERALML_EXPECTED_PCR0/1/2 env vars on the host to pin enclave measurements.
Direct Mode (not yet supported in production)
--direct mode is available in mock and GCP modes but not yet in Nitro production.
The production enclave rejects --direct with a clear error message.
A VSock-based direct server would be needed (tracked as future work).
Known Limitations
KMS/S3 model loading: Not yet integrated into the production pipeline path. Use --model-dir with model files bundled in the Docker image.
Multi-stage pipelines: VSock infrastructure supports it, but only single-stage has been tested on real Nitro hardware.
tokio-vsock 0.7: Workspace upgraded from 0.4 to 0.7 for pipeline compatibility.
Feature Flag Compatibility
Feature
Enclave
Host
Client
Common
mock
Default, mock attestation
Default, mock transport
Default, MockVerifierBridge
N/A
production
AWS Nitro deps (NSM, VSock)
VSock + NitroVerifier + MockProvider (one-way attestation: host is not in TEE)
CoseVerifierBridge
N/A
gcp
tdx + reqwest + base64, TDX attestation
N/A
TdxEnvelopeVerifierBridge
N/A
tdx
OpenSSL + TDX attestation
N/A
N/A
N/A
cuda
CUDA candle backends
N/A
N/A
N/A
benchmark
N/A
N/A
ML deps for benchmarks
N/A
Mutually exclusive:mock, production, and gcp cannot be combined (compile_error! in all crates).
Client Verifier Dispatch
The client uses a 3-way compile-time dispatch for attestation verification:
Feature
Verifier
Attestation Format
mock
MockVerifierBridge
Mock COSE_Sign1
gcp
TdxEnvelopeVerifierBridge
TDX quote in CBOR envelope
production (default)
CoseVerifierBridge
Nitro NSM COSE_Sign1
The GCP verifier decodes a TeeAttestationEnvelope (CBOR: {platform, tdx_wire, user_data}) — verifies the inner TDX document and extracts the receipt signing key from user_data.
Architecture Differences
Aspect
AWS Nitro
GCP TDX CVM
GCP GPU (a3-highgpu-1g)
Binaries needed
enclave + host + client
enclave + client
enclave + client (via Dockerfile.gpu)
Host process
Required (orchestrator + KMS proxy)
Not needed (direct access)
Not needed (direct access)
Network from enclave
None (VSock only)
Full (TCP, HTTPS)
Full (TCP, HTTPS)
Pipeline transport
VSock (host ↔ enclave)
TCP (0.0.0.0)
TCP (0.0.0.0)
KMS auth
NSM attestation → AWS KMS Recipient
GcpKmsClient (Attestation API → WIP/WIF → Cloud KMS)