| Internet-Draft | TDX+C-GPU EAR profile | May 2026 |
| Kostal, et al. | Expires 22 November 2026 | [Page] |
This document defines an Entity Attestation Token (EAT) Attestation Result (EAR) profile for the composite attestation of Intel® Trust Domain Extensions (TDX)–based Confidential Virtual Machines (CVMs) together with confidential NVIDIA GPUs (C-GPUs) deployed in Microsoft Azure. The profile outlines claims that enable relying parties to establish trust in the integrity and confidentiality of the combined confidential computing environment. Developed collaboratively by Microsoft, Intel, and NVIDIA, this work is intended to foster interoperable composite attestation across heterogeneous Trusted Execution Environments (TEEs) and confidential accelerators, while encouraging adoption and extension by verifier providers across the confidential computing ecosystem.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 22 November 2026.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.¶
This document defines an Entity Attestation Token [EAT] Attestation Result (EAR) profile for composite attestation of an Intel® Trust Domain Extensions [TDX]–based Confidential Virtual Machine (CVM) together with one or more Nvidia confidential GPUs (C-GPUs) running in Azure. It addresses scenarios where a relying party must verify that all components of a confidential compute workload—CPU, guest VM, and accelerators—are cryptographically bound and jointly trusted before releasing sensitive information such as secrets or cryptographic keys. The profile assumes a composite attestation model, where multiple hardware-backed attesters contribute evidence that is verified and consolidated by a verifier. Successful verification ensures that the components form a single, unified trust domain, preventing substitution or partial compromise. The base scenario deliberately adopts an “all‑or‑nothing” trust semantic: a relying party is expected to release secrets only when the verifier has established that all components included in the composite attestation are bound and trusted. The profile does not attempt to model partial trust graphs, or workload‑specific data‑flow constraints.¶
The objective of this profile is to provide a stable attestation result format for confidential AI deployments by defining a consistent set of claims that relying parties can process uniformly. In these environments, multiple relying parties often operate under different business and regulatory requirements, which may require the use of multiple verifiers. Without a common structure, relying parties would need to interpret diverse attestation result formats and verifier-specific claims. The Composite EAR Profile removes this complexity by defining a unified attestation result structure, allowing relying parties to evaluate results against their policies without custom parsing or translation. The profile is designed to support consistent outputs across verifiers while remaining flexible enough to incorporate future confidential computing technologies and trust signals without disrupting existing deployments.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
The canonical scenario allows a Relying Party to verify the integrity of a CVM and its associated hardware before releasing secrets. The CVM consists of confidential-computing–enabled CPUs and one or more confidential GPUs provisioned at deployment and assumed to remain static throughout its lifecycle. These components collectively form the CVM’s Trusted Compute Base (TCB), and any secrets released by the RP may be accessed only within this verified TCB.¶
The RP must verify the trustworthiness of the CPU, the CVM boot flow, and the attached confidential GPUs. To support this, the Composite token provides:¶
The composite attestation relies on foundational trust assumptions. The trust model assumes a static TCB after provisioning. Any out-of-band changes—such as hot-plugging a new GPU—violate the trust contract and must be blocked, as the composite attestation result reflects the security state only at the time of evidence collection and does not support asynchronous updates without full re-attestation. Additionally, it is assumed that to prevent lateral data leakage, each GPU within the TCB confines any secrets released by the relying party to its own isolated execution environment. Confidential data sharing with other GPUs over peer-to-peer interfaces (e.g., NVLink) is assumed to be disallowed as part of this trust model.¶
The following claims are reused from the IETF [JWT] specification. The complete definitions of the claims are available in the JSON Web Token (JWT) specification.¶
The following claims are reused from the EAT specification. The complete definitions of the claims are available in the EAT specification.¶
The following claims are reused from the IETF draft EAT Attestation Results (EAR) message format. The complete definitions of the claims are available here)¶
The following attester-reported claims appear as named members of the tdx submod's ear_evidence_claims container:¶
The following verifier-derived claims appear as named members of the tdx submod's ear_verifier_claims container:¶
The following claim appears as a peer of the other submod-level EAR claims (e.g., ear_appraisal_policy_id) within the cvm_guest submod:¶
The following attester-reported claims appear as named members of the cvm_guest submod's ear_evidence_claims container (see section 3.3):¶
The following verifier-derived claims appear as named members of the cvm_guest submod's ear_verifier_claims container (see section 3.3):¶
Below is a sample TDX + C-GPU attestation token which includes claims from this EAR profile.¶
{
"eat_profile": "points to TDX+GPU composite EAR profile in IETF website",
"eat_nonce": "a1b2c3d4e5f67890123456789abcdef0",
"iat": 1666529300,
"iss": "https://mytenant.rats.verifier.com",
"jti": "950a20caadb27206dda48f8d9f15d550d935ba5d6d074321ea34398ca5bc5975",
"nbf": 1764709981,
"exp": 1764738781,
"ear_verifier_id": {
"developer": "https://rats.verifier.com",
"build": "v1.23.0"
},
"ear_raw_evidence": "NzQ3MjY5NzM2NTYzNzQKNzQ3MjY5NzM2NTYzNzQK...",
"ear_status": "affirming",
"ear_all_submods_bound": "true",
"submods": {
"tdx": {
"ear_status": "affirming",
"ear_profile": "https://portal.trustauthority.intel.com/ear_profile.html",
"ear_trustworthiness_vector": {
"instance-identity": 2,
"executables": 2,
"hardware": 2
},
"ear_appraisal_policy_ids": [
"tdx-default-v1"
],
"ear_evidence_claims": {
"tdx_mrconfigid": "018779f38c1cc5d1e643fbfc7238bae2c227f7ffa4c72c049802942658acfc5bee000000000000000000000000000000",
"tdx_mrowner": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"tdx_mrownerconfig": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"tdx_mrseam": "7bf063280e94fb051f5dd7b1fc59ce9aac42bb961df8d44b709c9b0ff87a7b4df648657ba6d1189589feab1d5a3c9a9d",
"tdx_mrsignerseam": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"tdx_mrtd": "75f3acc2e1dfc3acf404d7eaa69a2eefcd0475a0dd6516ef5ba3cb83399c61b4aa1c638e3622bb650a514bfc6e858886",
"tdx_report_data": "b4ee5ceb6bee96cac5605b2af1d2a483f0a6f790c6de738e7d2430ba33a350a86d1ace43b90ea9421624738151b677a23a577e2fc0c6180ae786ca1cf91e0eac",
"tdx_rtmr0": "59dc57e1e3029f15034b127f0264a8e6f00db6c178bb087bc03205243d5d9daeff8bbeccced48d881c2a63d8974dbe26",
"tdx_rtmr1": "70c3be9ff6c2fab010196a5fa1dd04c1bad37a4a1d2531cb56a9762d9f3b59c4f20b630a572396da77f8238d8e056bc2",
"tdx_rtmr2": "3142d2479ce77c402ce8d67a04a67d57de798fa98748ca5f0486d4985919cad7de9a31adaa51d1073c62eafd0dfc8891",
"tdx_rtmr3": "b56c050e7ae3846678603ab7ef552bf6452710f5601337b69b00f6e8894f5b0a0f87b9ed39faebba3e2d740dba701d5b",
"tdx_seam_attributes": "0000000000000000",
"tdx_seamsvn": 258,
"tdx_td_attributes": "0000000000000000",
"tdx_td_attributes_debug": false,
"tdx_td_attributes_key_locker": false,
"tdx_td_attributes_perfmon": false,
"tdx_td_attributes_protection_keys": false,
"tdx_td_attributes_septve_disable": false,
"tdx_tee_tcb_svn": "02010600000000000000000000000000",
"tdx_xfam": "e718060000000000",
"sgx_tcb_comp_svn": "06060202030100030000000000000000",
"pce_svn": 11,
"platform_instance_id": "2ba7336ce9acf49fe7d3e3625337e510"
},
"ear_verifier_claims": {
"attester_tcb_date": "2025-05-14T00:00:00Z",
"attester_advisory_ids": [ "INTEL-SA-01192","INTEL-SA-01245"],
"attester_tcb_status": "OutOfDate",
"tdx_collateral": {
"fmspc": "B0C06F000000",
"tcbevaluationdatanumber": 20
}
}
},
"cvm_guest": {
"eat_profile": "https://aka.ms/eat-profile-cvm-guest/1.0.0",
"ear_status": "affirming",
"ear_trustworthiness_vector": {
"instance-identity": 2,
"executables": 2
},
"ear_appraisal_policy_ids": [
"policy:cvm-guest/7e8f1b2a-9c4d-4327-b59a-8d6e1a3f0c2b"
],
"ear_azurevm_policy_hash": "ndXtG3MNtueeIPCj2Y-3fDFl16CREC5FF_sUyU4fLQ8",
"ear_managed_keysets": {
"ephemeral-transfer-keys": [
{
"e": "AQAB",
"key_ops": [
"encrypt"
],
"kid": "TpmEphemeralEncryptionKey",
"kty": "RSA",
"n": "zcjFQAABYsqZUkS4w"
}
]
},
"ear_evidence_claims": {
"secureboot": true,
"azurevm_attestation_protocol_ver": "2.0",
"azurevm_attested_pcrs": [
0,
1,
2,
3,
4,
5,
6,
7
],
"azurevm_bootdebug_enabled": false,
"azurevm_dbvalidated": true,
"azurevm_dbxvalidated": true,
"azurevm_debuggersdisabled": true,
"azurevm_default_securebootkeysvalidated": true,
"azurevm_elam_enabled": false,
"azurevm_flightsigning_enabled": false,
"azurevm_hvci_policy": 0,
"azurevm_hypervisordebug_enabled": false,
"azurevm_is_windows": false,
"azurevm_kerneldebug_enabled": false,
"azurevm_osbuild": "NotApplication",
"azurevm_osdistro": "Debian GNU/Linux",
"azurevm_ostype": "Linux",
"azurevm_osversion_major": 13,
"azurevm_osversion_minor": 0,
"azurevm_signingdisabled": true,
"azurevm_testsigning_enabled": false,
"azurevm_vmid": "59ECD20B-CD92-4A84-82CB-9F3F06E9CDEC",
"runtime": {
"client_payload": {
"Nonce": "MaaSandbox Nonce : 12/2/2025 9:13:01 PM",
"RelyingPartyId": "bcd368ce93bdad7c2f67bfd7af0d6b052c127aec28802c376f54a6ca8712ae32"
},
"keys": [
{
"e": "AQAB",
"key_ops": [
"encrypt"
],
"kid": "TpmEphemeralEncryptionKey",
"kty": "RSA",
"n": "zcjFQAABYsqZUke3aw"
}
]
}
},
"ear_verifier_claims": {
"x_ms_compliance_status": "azure-compliant-cvm-guestvm"
}
},
"gpu_0": {
"eat_profile": "tag:nvidia.com,2026-05:ear/profiles/gpu/1.0",
"ear_status": "affirming",
"ear_nvidia_purpose": "CC-Bounce-Buffer",
"ear_trustworthiness_vector": {
"configuration": 2,
"executables": 2,
"hardware": 2
},
"ear_appraisal_policy_ids": [
"tag:nvidia.com,2026-05:ear/profiles/composite/generic/1.0.0",
"https://nras.attestation.nvidia.com/ear/policies/gpu/1.1"
],
"eat_nonce": "80FH7byULVei4u1YP4EirV8B7oHxIq0/1C3wE6vJ8ouq9j+F6m1X/dWO6B2qoovv",
"ear_verifier_claims": {
"ear_nvidia_evidence": {
"signature_verified": true,
"parsed": true,
"cert_chain": [
{
"status": "valid",
"ocsp_status": "good",
"expiration_date": "2036-07-15T23:02:10Z",
"revocation_reason": null
},
{
"status": "valid",
"ocsp_status": "good",
"expiration_date": "2032-07-15T23:02:10Z",
"revocation_reason": null
},
{
"status": "valid",
"ocsp_status": "good",
"expiration_date": "2028-07-15T23:02:10Z",
"revocation_reason": null
},
{
"status": "valid",
"ocsp_status": "good",
"expiration_date": "2026-07-15T23:02:10Z",
"revocation_reason": null
}
],
"akpub": "-----BEGIN PUBLIC KEY-----
\nMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEX0dHnbKG8XlTZk1LrNBFYxca/xomeYVQ\nHHnCksh1BXEBsJt4wIUjkPuTXqy1NLThQXL6m3zgP7unKAeThOKSiGr4/D9n6XMg\noFJGZMFgQYQsc3ZY+SogfgDTf5cEGaeQ\n-----END PUBLIC KEY-----\n",
"nonce_match": true
},
"ear_nvidia_rims": [
{
"fetched": true,
"signature_verified": true,
"id": "ID-Driver",
"cert_chain": [
{
"status": "valid",
"ocsp_status": "good",
"expiration_date": "2036-07-15T23:02:10Z",
"revocation_reason": null
},
{
"status": "valid",
"ocsp_status": "good",
"expiration_date": "2032-07-15T23:02:10Z",
"revocation_reason": null
},
{
"status": "valid",
"ocsp_status": "good",
"expiration_date": "2028-07-15T23:02:10Z",
"revocation_reason": null
},
{
"status": "valid",
"ocsp_status": "good",
"expiration_date": "2026-07-15T23:02:10Z",
"revocation_reason": null
}
]
},
{
"fetched": true,
"signature_verified": true,
"id": "ID-Vbios",
"schema_validated": true,
"measurements_available": true,
"cert_chain": [
{
"status": "valid",
"ocsp_status": "good",
"expiration_date": "2036-07-15T23:02:10Z",
"revocation_reason": null
},
{
"status": "valid",
"ocsp_status": "good",
"expiration_date": "2032-07-15T23:02:10Z",
"revocation_reason": null
},
{
"status": "valid",
"ocsp_status": "good",
"expiration_date": "2028-07-15T23:02:10Z",
"revocation_reason": null
},
{
"status": "valid",
"ocsp_status": "good",
"expiration_date": "2026-07-15T23:02:10Z",
"revocation_reason": null
}
]
}
],
"ear_nvidia_evidence_rim_cmp": {
"matched_env": [
{
"class": {
"vendor": "NVIDIA",
"model": "GB100 A01 FSP",
"layer": 0
},
"instance": { "type": "ueid", "value": "AQIDBAUGBwgJCgsMDQ4P" }
},
{
"class": {
"class_id": { "type": "oid", "value": "2.23.133.5.4.1" },
"vendor": "NVIDIA",
"model": "GB100 HW config"
}
}
],
"unmatched_env": [
{
"class": {
"vendor": "NVIDIA",
"model": "GB100 Fuses"
}
},
{
"class": {
"vendor": "NVIDIA",
"model": "GB100 Firmware microcodes (BootComplex reset domain)"
}
}
],
"mismatched_env": [],
"cert_chain_dti_match": true
}
},
"ear_evidence_claims": {
"oemid": "5703",
"hwmodel": "R0gxMDA="
}
}
}
}
¶