Trust Domain Extensions

From HandWiki
Revision as of 18:50, 6 February 2024 by Rtexter1 (talk | contribs) (simplify)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Secure computing technology

Intel Trust Domain Extensions (TDX) is a CPU-level technology proposed by Intel in May 2021 for implementing a trusted execution environment in which virtual machines (called "Trust Domains", or TDs) are hardware-isolated from the host's Virtual Machine Monitor (VMM), hypervisor, and other software on the host. This hardware isolation is intended to prevent threat actors with administrative access or physical access to the virtual machine host from compromising aspects of the TD virtual machine's confidentiality and integrity. TDX also supports a remote attestation feature which allows users to determine that a remote system has TDX protections enabled prior to sending it sensitive data.[1]

Intel TDX is of particular use for cloud providers, as it increases isolation of customer virtual machines and provides a higher level of assurance that the cloud provider cannot access the customer's data.[2][3][4][5]

Intel TDX was described in and is pending US patent number 20210141658A1.[6]

Architecture overview

TDX consists of multiple components including Virtual Machine Extensions (VMX) instruction set architecture (ISA) extensions, a technology for memory encryption, and a new CPU operation mode called SEAM ("Secure Arbitration Mode"), which hosts the TDX module.[7]

Memory protections

TDX defines two classes of memory: shared memory and private memory. Shared memory is intended to be used for communicating with the TD host and may receive some TDX protections. Private memory received full TDX confidentiality and integrity protections.

TDX implements memory protection by encrypting the TD's memory with a per-TD AES-XTS 128-bit key. To avoid leaking ciphertext, memory access is limited to being from the SEAM mode and direct memory access is unavailable. If memory integrity protections are enabled, a MAC using SHA-3-256 is generated for the private memory and if the MAC validation fails, the TD VM is terminated. TD VM registers are also kept confidential by storing them in a per-TD save state and scrubbing them when the TD returns control to the TD VM.[1][8]

Guest-hypervisor communication

TDX provides hardware isolation of TD VMs by brokering all VMM to TD communication through the TDX module and preventing the VMM from accessing the TD's data. The VMM communicates to the TDX module using new SEAMCALL and SEAMRET CPU instructions. SEAMCALL is used by the VMM to invoke the TDX module to create, delete, or execute a TD. SEAMRET is used by the TDX module to return execution back to the VMM.[1][9][10]

Remote attestation

TDX's remote attestation feature allows someone to determine that a remote TD has TDX protections enabled prior to sending it sensitive data. The remote attestation report can be generated by the TDX module calling the SEAMREPORT instruction. The SEAMREPORT instruction generates a MAC-signed "Report" structure which includes information such as the version numbers of the TDX's components. That VMM would then convert that "Report" structure into a remotely verifiable "Quote", which it would send to the system requesting attestation.[1]

Hardware and operating system support

TDX is available for 5th generation Intel Xeon processors (codename Emerald Rapids) and Edge Enhanced Compute variants of 4th generation Xeon processors (codename Sapphire Rapids).[11]

First patches to support TDX technology in the Linux kernel were posted in the Linux kernel mailing list around June 2021,[12] were merged on May 24, 2022, and were included in the mainline Linux Kernel version 5.19.[13]

Microsoft Azure has announced that as of April 24, 2023 their new DCesv5-series and ECesv5-series virtual machines would support Intel TDX.[14] They have also published information how to use Intel TDX as part of Microsoft Azure Attestation.[15]

Comparisons to SGX

TDX is somewhat similar to SGX, as in that both are implementations of trusted execution environments. However, they are significantly different in the scope of the protections and that SGX requires that applications be rewritten to support SGX, while TDX only requires support at the hardware and operating system levels.[16] Additionally, even an operating system which does not support running as a TD VM can be protected by being launched as a nested VM within a TD VM.[1]

References

  1. 1.0 1.1 1.2 1.3 1.4 "Intel® Trust Domain Extensions". February 2022. https://cdrdv2-public.intel.com/690419/TDX-Whitepaper-February2022.pdf. 
  2. "How Google and Intel make Confidential Computing more secure". 24 April 2023. https://cloud.google.com/blog/products/identity-security/rsa-google-intel-confidential-computing-more-secure. 
  3. Cheng, Pau-Chen (27 March 2023). "Intel TDX Demystified: A Top-Down Approach". arXiv:2303.15540 [cs.CR].
  4. Sardar, Muhammad Usama; Musaev, Saidgani (7 June 2021). "Demystifying Attestation in Intel Trust Domain Extensions via Formal Verification". IEEE Access 9: 83067–83079. doi:10.1109/ACCESS.2021.3087421. Bibcode2021IEEEA...983067S. https://ieeexplore.ieee.org/document/9448036. Retrieved 20 September 2023. 
  5. Bartock, Michael; Souppaya, Murugiah; Savino, Ryan; Knoll, Tim; Shetty, Uttam; Cherfaoui, Mourad; Yeluri, Raghu; Malhotra, Akash et al. (May 2022). NIST IR 8320 Hardware-Enabled Security: Enabling a Layered Approach to Platform Security for Cloud and Edge Computing Use Cases (Report). doi:10.6028/NIST.IR.8320. 
  6. Ravi Sahita, Vedvyas Shanbhogue, "Method and apparatus for trusted devices using trust domain extensions", US patent application 20210141658A1, published 2020-11-11
  7. "Intel® Trust Domain Extensions (Intel® TDX)". https://www.intel.com/content/www/us/en/developer/articles/technical/intel-trust-domain-extensions.html. 
  8. "20. Intel Trust Domain Extensions (TDX)". https://www.kernel.org/doc/html/next/x86/tdx.html. 
  9. "Guest Hypervisor Communication Interface (GHCI) for Intel® Trust Domain Extensions (Intel® TDX)1.5". March 2023. https://cdrdv2-public.intel.com/726792/TDX%20Guest-Hypervisor%20Communication%20Interface_1.5_348552_004%20-%2020230317.pdf. 
  10. "Confidential computing platform-specific details". 16 June 2023. https://www.redhat.com/en/blog/confidential-computing-platform-specific-details. 
  11. "What Intel® Xeon Processors Support for Intel® Trust Domain Extensions (Intel® TDX)?". https://www.intel.com/content/www/us/en/support/articles/000091103/processors/intel-xeon-processors.html. 
  12. "Add INTEL_TDX_GUEST config option to selectively compile TDX guest support". 18 June 2021. https://yhbt.net/lore/all/20210618225755.662725-3-sathyanarayanan.kuppuswamy@linux.intel.com. 
  13. "x86/tdx for 5.19". 24 May 2022. https://lore.kernel.org/lkml/Yot1IAqHoRBlwe0w@zn.tnic/t/#mffd4160638e5f6f972f55f0f3ce10b6ed24bdb36. 
  14. "Preview: Introducing DCesv5 and ECesv5-series Confidential VMs with Intel TDX". 24 April 2023. https://techcommunity.microsoft.com/t5/azure-confidential-computing/preview-introducing-dcesv5-and-ecesv5-series-confidential-vms/ba-p/3800718. 
  15. "Azure Attestation EAT profile for Intel® Trust Domain Extensions (TDX)". 19 October 2023. https://learn.microsoft.com/en-us/azure/attestation/trust-domain-extensions-eat-profile. 
  16. "Intel SGX vs TDX: what is the difference?". 27 July 2022. https://www.canarybit.eu/intel-sgx-vs-tdx-what-is-the-difference/.