From: Peter Fang <peter.fang@intel.com>
To: Jason Gunthorpe <jgg@ziepe.ca>
Cc: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>,
"suzuki.poulose@arm.com" <suzuki.poulose@arm.com>,
"drdeeglaze@gmail.com" <drdeeglaze@gmail.com>,
"James.Bottomley@hansenpartnership.com"
<James.Bottomley@hansenpartnership.com>,
"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
"Xing, Cedric" <cedric.xing@intel.com>,
"alistair.francis@wdc.com" <alistair.francis@wdc.com>,
"linux-api@vger.kernel.org" <linux-api@vger.kernel.org>,
"Reshetova, Elena" <elena.reshetova@intel.com>,
"kas@kernel.org" <kas@kernel.org>,
"ankita@nvidia.com" <ankita@nvidia.com>,
"jiri@resnulli.us" <jiri@resnulli.us>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Jiang, Dave" <dave.jiang@intel.com>,
"Quigley, David" <david.quigley@intel.com>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"pgonda@google.com" <pgonda@google.com>,
"jpiotrowski@nvidia.com" <jpiotrowski@nvidia.com>,
"Vivi, Rodrigo" <rodrigo.vivi@intel.com>,
"lukas@wunner.de" <lukas@wunner.de>,
"jic23@kernel.org" <jic23@kernel.org>,
"x86@kernel.org" <x86@kernel.org>,
"sameo@meta.com" <sameo@meta.com>, "aik@amd.com" <aik@amd.com>,
"sathyanarayanan.kuppuswamy@linux.intel.com"
<sathyanarayanan.kuppuswamy@linux.intel.com>,
"ksinyuk@kernel.org" <ksinyuk@kernel.org>,
"qinkun@google.com" <qinkun@google.com>
Subject: Re: [PATCH RFC 20/20] attestation: Add the TDX family implementation
Date: Fri, 6 Nov 2026 13:47:52 -0800 [thread overview]
Message-ID: <au5LCE1jau0yDo5S@intel.com> (raw)
In-Reply-To: <20261103005851.GH3889730@ziepe.ca>
On Mon, Nov 02, 2026 at 08:58:51PM -0400, Jason Gunthorpe wrote:
>
> > > If you also want to have a way to query specific types, like AMD's
> > > guid thing, then that's fine too. But I think integrating into systemd
> > > report might be a bit tricky so I'm not sure it is a great idea.
> > >
> > > In all cases the format of the report is labled, passed to userspace
> > > and given to the verifier. I see Intel already defined DICE format as
> > > 'larger than 8k'.
> >
> > I'll have to check (or maybe Peter can chime in) if there is some easy label to
> > look at.
There are many ways we can label the quotes. For example:
- tdx-quote-sgx-1.0 (legacy SGX quote)
- tdx-quote-eat-cwt-1.0 (ECDSA signed DICE quote)
- tdx-quote-eat-cwt-2.0 (ECDSA/MLDSA signed DICE quote)
- ...
Or, at a finer grain level:
- tdx-quote-eat-cwt-1.0-ecdsa
- tdx-quote-eat-cwt-1.0-mldsa
- ...
But regarding this labeling, I have some questions below...
> >
> > > We'd probably want to give that a dedicated label in
> > > CTLV land.
> >
> > Not following what you mean exactly. A CTLV format that contains the report? Or
> > a user ABI way to request a certain format?
>
> The CTVL output will always be something like {label, data blob}, for
> everything so it is self described.
>
> Since the DICE and non-DICE TDX quotes sound non-interoperable they
> should have different labels.. I guess? I really don't know the
> details of TDX enough to say.
Yep, they're non-interoperable and won't share the same label.
>
> > > One of the things I'm quite adament about on the data labeling is that
> > > if something sees Blob type A then it should at least be able to
> > > verify the signature. Further format variation should be self
> > > describing data within the signed payload. If it is so different that
> > > you can't verify the signature then you have to give it a different
> > > label too.
> >
> > I'll make sure this made it back to our attestation people. (probably someone
> > already picked it up)
With TDX DICE quotes, this is already the case (the signature is
verifiable). This may not be possible with legacy quotes, but they're a
thing of the past.
>
> Yeah, I'm quite adament about this. I don't want this to turn into a
> funnel for undefined binary blobs that nobody can understand. At a
> minimum the signature has to parse, and at the maximum I'd love to
> insist on a userspace implementation to dump the contents. We will
> see.
Hi Jason,
I think this in general is in line with the TDX attestation design. In
an earlier thread you had said:
"I think in the way this stuff ended up being used the userspace isn't
actually aware. [...] The verifier needs to be aware of the format,
but the collection agent should not need special knowledge."
... which totally makes sense to me.
What pops out at me is later when you talked about data labeling:
"Userspace would collect all the blobs and the labels then ship them
to the verifier which has to understand how the data described by the
label is organized."
For TDX, the direction so far has been to keep the guest as simple as
possible in the attestation process. So the "quote type" knowledge is
pushed into the TDX module and the remote verifier. The host kernel is
mostly tasked with transporting the quote blob from the TDX module back
to the guest. In other words, TDX doesn't have any quote type knowledge
outside of the module itself. And as far as I know, parsing these blobs
is sort of a pain.
The TDX DICE blobs are actually self-describing, meaning the verifier
can follow a schema, parse the blob straight away, and know what's
inside, including how to verify the signature. They're also
distinguishable from the legacy quotes. A launched guest is guaranteed
to have a stable format for its quotes. So this makes me wonder how the
labeling should be done. Do you think it makes sense to just have a
"primary raw TDX quote" label and let the TDX quote blob describe
itself? Also, I think currently there are no plans to add
secondary/supplementary blobs alongside the quote itself.
Thanks,
Peter
>
> This will naturally force people to use the right labels since they
> won't be able to make a dumper if they don't.
>
> Jason
>
next prev parent reply other threads:[~2026-11-06 21:48 UTC|newest]
Thread overview: 199+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-15 14:50 [PATCH RFC 00/20] attestation: Add a common subsystem and TDX support Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 01/20] ctlv: Add the schema language and generator Jiri Pirko
2026-10-20 22:31 ` Jonathan Cameron
2026-10-21 13:23 ` Jiri Pirko
2026-10-27 8:34 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 02/20] ctlv: Add the UAPI wire format and family API Jiri Pirko
2026-10-19 23:29 ` Jason Gunthorpe
2026-10-20 12:26 ` Jiri Pirko
2026-10-20 23:00 ` Jonathan Cameron
2026-10-20 23:39 ` Jonathan Cameron
2026-10-21 13:54 ` Jiri Pirko
2026-10-26 18:55 ` Yeoreum Yun
2026-10-27 8:02 ` Jiri Pirko
2026-10-27 14:15 ` Jason Gunthorpe
2026-10-27 14:48 ` Yeoreum Yun
2026-10-27 15:17 ` Jason Gunthorpe
2026-10-27 15:55 ` Yeoreum Yun
2026-11-05 13:11 ` Jiri Pirko
2026-11-05 13:51 ` Yeoreum Yun
2026-11-05 16:53 ` Yeoreum Yun
2026-10-15 14:50 ` [PATCH RFC 03/20] ctlv: Add the root family specification and generated files Jiri Pirko
2026-10-19 23:29 ` Jason Gunthorpe
2026-10-20 12:28 ` Jiri Pirko
2026-10-20 12:55 ` Jason Gunthorpe
2026-10-20 14:07 ` Jiri Pirko
2026-10-20 23:30 ` Jonathan Cameron
2026-10-21 16:25 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 04/20] Documentation: ctlv: Add userspace ABI Jiri Pirko
2026-10-19 23:29 ` Jason Gunthorpe
2026-10-20 14:06 ` Jiri Pirko
2026-10-21 0:11 ` Jonathan Cameron
2026-10-22 9:01 ` Jiri Pirko
2026-10-23 19:23 ` Jonathan Cameron
2026-10-29 18:53 ` Sergii Dmytruk
2026-11-03 10:30 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 05/20] ctlv: Prepare message input handling Jiri Pirko
2026-10-21 0:43 ` Jonathan Cameron
2026-10-22 8:27 ` Jiri Pirko
2026-10-22 18:39 ` Jason Gunthorpe
2026-10-23 12:55 ` Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-10-27 10:17 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 06/20] ctlv: Prepare blob descriptor validation Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 07/20] ctlv: Prepare schema validation Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 08/20] ctlv: Prepare message output handling Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-11-02 19:19 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 09/20] ctlv: Prepare VA blob handling Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 10/20] ctlv: Prepare event queue support Jiri Pirko
2026-10-21 1:12 ` Jonathan Cameron
2026-10-22 9:04 ` Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-10-26 14:45 ` Jiri Pirko
2026-10-27 12:38 ` Yeoreum Yun
2026-11-02 12:49 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 11/20] ctlv: Prepare runtime introspection Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-10-26 14:52 ` Jiri Pirko
2026-10-26 16:12 ` Jason Gunthorpe
2026-10-30 9:40 ` Jiri Pirko
2026-10-27 10:21 ` Jiri Pirko
2026-10-30 9:53 ` Jiri Pirko
2026-11-03 1:05 ` Jason Gunthorpe
2026-11-03 9:29 ` Jiri Pirko
2026-11-04 17:57 ` Jason Gunthorpe
2026-10-15 14:50 ` [PATCH RFC 12/20] ctlv: Add device and operation dispatch Jiri Pirko
2026-10-21 1:25 ` Jonathan Cameron
2026-10-22 9:05 ` Jiri Pirko
2026-10-22 18:43 ` Jason Gunthorpe
2026-10-23 12:58 ` Jiri Pirko
2026-10-23 14:26 ` Jason Gunthorpe
2026-10-26 13:48 ` Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-10-27 13:38 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 13/20] Documentation: ctlv: Describe how to write a family Jiri Pirko
2026-10-19 23:29 ` Jason Gunthorpe
2026-10-21 14:23 ` Jiri Pirko
2026-10-21 14:49 ` Jason Gunthorpe
2026-10-21 16:24 ` Jiri Pirko
2026-10-21 16:48 ` Jason Gunthorpe
2026-10-22 8:22 ` Jiri Pirko
2026-10-22 19:21 ` Jason Gunthorpe
2026-10-23 13:01 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 14/20] attestation: Add the base family specification and generated files Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-10-29 10:04 ` Jiri Pirko
2026-10-29 18:43 ` Jason Gunthorpe
2026-10-29 19:38 ` Jiri Pirko
2026-10-30 15:02 ` Jiri Pirko
2026-10-30 15:05 ` Jiri Pirko
2026-11-04 17:54 ` Jason Gunthorpe
2026-11-05 12:35 ` Jiri Pirko
2026-11-05 13:52 ` Jiri Pirko
2026-11-05 14:02 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 15/20] attestation: Prepare provider and instance core Jiri Pirko
2026-10-19 23:29 ` Jason Gunthorpe
2026-10-21 13:04 ` Jiri Pirko
2026-10-29 18:50 ` Sergii Dmytruk
2026-11-04 8:22 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 16/20] attestation: Prepare measurement register journal Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 17/20] attestation: Add CTLV operation handling Jiri Pirko
2026-11-04 19:11 ` Yeoreum Yun
2026-11-04 19:46 ` Jason Gunthorpe
2026-11-05 12:32 ` Jiri Pirko
2026-11-05 13:52 ` Yeoreum Yun
2026-11-06 8:27 ` Jiri Pirko
2026-11-06 8:57 ` Yeoreum Yun
2026-11-06 14:25 ` Jiri Pirko
2026-11-06 14:36 ` Yeoreum Yun
2026-11-06 16:03 ` Jiri Pirko
2026-11-06 16:19 ` Yeoreum Yun
2026-10-15 14:50 ` [PATCH RFC 18/20] tdx-guest: Expose the native attestation service API Jiri Pirko
2026-10-26 14:07 ` Jason Gunthorpe
2026-10-27 10:03 ` Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 19/20] attestation: Add the TDX family specification and generated files Jiri Pirko
2026-10-15 14:50 ` [PATCH RFC 20/20] attestation: Add the TDX family implementation Jiri Pirko
2026-10-22 22:07 ` Edgecombe, Rick P
2026-10-23 14:12 ` Jason Gunthorpe
2026-10-23 19:40 ` Edgecombe, Rick P
2026-10-23 22:00 ` Jason Gunthorpe
2026-11-02 19:02 ` Edgecombe, Rick P
2026-11-03 0:58 ` Jason Gunthorpe
2026-11-06 21:47 ` Peter Fang [this message]
2026-10-23 18:15 ` Jiri Pirko
2026-10-23 19:41 ` Edgecombe, Rick P
2026-10-16 23:43 ` [PATCH RFC 00/20] attestation: Add a common subsystem and TDX support Jason Gunthorpe
2026-10-17 18:16 ` Dionna Glaze
2026-10-17 19:06 ` Jarkko Sakkinen
2026-10-17 19:08 ` Jarkko Sakkinen
2026-10-17 19:22 ` Jarkko Sakkinen
2026-10-17 20:55 ` Jason Gunthorpe
2026-10-17 21:14 ` Jarkko Sakkinen
2026-10-17 20:34 ` Jason Gunthorpe
2026-10-17 20:55 ` Jarkko Sakkinen
2026-10-17 23:10 ` Jason Gunthorpe
2026-10-18 23:53 ` Dionna Glaze
2026-10-19 12:08 ` Jiri Pirko
2026-10-19 16:10 ` Dionna Glaze
2026-10-19 22:56 ` Jason Gunthorpe
2026-10-21 8:33 ` Jiri Pirko
2026-10-21 14:12 ` Mimi Zohar
2026-10-21 14:35 ` Jason Gunthorpe
2026-10-21 19:05 ` Mimi Zohar
2026-10-22 10:54 ` Jiri Pirko
2026-10-22 11:24 ` Mimi Zohar
2026-10-22 18:51 ` Jason Gunthorpe
2026-10-22 19:19 ` Jarkko Sakkinen
2026-10-22 19:23 ` Jason Gunthorpe
2026-10-22 19:40 ` Jarkko Sakkinen
2026-10-22 19:40 ` James Bottomley
2026-10-22 12:26 ` James Bottomley
2026-10-22 13:11 ` Jason Gunthorpe
2026-10-22 14:07 ` James Bottomley
2026-10-22 19:19 ` Jason Gunthorpe
2026-10-22 19:37 ` Mimi Zohar
2026-10-22 19:45 ` Jason Gunthorpe
2026-10-22 19:52 ` James Bottomley
2026-10-22 20:43 ` Mimi Zohar
2026-10-20 9:26 ` Jiri Pirko
2026-10-20 13:45 ` Mimi Zohar
2026-10-20 14:06 ` Jason Gunthorpe
2026-10-20 15:22 ` Mimi Zohar
2026-10-20 16:11 ` Yeoreum Yun
2026-10-20 16:52 ` Jason Gunthorpe
2026-10-21 12:23 ` Mimi Zohar
2026-10-21 13:18 ` Jarkko Sakkinen
2026-10-21 13:50 ` Yeoreum Yun
2026-10-21 13:51 ` Jason Gunthorpe
2026-10-21 14:31 ` Mimi Zohar
2026-10-21 14:39 ` Jason Gunthorpe
2026-10-21 12:48 ` James Bottomley
2026-10-21 13:55 ` Jason Gunthorpe
2026-10-19 12:40 ` Jarkko Sakkinen
2026-10-19 23:11 ` Jason Gunthorpe
2026-10-20 12:49 ` James Bottomley
2026-10-20 13:13 ` Jason Gunthorpe
2026-10-22 10:30 ` Aneesh Kumar K.V
2026-10-22 15:38 ` Jiri Pirko
2026-10-22 16:42 ` Jason Gunthorpe
2026-10-23 8:04 ` Aneesh Kumar K.V
2026-10-23 11:32 ` Jiri Pirko
2026-10-23 14:20 ` Jason Gunthorpe
2026-10-23 15:28 ` Aneesh Kumar K.V
2026-10-23 15:42 ` Jason Gunthorpe
2026-10-23 19:13 ` Jonathan Cameron
2026-11-03 8:38 ` Jiri Pirko
2026-10-27 18:43 ` Dave Jiang
2026-10-27 19:36 ` Jason Gunthorpe
2026-10-27 23:09 ` Dave Jiang
2026-10-27 23:46 ` Jason Gunthorpe
2026-10-28 19:16 ` Dave Jiang
2026-10-29 14:09 ` Jason Gunthorpe
2026-10-29 9:32 ` Jiri Pirko
2026-10-29 9:30 ` Jiri Pirko
2026-10-29 10:07 ` Jiri Pirko
2026-10-29 7:37 ` Nikolay Borisov
2026-10-29 14:16 ` Jason Gunthorpe
2026-10-29 18:43 ` Sergii Dmytruk
2026-11-03 10:10 ` Jiri Pirko
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=au5LCE1jau0yDo5S@intel.com \
--to=peter.fang@intel.com \
--cc=James.Bottomley@hansenpartnership.com \
--cc=aik@amd.com \
--cc=alistair.francis@wdc.com \
--cc=ankita@nvidia.com \
--cc=cedric.xing@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=dave.jiang@intel.com \
--cc=david.quigley@intel.com \
--cc=drdeeglaze@gmail.com \
--cc=elena.reshetova@intel.com \
--cc=jgg@ziepe.ca \
--cc=jic23@kernel.org \
--cc=jiri@resnulli.us \
--cc=jpiotrowski@nvidia.com \
--cc=kas@kernel.org \
--cc=ksinyuk@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-coco@lists.linux.dev \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=pgonda@google.com \
--cc=qinkun@google.com \
--cc=rick.p.edgecombe@intel.com \
--cc=rodrigo.vivi@intel.com \
--cc=sameo@meta.com \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
--cc=suzuki.poulose@arm.com \
--cc=x86@kernel.org \
/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
all inboxes | Powered by JetHome®