All of lore.kernel.org
 help / color / mirror / Atom feed
From: William Roberts <bill.c.roberts@gmail.com>
To: Matthew Garrett <mgarrett@aurora.tech>
Cc: jejb@linux.ibm.com, Evan Green <evgreen@chromium.org>,
	linux-kernel@vger.kernel.org, corbet@lwn.net,
	linux-integrity@vger.kernel.org,
	Eric Biggers <ebiggers@kernel.org>,
	gwendal@chromium.org, dianders@chromium.org,
	apronin@chromium.org, Pavel Machek <pavel@ucw.cz>,
	Ben Boeckel <me@benboeckel.net>,
	rjw@rjwysocki.net, Kees Cook <keescook@chromium.org>,
	dlunev@google.com, zohar@linux.ibm.com, jarkko@kernel.org,
	linux-pm@vger.kernel.org, Matthew Garrett <mjg59@google.com>,
	Jason Gunthorpe <jgg@ziepe.ca>, Peter Huewe <peterhuewe@gmx.de>
Subject: Re: [PATCH v5 03/11] tpm: Allow PCR 23 to be restricted to kernel-only use
Date: Tue, 10 Jan 2023 10:07:06 -0600	[thread overview]
Message-ID: <CAFftDdp5vqnzJEqAYOStvn2UqDE_VUOrO-_tnsUCmd7ML8X_uA@mail.gmail.com> (raw)
In-Reply-To: <CAHSSk06sH6Ck11R7k8Pk_30KbzLzZVdBdj5MpsNfY-R_1kt_dA@mail.gmail.com>

On Tue, Jan 3, 2023 at 2:43 PM Matthew Garrett <mgarrett@aurora.tech> wrote:
>
> On Mon, Nov 14, 2022 at 9:11 AM James Bottomley <jejb@linux.ibm.com> wrote:
> >
> > On Fri, 2022-11-11 at 15:16 -0800, Evan Green wrote:
> > > Introduce a new Kconfig, TCG_TPM_RESTRICT_PCR, which if enabled
> > > restricts usermode's ability to extend or reset PCR 23.
> >
> > Could I re ask the question here that I asked of Matthew's patch set:
> >
> > https://lore.kernel.org/all/b0c4980c8fad14115daa3040979c52f07f7fbe2c.camel@linux.ibm.com/
> >
> > Which was could we use an NVRAM index in the TPM instead of a PCR?  The
> > reason for asking was that PCRs are rather precious and might get more
> > so now that Lennart has some grand scheme for using more of them in his
> > unified boot project.  Matthew promised to play with the idea but never
> > got back to the patch set to say whether he investigated this or not.
>
> Is there any way to get key creation data to include NV indexes? If
> not, no, we can't use NVRAM.

No theirs not, but there's room for qualifyingData. So some background
on this is they use the PCR value to verify it's the right key.
Since it's added by the TPM within the trust boundary its an
unforgeable value, unlike the qdata.

I think there are better ways to verify it's the right key, i.e. the
ability to wield the key, or if you have some ability to remember
state, you
could verify the name which is cryptgraphically bound to the private
key and thus TPM2_Load will fail. From what I understand they
have no ability to remember state as their verifying and executing a
resume kernel, but I am not well versed in that area of the kernel.
It makes me think that they are checking against a hardcoded known
PCR23 state and rolling it to prevent other keys from being
generated. I would consider policy locality for controlling who can
use the key and couple with policynv if revoking long lasting keys
is a need. If they are ephemeral, theirs the NULL hierarchy.

A lot of this is conjecture, as Matthew just stopped responding.
Perhaps they are away or busy, but I just wanted to weigh in on this.

  parent reply	other threads:[~2023-01-10 16:08 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-11 23:16 [PATCH v5 00/11] Encrypted Hibernation Evan Green
2022-11-11 23:16 ` [PATCH v5 01/11] tpm: Add support for in-kernel resetting of PCRs Evan Green
2022-11-13 20:31   ` Eric Biggers
2022-11-27 16:06   ` Jarkko Sakkinen
2022-11-27 16:07     ` Jarkko Sakkinen
2022-11-11 23:16 ` [PATCH v5 02/11] tpm: Export and rename tpm2_find_and_validate_cc() Evan Green
2022-11-11 23:16 ` [PATCH v5 03/11] tpm: Allow PCR 23 to be restricted to kernel-only use Evan Green
2022-11-13 20:46   ` Eric Biggers
2022-11-14 17:11   ` James Bottomley
2022-11-27 16:33     ` Jarkko Sakkinen
2022-11-27 16:41       ` James Bottomley
2022-11-30 20:22         ` Dr. Greg
2022-11-30 21:34           ` Casey Schaufler
2022-12-02  1:10             ` Dr. Greg
2023-01-03 20:42     ` Matthew Garrett
2023-01-03 21:04       ` William Roberts
2023-01-03 21:10         ` Matthew Garrett
2023-01-14 14:55           ` James Bottomley
2023-01-14 15:11             ` William Roberts
2023-01-15  3:05             ` Matthew Garrett
2023-01-15 14:41               ` William Roberts
2023-01-17 21:26               ` James Bottomley
2023-01-21  3:29             ` Jarkko Sakkinen
2023-01-23 17:48               ` William Roberts
2023-01-24 11:51                 ` Dr. Greg
2023-01-24 12:38                 ` James Bottomley
2023-01-24 15:05                   ` William Roberts
2023-01-26 17:21                   ` Jarkko Sakkinen
2023-01-26 17:32                     ` William Roberts
2023-01-26 21:30                       ` Jarkko Sakkinen
2023-01-26 22:01                         ` William Roberts
2023-02-07 23:20                           ` Jarkko Sakkinen
2023-01-26 17:07                 ` Jarkko Sakkinen
2023-01-26 17:12                   ` Jarkko Sakkinen
2023-01-26 17:20                     ` William Roberts
2023-01-10 16:07       ` William Roberts [this message]
2022-11-27 16:29   ` Jarkko Sakkinen
2022-11-11 23:16 ` [PATCH v5 04/11] security: keys: trusted: Include TPM2 creation data Evan Green
2022-11-13 21:20   ` Eric Biggers
2022-11-14  3:32     ` James Bottomley
2022-11-14 16:32       ` Evan Green
2022-11-14 16:56         ` James Bottomley
2022-11-14 17:43           ` Evan Green
2022-11-14 18:00             ` James Bottomley
2022-12-02 21:03               ` James Bottomley
2022-12-05 18:43                 ` Evan Green
2022-11-11 23:16 ` [PATCH v5 05/11] security: keys: trusted: Allow storage of PCR values in " Evan Green
2022-11-13 22:01   ` Eric Biggers
2022-11-11 23:16 ` [PATCH v5 06/11] security: keys: trusted: Verify " Evan Green
2022-11-13 22:13   ` Eric Biggers
2022-11-11 23:16 ` [PATCH v5 07/11] PM: hibernate: Add kernel-based encryption Evan Green
2022-11-13 22:55   ` Eric Biggers
2022-11-11 23:16 ` [PATCH v5 08/11] PM: hibernate: Use TPM-backed keys to encrypt image Evan Green
2022-11-13 23:33   ` Eric Biggers
2022-11-11 23:16 ` [PATCH v5 09/11] PM: hibernate: Mix user key in encrypted hibernate Evan Green
2022-11-13 23:44   ` Eric Biggers
2022-11-11 23:16 ` [PATCH v5 10/11] PM: hibernate: Verify the digest encryption key Evan Green
2022-11-13 23:47   ` Eric Biggers
2022-11-11 23:16 ` [PATCH v5 11/11] PM: hibernate: seal the encryption key with a PCR policy Evan Green
2022-11-13 23:51   ` Eric Biggers
2022-12-07 23:54 ` [PATCH v5 00/11] Encrypted Hibernation Evan Green

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=CAFftDdp5vqnzJEqAYOStvn2UqDE_VUOrO-_tnsUCmd7ML8X_uA@mail.gmail.com \
    --to=bill.c.roberts@gmail.com \
    --cc=apronin@chromium.org \
    --cc=corbet@lwn.net \
    --cc=dianders@chromium.org \
    --cc=dlunev@google.com \
    --cc=ebiggers@kernel.org \
    --cc=evgreen@chromium.org \
    --cc=gwendal@chromium.org \
    --cc=jarkko@kernel.org \
    --cc=jejb@linux.ibm.com \
    --cc=jgg@ziepe.ca \
    --cc=keescook@chromium.org \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=me@benboeckel.net \
    --cc=mgarrett@aurora.tech \
    --cc=mjg59@google.com \
    --cc=pavel@ucw.cz \
    --cc=peterhuewe@gmx.de \
    --cc=rjw@rjwysocki.net \
    --cc=zohar@linux.ibm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.