mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
To: "jgg@ziepe.ca" <jgg@ziepe.ca>
Cc: "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>,
	"Fang, Peter" <peter.fang@intel.com>,
	"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: Mon, 2 Nov 2026 19:02:37 +0000	[thread overview]
Message-ID: <7843a833723e3aad40f8fc4de3a83f5a5059280f.camel@intel.com> (raw)
In-Reply-To: <20261023220030.GM3977851@ziepe.ca>

Sorry for the delayed response...

On Fri, 2026-10-23 at 19:00 -0300, Jason Gunthorpe wrote:
> > Yea, it's strange.
> > 
> > The initial TDX attestation navigated some platform limitations. It involved
> > an SGX enclave on the host. The enclave was the thing that did the signing,
> > but it did not have any of the TD details. Only the TDX module did.
> > 
> > So the process to get a quote starts with getting a nonce from the remote
> > attester. Then the TDX module took the nonce and formed it into a MACed
> > "report" that included all the TD details it knows about. Then this report
> > is shuffled out to host userspace, which gives it to the enclave. The
> > enclave just checks it and does the signing. Then the resulting quote makes
> > its way back to the guest.
> > 
> > In the new attestation, the signing happens through the TDX module instead
> > of in an SGX enclave. Since the module already has the TD details, it can
> > just add them itself to the quote. So all it needs is the nonce. For legacy
> > reasons the original TD report is being used for the nonce delivery to host
> > userspace. New TD details are not going to be in the report.
> 
> Sounds like stuff the kernel should be hiding right? Userspace gives a
> nonce and gets back a report, it doesn't care about these details?

It is hidden in the normal attestation flow. I'm actually not sure what the
intention was for exposing it to userspace originally. But in practice, it
enables userspace to use some other guest-host communication channel to reach
the enclave on the host. So like you can run a standard distro kernel but have
some CSP specific channel for some reason.

> 
> If there is a v1 and v2 report because of this then fine, they can be
> labeled that way.

There is only one "TDX report" because it's legacy thing now.

> 
> > So I'm still not following why we would provide the TD report through the
> > standardized interface. Maybe we don't want it?
> 
> My biggest motivator is to get the measurement register stuff brought
> together so we can multiplex it intside the kernel. In that world I
> think it is pretty important that the signature covering the
> measurements be clearly affiliated with the measurement registers
> themselves so there is some hope of userspace figuring it all out.
> 
> attestation subsystem will describe it as one coherent whole, you get
> a single TDX /dev/XX that can do extend and generate a signed quote of
> those registers together. With the same interface as every other ROT.
> 
> IMHO it makes no sense to pull in measurement register and leave
> behind the quote in configfs.
> 
> I grant you there will not be a huge amount of value in moving the
> quote over besides this consistency and ease of use for userspace.
> 
> Though I am planning/hoping to have a sane admin tool here as we agree
> to things, so admin can do like:
> 
> $ attest report
>    TDX Report:
>      Xyz 
>      Abc
>    TPM Report:
>      124
>      435

Hmm. TPM report is a signed thing right? But "TDX report" is not. Or "TDX
report" is really the TDX quote?

You can almost think about TDX report like: "TDX specific thing that is intended
to be processed by the quoting enclave or the TDX module itself".

I've seen many people try to wrap their head around the TDX attestation design
at this point. Everybody thinks "this can't all be needed" and we slowly need to
go through the whole thing.

I still don't see the need to expose the TDX report (TDX definition of report)
through a generic interface. Are you thinking about having any kind of community
call for TSM? Maybe we could walk people through TDX attestation.

> 
> > > So from a TDX perspective, what would you want to have as labeled
> > > blobs for this kind of operation, now and later and maybe someday with
> > > DICE?
> > 
> > On the TDX side we would have to work through how to ask for a
> > specific type of quote. In the initial set we have planned, the host
> > will decide.
> 
> That's fine. Broadly the "default" report format should be set by the
> VM's instance type, eg defined by the CSP. It should not change
> launch to launch of the same VM.

In the attestation space, it seems there are people who want many slightly
different things. And it has been generating option complexity on top of the TDX
legacy baggage.

> 
> 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.

> 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?

> 
> Thus, if you boot instance type V1 you always get the same
> systemd-report format and a stable ABI there for your verifier. When
> you upgrade to instance type V2, the report format ABI can change and
> you have to have a V2 aware verifier to process it. Since everything
> is nicely labeled the error reporting should be better 'verifier
> failed because Intel DICE not support' is way better than 'signature
> failure'.
> 
> 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)

> 
> > Do we think there could ever be a usage for the coco guest to
> > process the quote itself? If the only use is shuffling a blob to the
> > verifier then maybe we don't need this either.
> 
> Probably not, but if you wanted to, then same process applies the
> verifier, you get the label and the blobs and you do the math.
> 
> None of thes concepts are really changing from configfs-tsm-report, it
> is just wrapped into CTLV instead of the creative use of configfs with
> hopefully a bit more robustness on the data labeling.


  reply	other threads:[~2026-11-02 19:02 UTC|newest]

Thread overview: 173+ 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-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-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-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-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-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-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 [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-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

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=7843a833723e3aad40f8fc4de3a83f5a5059280f.camel@intel.com \
    --to=rick.p.edgecombe@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=peter.fang@intel.com \
    --cc=pgonda@google.com \
    --cc=qinkun@google.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®