Internet-Draft | TDX EAT profile | April 2024 |
Kostal, et al. | Expires 25 October 2024 | [Page] |
Intel® Trust Domain Extensions (TDX) introduce architectural elements designed for the deployment of hardware-isolated virtual machines (VMs) known as trust domains (TDs). TDX is designed to provide a secure and isolated environment for running sensitive workloads or applications. This Entity Attestation Token (EAT) profile outlines claims for an Intel TDX attestation result which facilitate the establishment of trust between a relying party and the environment.¶
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 25 October 2024.¶
Copyright (c) 2024 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 profile outlines claims for an Intel® Trust Domain Extensions [TDX] attestation result, generated as an Entity Attestation Token [EAT] in a signed JSON Web Token [JWT] format using JOSE header. It doesn't contain nested tokens or a detached EAT bundle. The profile allows signing of the JWT token using RSA cryptographic algorithm. To facilitate verification of the signed JWT tokens, the verifier can expose the trusted token signing certificates using an OpenID metadata endpoint. In accordance with the standards outlined in the JSON Web Signature [JWS] specification, the receiver of the profile can use the certificate with key ID (kid) matching the kid parameter in the attestation token header for performing signature verification.¶
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.¶
This profile encompasses claims from the IETF JWT specification, the EAT specification and Intel's TDX specification.¶
The complete definitions of the following claims are available in the [JWT] specification.¶
The complete definitions of the following claims are available in the [EAT] specification.¶
The complete definitions of the following claims are available in section A.3.2 TD Quote Body of [TDX-DCAP-Quoting-Library].¶
This document defines a baseline with common requirements that all TDX profiles must satisfy.¶
The TDX attestation token is encoded in signed JSON Web Token [JWT] format.¶
Cryptographic protection is obtained by encapsulating the TDX attestation token claims-set in JWT which is built on top of the IETF JOSE standard.¶
Acknowledging the variety of markets, regulations and use cases in which the TDX attestation token can be used, the baseline profile does not impose any strong requirement on the cryptographic algorithms that need to be supported by verifiers and relying parties. The flexibility provided by the JOSE format should be sufficient to deal with the level of cryptographic agility needed to adapt to specific use cases. It is RECOMMENDED that commonly adopted algorithms are used, such as those discussed in [JOSE-ALGS]. It is expected that relying parties will accept a wider range of algorithms, while verifiers would produce TDX tokens using only one such algorithm.¶
As an attestation result format, a TDX token is always directly signed by the TDX verifier. Therefore, a TDX claims-set is never carried in a Detached EAT bundle.¶
The TDX Token supports freshness models for attestation evidence based on nonces (Section 10.2 of [RATS-Architecture]) using the eat_nonce claim. No further assumption on the specific remote attestation protocol is made.¶
Table below presents a concise view of the requirements described in the preceding sections.¶
Issue | Profile Definition |
---|---|
CBOR/JSON | JSON MUST be used |
JOSE Protection | TDX profile produces signed JWT |
Algorithms | [JOSE-ALGS] should be used |
Detached EAT Bundle Usage | Detached EAT bundles MUST NOT be sent |
Verification Key Identification | JWS Key ID method as listed in Section F.1.1 in [EAT] |
Freshness | eat_nonce |
Claims | Those defined in Section 3 of this document |
This specification adds the following values to the "JSON Web Token Claims" registry established by the JWT specification¶
IANA is requested to register the following claims.¶
-----------------------------------------------¶
Claim Name: tdx_mrsignerseam¶
Claim Description: TDX module signer¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_mrseam¶
Claim Description: Measurement of the TDX module¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_mrtd¶
Claim Description: Measurement of the TDX initial contents¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_rtmr0¶
Claim Description: Runtime extendable measurement register¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_rtmr1¶
Claim Description: Runtime extendable measurement register¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_rtmr2¶
Claim Description: Runtime extendable measurement register¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_rtmr3¶
Claim Description: Runtime extendable measurement register¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_mrconfigid¶
Claim Description: Software-defined ID for non-owner-defined configuration of the TDX¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_mrowner¶
Claim Description: Software-defined ID for the TDX's owner¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_mrownerconfig¶
Claim Description: Software-defined ID for owner-defined configuration of the TDX¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_report_data¶
Claim Description: Custom data in the TDX Report¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_seam_attributes¶
Claim Description: Additional configuration of the TDX module¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_tee_tcb_svn¶
Claim Description: Trusted Computing Base (TCB) Security Version Numbers (SVNs) of the TDX¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_xfam¶
Claim Description: Mask of CPU extended features that the TDX is allowed to use¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_seamsvn¶
Claim Description: The TDX module Security Version Number (SVN)¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_td_attributes¶
Claim Description: Attributes associated with the Trust Domain (TD)¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_td_attributes_debug¶
Claim Description: Indicates whether the TD runs in TD debug mode (set to 1) or not (set to 0)¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_td_attributes_key_locker¶
Claim Description: Indicates whether the TD is allowed to use Key Locker¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_td_attributes_perfmon¶
Claim Description: Indicates whether the TD is allowed to use Perfmon and PERF_METRICS capabilities¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_td_attributes_protection_keys¶
Claim Description: Indicates whether the TD is allowed to use Supervisor Protection Keys¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: tdx_td_attributes_septve_disable¶
Claim Description: Determines whether to disable EPT violation conversion to #VE on TD access of PENDING pages¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: attester_advisory_ids¶
Claim Description: Intel security advisories that provide insight into the reason(s) for the value of tcbStatus of the platform TCB level being evaluated¶
Specification Document(s): This document¶
-----------------------------------------------¶
Claim Name: attester_tcb_status¶
Claim Description: TCB level status of the platform being evaluated¶
Specification Document(s): This document¶
-----------------------------------------------¶
This specification re-uses the EAT and JWT specifications. Hence, the security and privacy considerations of those specifications apply here as well.¶
Additionally, the security considerations as described in [TDX-Security-Guidance] apply here too.¶
Below is a sample TDX attestation token generated by Intel® Trust Authority [TA] which includes claims from this EAT profile. The definitions of the token claims can be found in [TA-EAT-Profile].¶
{ "alg": "PS384", "jku": "https://portal.trustauthority.intel.com/certs" , "kid": "1881f519948621f7aeb538a8a5896bb3fb7c271c3522081c5dd7af1a683bac f6d90a63e82ade85c00321781591dfdf3d", "typ": "JWT" }.{ "tdx_tee_tcb_svn": "02010600000000000000000000000000", "tdx_mrseam": "360304d34a16aace0a18e09ad2d07d2b9fd3c174378e5bf10838807 9827f89ff62acc5f8c473dd40706324834e202946", "tdx_mrsignerseam": "000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000", "tdx_seam_attributes": "0000000000000000", "tdx_td_attributes": "0000000000000000", "tdx_xfam": "e718060000000000", "tdx_mrtd": "75f3acc2e1dfc3acf404d7eaa69a2eefcd0475a0dd6516ef5ba3cb8 3399c61b4aa1c638e3622bb650a514bfc6e858886", "tdx_mrconfigid": "0000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000", "tdx_mrowner": "0000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000", "tdx_mrownerconfig": "0000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000", "tdx_rtmr0": "000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000", "tdx_rtmr1": "000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000", "tdx_rtmr2": "000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000", "tdx_rtmr3": "000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000", "tdx_report_data": "7e3b88c09ed42bad38c146f542fbee862411878fa33a3fdf bffd2ad549db279200000000000000000000000000000000000000000000 00000000000000000000", "tdx_seamsvn": 2, "tdx_td_attributes_debug": false, "tdx_td_attributes_septve_disable": false, "tdx_td_attributes_protection_keys": false, "tdx_td_attributes_key_locker": false, "tdx_td_attributes_perfmon": false, "tdx_is_debuggable": false, "tdx_collateral": { "qeidcerthash": "b2ca71b8e849d5e799451b4bfe43159a0ee548032cecb2c0e4 79bf6ee3f39fd1", "qeidcrlhash": "f454dc1b9bd4ce36c04241e2c8c37a2ae26b077f2c66b919843 365318a59332c", "qeidhash": "665b5e4a8c34c24935448629894302b0bc8a054f25e43333021dd8 c93e9211be", "quotehash": "be3de7edd324a21cb73f8ba3d8ea5bd704bd27809dd6f0c8de152 5511845389c", "tcbinfocerthash": "b2ca71b8e849d5e799451b4bfe43159a0ee548032cecb2c 0e479bf6ee3f39fd1", "tcbinfocrlhash": "f454dc1b9bd4ce36c04241e2c8c37a2ae26b077f2c66b919 843365318a59332c", "tcbinfohash": "7c2b91b9aaaf0a9823f17bb6b31403fffee7fe0b658b41d9e80 2c6de8569096d" }, "attester_runtime_data": { "test-claim-name": "test-claim-value" }, "policy_ids_matched": [ { "id": "094f9b2d-5477-4607-8a5f-bd33388c60c7", "version": "v4" } ], "attester_tcb_status": "UpToDate", "attester_type": "TDX", "verifier_instance_ids": [ "64edd3d8-be70-4d03-9cb5-e5575107c87d", "56b8f9df-f6c5-4302-8142-321985f269c4", "5f6d8e1e-288a-409e-ad3f-3670f00a426c", "c82f8048-ea8b-4407-9365-3990bb646e3e" ], "dbgstat": "disabled", "eat_profile": "https://portal.trustauthority.intel.com/eat_profile" , "intuse": "generic", "ver": "1.0.0", "exp": 1696973571, "jti": "ac2ca0de-e271-4878-a56f-59e5e6b8c328", "iat": 1696973271, "iss": "Intel Trust Authority", "nbf": 1696973271 }¶
Below is a sample TDX attestation token generated by Microsoft Azure Attestation [MAA] which includes claims from this EAT profile. The definitions of the token claims can be found in [MAA-EAT-Profile].¶
{ "attester_tcb_status": "UpToDate", "dbgstat": "disabled", "eat_profile": "https://aka.ms/maa-eat-profile-tdxvm", "exp": 1697600807, "iat": 1697572007, "intuse": "generic", "iss": "https://maasand001.eus.attest.azure.net", "jti": "fb5021d13a90f5b3f5642b30d8103715c8d76ee05c9062923a04af35d0 347ade", "nbf": 1697572007, "tdx_mrconfigid": "00000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000", "tdx_mrowner": "00000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000", "tdx_mrownerconfig": "00000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000", "tdx_mrseam": "2fd279c16164a93dd5bf373d834328d46008c2b693af9ebb865 b08b2ced320c9a89b4869a9fab60fbe9d0c5a5363c656", "tdx_mrsignerseam": "000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000", "tdx_mrtd": "5be56d418d33661a6c21da77c9503a07e430b35eb92a0bd042a6b 3c4e79b3c82bb1c594e770d0d129a0724669f1e953f", "tdx_report_data": "93c6db49f2318387bcebdad0275e206725d948f9000d90 0344aa44abaef1459600000000000000000000000000000000000000000 00000000000000000000000", "tdx_rtmr0": "0000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000", "tdx_rtmr1": "0000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000", "tdx_rtmr2": "0000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000", "tdx_rtmr3": "0000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000", "tdx_seam_attributes": "0000000000000000", "tdx_seamsvn": 3, "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": "03000600000000000000000000000000", "tdx_xfam": "e718060000000000", "x-ms-attestation-type": "tdxvm", "x-ms-compliance-status": "azure-compliant-cvm", "x-ms-policy-hash": "B56nbp5slhw66peoRYkpdq1WykMkEworvdol08hnMXE", "x-ms-runtime": { "test-claim-name": "test-claim-value" }, "x-ms-ver": "1.0" }¶
Thanks to Dave Thaler for offering guidance in drafting and publishing the profile.¶