Linux Integrity Measurement development
 help / color / mirror / Atom feed
From: Matthew Garrett <mjg59@srcf.ucam.org>
To: James Bottomley <James.Bottomley@hansenpartnership.com>
Cc: Matthew Garrett <matthewg@nvidia.com>,
	keyrings@vger.kernel.org, linux-integrity@vger.kernel.org,
	rafael@kernel.org, linux-pm@vger.kernel.org,
	linux-efi@vger.kernel.org
Subject: Re: [PATCH 01/17] tpm: Define a kernel-owned TPM NV index that can't be modified by userland
Date: Sat, 10 Oct 2026 14:26:31 -0700	[thread overview]
Message-ID: <asqthz69ohnMVCye@srcf.ucam.org> (raw)
In-Reply-To: <435907614242e82ecde1767a967a3110fca6fb37.camel@HansenPartnership.com>

On Sat, Oct 10, 2026 at 11:22:34AM +0200, James Bottomley wrote:

> The reason I never really proposed such a scheme is the rollback
> problem (old version of OS or non-Linux OS can create the NV index from
> user space bypassing the kernel only block) which you try to solve with
> PCR5.  Do you have any data for how widespread measuring
> exitbootservices is?  I know edk2 does it, but I just looked on my
> XPS13 and I only have two PCR5 events: a separator and the GPT table,
> so it's definitely in violation, but if Dells don't do this then it's
> indicative that many other manufacturers might not as well.

Does your log replay correctly for PCR 5? It's *extremely* common for 
the extension to happen without logging, since logging needs to be done 
into the late events table and almost nobody got that right until a few 
years ago (hence 
https://github.com/google/go-attestation/blob/master/attest/eventlog_workarounds.go#L70)

> If we do have a problem with lack of manufacturer compliance, one other
> way I've got on my todo list is fake trusted launch: now that
> Trenchboot is heading upstream, we have the real trusted launch, but
> that's usually too fiddly for most people, so I was thinking if we
> could get enough of the TXT launch to happen to open the localities
> (without bothering too much about anything else) that might be easier
> and give us the ability to run the Kernel in locality 2.

Remember that many consumer devices don't implement TXT, it's only the 
enterprise SKUs that tend to. But that would be funny - it's the same 
sort of shape as an awful hack that's used on some of the Qualcomm 
laptops to get access to EL2. Localities are very clearly the Right Way 
to deal with this and ugh if we'd been having this conversation 20 years 
ago instead.
 
> > Reserve NV index 0x014c4853 for use by the kernel, and filter
> > commands submitted through /dev/tpm* and /dev/tpmrm* so that
> > userspace cannot undefine or modify it. Blocking definition is more
> > awkward so let's allow that for now, not being able to modify
> > ithttps://www.bbc.co.uk/sounds/play/p0pfxh72
> > means there's nothing interesting they can do there. The filter
> > simply validates which handle the relevant set of commands is
> > referring to and returns -EPERM if it's the kernel one.
> 
> As you say there are several other use cases, including mine above and
> NV PCRs, that can only be extended by the kernel, so I think this
> should be a range from the get go.

I've got a single index from the UAPI people's range right now, if we 
want more the easiest thing would probably be to ask TCG for our own 
carve out. I don't think the process would be difficult.

  reply	other threads:[~2026-10-10 21:26 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-08 13:20 [RFC] Make hibernation work with lockdown Matthew Garrett
2026-10-08 13:20 ` [PATCH 01/17] tpm: Define a kernel-owned TPM NV index that can't be modified by userland Matthew Garrett
2026-10-08 13:41   ` Matthew Garrett
2026-10-08 16:24     ` Jarkko Sakkinen
2026-10-08 16:23   ` Jarkko Sakkinen
2026-10-09  8:33     ` Matthew Garrett
2026-10-10 21:36       ` Jarkko Sakkinen
2026-10-08 17:06   ` Ilias Apalodimas
2026-10-10  9:22   ` James Bottomley
2026-10-10 21:26     ` Matthew Garrett [this message]
2026-10-08 13:20 ` [PATCH 02/17] efi: Add a mechanism to modify TPM state depending on kernel security features Matthew Garrett
2026-10-08 16:38   ` Jarkko Sakkinen
2026-10-08 13:20 ` [PATCH 03/17] tpm: Allow tpm2_start_auth_session() to start an audit session Matthew Garrett
2026-10-08 13:20 ` [PATCH 04/17] tpm: Log commands executed in " Matthew Garrett
2026-10-08 13:20 ` [PATCH 05/17] tpm: Add a kernel attestation key and signed audit digest retrieval Matthew Garrett
2026-10-08 16:45   ` James Bottomley
2026-10-09  8:29     ` Matthew Garrett
2026-10-08 13:20 ` [PATCH 06/17] tpm: Use TPM2_NV_ReadPublic to read NV index names Matthew Garrett
2026-10-08 13:20 ` [PATCH 07/17] tpm: Add in-kernel support for reading NV indices Matthew Garrett
2026-10-08 13:20 ` [PATCH 08/17] tpm: Add NV define, undefine and write helpers Matthew Garrett
2026-10-08 13:20 ` [PATCH 09/17] tpm: Provision the kernel NV index at registration Matthew Garrett
2026-10-08 13:20 ` [PATCH 10/17] tpm: Move the bounds-checked response reader to a header Matthew Garrett
2026-10-08 13:20 ` [PATCH 11/17] tpm: Add kernel signing key creation with audited provenance Matthew Garrett
2026-10-08 17:00   ` James Bottomley
2026-10-09  8:31     ` Matthew Garrett
2026-10-08 13:20 ` [PATCH 12/17] tpm: Add signing with the kernel signing key Matthew Garrett
2026-10-08 13:20 ` [PATCH 13/17] tpm: Add verification of kernel signing key provenance Matthew Garrett
2026-10-10  9:34   ` James Bottomley
2026-10-10 21:18     ` Matthew Garrett
2026-10-10  9:42   ` James Bottomley
2026-10-10 21:20     ` Matthew Garrett
2026-10-08 13:20 ` [PATCH 14/17] PM: hibernate: Add image digest and signature page infrastructure Matthew Garrett
2026-10-08 13:20 ` [PATCH 15/17] PM: hibernate: Sign and verify images with a kernel-generated TPM key Matthew Garrett
2026-10-08 13:20 ` [PATCH 16/17] PM: hibernate: Refuse to verify images with a virtual TPM Matthew Garrett
2026-10-08 13:20 ` [PATCH 17/17] PM: hibernate: Allow hibernation under lockdown with signed images Matthew Garrett
2026-10-08 16:53   ` Jarkko Sakkinen
2026-10-09  8:31     ` Matthew Garrett
2026-10-10 21:29       ` Jarkko Sakkinen
2026-10-08 15:56 ` [RFC] Make hibernation work with lockdown Jarkko Sakkinen

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=asqthz69ohnMVCye@srcf.ucam.org \
    --to=mjg59@srcf.ucam.org \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=keyrings@vger.kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=matthewg@nvidia.com \
    --cc=rafael@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