TD attestation has been supported since the handling of TDG.VP.VMCALL<GetQuote> was added. However, the documentation still states that TD attestation is future work.
Update TDX documention to match with the code and move the TD attestation section up to the feature configuration section. In addition, add a link to TDX Enabling Guide that gives further details on how to setup the platform for attestation to work. Fixes: 40da501d8989 ("i386/tdx: handle TDG.VP.VMCALL<GetQuote>") Reported-by: Benny Fuhry <benny.fu...@intel.com> Signed-off-by: Mikko Ylinen <mikko.yli...@linux.intel.com> --- docs/system/i386/tdx.rst | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/docs/system/i386/tdx.rst b/docs/system/i386/tdx.rst index 8131750b64..47d8fd023f 100644 --- a/docs/system/i386/tdx.rst +++ b/docs/system/i386/tdx.rst @@ -97,6 +97,28 @@ if the fixed-1 feature is requested to be disabled explicitly. This is newly added to QEMU for TDX because TDX has fixed-1 features that are forcibly enabled by TDX module and VMM cannot disable them. +TD attestation +~~~~~~~~~~~~~~ + +In TD guest, the attestation process is used to verify the TDX guest +trustworthiness to other entities before provisioning secrets to the guest. + +TD attestation is initiated first by calling TDG.MR.REPORT inside TD to get the +REPORT. Then the REPORT data needs to be converted into a remotely verifiable +TD-Quote signed by a service hosting TD-Quoting Enclave operating on the host. + +The guest issues TDG.VP.VMCALL<GetQuote> which is forwarded to user space by KVM. +QEMU handles the request and sends the REPORT further to a Quote Generation Service +(QGS) for signing. On success, a TD-Quote is returned back to the guest. + +To enable TD attestation, QGS destination must be configured using a +"quote-generation-socket" property. Intel reference TDX QGS supports the +following socket addresses: `{"type":"unix", "path":"/var/run/tdx-qgs/qgs.socket"}` +or `{"type": "vsock", "cid":"2","port":"<portnum>"}`. + +See TDX Enabling Guide for details on how to provision the platform for +TD attestation to work. + Launching a TD (TDX VM) ----------------------- @@ -112,6 +134,9 @@ split kernel-irqchip, as below: -machine ...,confidential-guest-support=tdx0 \\ -bios OVMF.fd \\ +Additional properties and their descriptions are documented in the QAPI +schema for the 'tdx-guest' object. + Restrictions ------------ @@ -135,19 +160,6 @@ SEAMCALLs and corresonponding QEMU change. It's targeted as future work. -TD attestation --------------- - -In TD guest, the attestation process is used to verify the TDX guest -trustworthiness to other entities before provisioning secrets to the guest. - -TD attestation is initiated first by calling TDG.MR.REPORT inside TD to get the -REPORT. Then the REPORT data needs to be converted into a remotely verifiable -Quote by SGX Quoting Enclave (QE). - -It's a future work in QEMU to add support of TD attestation since it lacks -support in current KVM. - Live Migration -------------- @@ -158,4 +170,4 @@ References - `TDX Homepage <https://www.intel.com/content/www/us/en/developer/articles/technical/intel-trust-domain-extensions.html>`__ -- `SGX QE <https://github.com/intel/SGXDataCenterAttestationPrimitives/tree/master/QuoteGeneration>`__ +- `TDX Enabling Guide <https://cc-enabling.trustedservices.intel.com/intel-tdx-enabling-guide/01/introduction/>`__ -- 2.50.1