linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
To: "dedekind1@gmail.com" <dedekind1@gmail.com>,
	"seanjc@google.com" <seanjc@google.com>
Cc: "linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>,
	"x86@kernel.org" <x86@kernel.org>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
	"kas@kernel.org" <kas@kernel.org>,
	"binbin.wu@linux.intel.com" <binbin.wu@linux.intel.com>,
	"Li, Xiaoyao" <xiaoyao.li@intel.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"sathyanarayanan.kuppuswamy@linux.intel.com"
	<sathyanarayanan.kuppuswamy@linux.intel.com>,
	"bp@alien8.de" <bp@alien8.de>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"tglx@kernel.org" <tglx@kernel.org>,
	"hpa@zytor.com" <hpa@zytor.com>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"Fang, Peter" <peter.fang@intel.com>
Subject: Re: [PATCH v3 0/4] tdx-guest: Make Quote buffer size dynamic
Date: Thu, 13 Aug 2026 20:14:19 +0000	[thread overview]
Message-ID: <4ad451969522eecb445289ca74a88ee73d51336d.camel@intel.com> (raw)
In-Reply-To: <98dcc8a12f117745a1cb9981dc8f0f1548e9c96f.camel@gmail.com>

On Thu, 2026-08-13 at 22:32 +0300, Artem Bityutskiy wrote:
> Mental model
> ============
> 
> 1. SGX-based attestation
> 
> The original SGX-style flow is two steps:
> 
> 1. The TD gets TD report.
> 2. A quoting agent signs that report and produces the quote.
> 
> What is quoting agent: a process using a special SGX enclave.
> 
> Why 2-step: the key limitation is that the quoting agent cannot fetch
> TD evidence such as FW hash or other per-TD data. So the quote is
> conceptually:
>   - TD report body
>   - signature over the report body
>   - trust material such as the public attestation key and certificate
>     chain
> 
> 2. DICE-based attestation
> 
> The DICE-based model keeps the same two-step flow for compatibility,
> but the quoting service runs in the TDX module and can read TD
> evidence directly. As a result, the quote can include:
>   - TD report body
>   - extra per-TD evidence
>   - signature over the report body and the extra evidence
>   - trust material
> 
> IOW: in the SGX-based design, it is impossible to add TD evidence to
> the quote. In the DICE-based design, it is possible.
> 
> But the question is - OK, it is possible, but why should it be done?
> 
> 3. Why freezing TD report size
> 
> Linux supports 1024-byte TD reports via the `TDX_CMD_GET_REPORT0`
> ioctl. It is already full, no more TD evidence fits, and changing TD
> report size would require a new ioctl.
> 
> Also, as I understand it, based on TDX feature requests from customers,
> there may be a need to increase TD report size more often and more
> significantly than one would expect.
> 
> Therefore, for DICE-based attestation the TDX module adds new TD
> evidence in the quote instead of expanding the TD report.
> 
> Is this the cleanest approach? Maybe not. 
> 

I was thinking the cleanest, time-travel facilitated, approach would be to have
the "report" really just be a replay protection thing and not include any TD
details. Then the quote could add everything it needed in the final format
location. So no re-verifying and shuffling things between formats. But since
that didn't work for SGX based attestation, the report has extra stuff due to
legacy. But from Linux's POV, going forward we can consider the report as really
an oversized replay protection blob and forget about the TD details in it. Isn't
it a pretty clean separation of concerns? And for Linux (guest), the benefit
shows up in not having to increase TD report size since it has really only one
job.

> A clear separation of
> concern, with TD evidence in the report and the quote only adding
> signature and trust material, does feel cleaner.
> 
> But on the other hand:
>  - The quote itself is already a per-TD data structure
>  - The it is inherently variable size because it contains
>    cryptographic material and trust data
>  - A fixed-size TD report means that at least one of them is fixed
>    size, not both.
> 
> 4. Migration-specific case
> 
> For the normal user attestation path, the TD report is TD-scoped. For
> migration, the report is effectively platform-scoped, just because the
> migration flow does not need TD-specific evidence.
> 
> I would say that clean design is when Linux does not need to know this
> and care about this specific case: be able to treat all TD reports as
> per-TD.

I was hoping you could chime in about the thing you mentioned off-list regarding
*when* the quote operation is needed for migration. As in, what stage of the TD
lifecycle and how it fits into a KVM VM TD scoped ioctl.

  reply	other threads:[~2026-08-13 20:14 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-29 12:29 [PATCH v3 0/4] tdx-guest: Make Quote buffer size dynamic Peter Fang
2026-07-29 12:29 ` [PATCH v3 1/4] x86/tdx: Add helper to query maximum TD Quote size Peter Fang
2026-07-29 12:29 ` [PATCH v3 2/4] virt: tdx-guest: Calculate the Quote buffer size safely Peter Fang
2026-07-29 18:29   ` Kuppuswamy Sathyanarayanan
2026-07-29 12:29 ` [PATCH v3 3/4] virt: tdx-guest: Use a variable to store the Quote buffer size Peter Fang
2026-07-29 18:47   ` Kuppuswamy Sathyanarayanan
2026-07-29 12:29 ` [PATCH v3 4/4] virt: tdx-guest: Allocate Quote buffer dynamically Peter Fang
2026-07-29 21:21 ` [PATCH v3 0/4] tdx-guest: Make Quote buffer size dynamic Edgecombe, Rick P
2026-08-11 22:40   ` Edgecombe, Rick P
2026-08-12 14:08     ` Sean Christopherson
2026-08-12 16:02       ` Edgecombe, Rick P
2026-08-12 16:43         ` Sean Christopherson
2026-08-12 17:22           ` Edgecombe, Rick P
2026-08-12 22:37             ` Peter Fang
2026-08-12 22:47               ` Edgecombe, Rick P
2026-08-12 23:10                 ` Sean Christopherson
2026-08-12 23:30                   ` Edgecombe, Rick P
2026-08-13 19:32                     ` Artem Bityutskiy
2026-08-13 20:14                       ` Edgecombe, Rick P [this message]
2026-08-14  5:45                         ` Artem Bityutskiy
2026-08-14  7:37                           ` Peter Fang
2026-08-14 15:55                           ` Edgecombe, Rick P
2026-08-12 23:27                 ` Peter Fang
2026-08-12 21:02         ` Peter Fang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4ad451969522eecb445289ca74a88ee73d51336d.camel@intel.com \
    --to=rick.p.edgecombe@intel.com \
    --cc=binbin.wu@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=dedekind1@gmail.com \
    --cc=hpa@zytor.com \
    --cc=kas@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-coco@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peter.fang@intel.com \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.com \
    --cc=seanjc@google.com \
    --cc=tglx@kernel.org \
    --cc=x86@kernel.org \
    --cc=xiaoyao.li@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).