linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paul Moore <paul@paul-moore.com>
To: Ross Philipson <ross.philipson@oracle.com>,
	trenchboot-devel@googlegroups.com
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	iommu@lists.linux-foundation.org,
	linux-integrity@vger.kernel.org, linux-doc@vger.kernel.org,
	dpsmith@apertussolutions.com, tglx@linutronix.de,
	mingo@redhat.com, bp@alien8.de, hpa@zytor.com,
	luto@amacapital.net, kanth.ghatraju@oracle.com
Subject: Re: [PATCH v4 00/14] x86: Trenchboot secure dynamic launch Linux kernel support
Date: Tue, 30 Nov 2021 20:06:49 -0500	[thread overview]
Message-ID: <CAHC9VhTJG24iG=U0geO-ZhC6OogxOu4icBrNY22+qRNpWd5PBQ@mail.gmail.com> (raw)
In-Reply-To: <1630070917-9896-1-git-send-email-ross.philipson@oracle.com>

On Fri, Aug 27, 2021 at 9:20 AM Ross Philipson
<ross.philipson@oracle.com> wrote:
>
> The larger focus of the Trechboot project (https://github.com/TrenchBoot) is to
> enhance the boot security and integrity in a unified manner. The first area of
> focus has been on the Trusted Computing Group's Dynamic Launch for establishing
> a hardware Root of Trust for Measurement, also know as DRTM (Dynamic Root of
> Trust for Measurement).

My apologies for such a late reply, but I'm just getting around to
looking at this and I have a few questions on the basic design/flow
(below) ...

> The basic flow is:
>
>  - Entry from the dynamic launch jumps to the SL stub

So I'm clear, at this point the combined stub+kernel+initramfs+cmdline
image has already been loaded into memory and the SL stub is
executing, yes?

As TrenchBoot seems to be focused on boot measurement and not
enforcing policy, I'm guessing this is considered out-of-scope (not to
mention that the combined stub+kernel image makes this less
interesting), but has any thought been given to leveraging the TXT
launch control policy, or is it simply an empty run-everything policy?

>  - SL stub fixes up the world on the BSP
>  - For TXT, SL stub wakes the APs, fixes up their worlds
>  - For TXT, APs are left halted waiting for an NMI to wake them
>  - SL stub jumps to startup_32
>  - SL main locates the TPM event log and writes the measurements of
>    configuration and module information into it.

Since the stub+kernel image are combined it looks like the kernel
measurement comes from the ACM via the MLE measurement into PCR 18,
while the stub generated measurements are extended into PCR 19 or 20
depending on the configuration, yes?

I realize that moving the TXT code into the kernel makes this
difficult (not possible?), but one of the things that was nice about
the tboot based approach (dynamic, early launch) was that it could be
extended to do different types of measurements, e.g. a signing
authority measurement similar to UEFI Secure Boot and PCR 7.  If that
is possible, I think it is something worth including in the design,
even if it isn't initially implemented.  The only thing that
immediately comes to mind would be a section/region based approach
similar to systemd-boot/gummiboot where the (signed) kernel is kept in
a well known region and verified/measured by the stub prior to jumping
into its start point.

>  - Kernel boot proceeds normally from this point.
>  - During early setup, slaunch_setup() runs to finish some validation
>    and setup tasks.
>  - The SMP bringup code is modified to wake the waiting APs. APs vector
>    to rmpiggy and start up normally from that point.
>  - SL platform module is registered as a late initcall module. It reads
>    the TPM event log and extends the measurements taken into the TPM PCRs.

I'm sure there is some issue with passing data across boundaries, but
is there any reason why the TPM event log needs to be updated
out-of-sync with the TPM PCRs?  Is is possible to pass the
measurements to the SL platform module which would both extend the
PCRs and update the TPM event log at the same time?

>  - SL platform module initializes the securityfs interface to allow
>    asccess to the TPM event log and TXT public registers.
>  - Kernel boot finishes booting normally
>  - SEXIT support to leave SMX mode is present on the kexec path and
>    the various reboot paths (poweroff, reset, halt).

It doesn't look like it's currently implemented, but it looks like
eventually you plan to support doing a new DRTM measurement on kexec,
is that correct?  I'm sure that is something a *lot* of people
(including myself) would like to see happen.

-- 
paul moore
www.paul-moore.com

  parent reply	other threads:[~2021-12-01  1:07 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-27 13:28 [PATCH v4 00/14] x86: Trenchboot secure dynamic launch Linux kernel support Ross Philipson
2021-08-27 13:28 ` [PATCH v4 01/14] x86/boot: Fix memremap of setup_indirect structures Ross Philipson
2021-09-22 12:01   ` Daniel Kiper
2021-08-27 13:28 ` [PATCH v4 02/14] x86/boot: Add setup_indirect support in early_memremap_is_setup_data Ross Philipson
2021-09-22 12:03   ` Daniel Kiper
2021-08-27 13:28 ` [PATCH v4 03/14] x86/boot: Place kernel_info at a fixed offset Ross Philipson
2021-08-27 13:28 ` [PATCH v4 04/14] Documentation/x86: Secure Launch kernel documentation Ross Philipson
2021-12-02 17:26   ` Robin Murphy
2021-12-03 15:47     ` Ross Philipson
2021-12-03 16:03       ` Robin Murphy
2021-12-03 17:48         ` Ross Philipson
2021-08-27 13:28 ` [PATCH v4 05/14] x86: Secure Launch Kconfig Ross Philipson
2021-08-27 13:28 ` [PATCH v4 06/14] x86: Secure Launch main header file Ross Philipson
2021-08-27 13:28 ` [PATCH v4 07/14] x86: Add early SHA support for Secure Launch early measurements Ross Philipson
2021-08-27 13:28 ` [PATCH v4 08/14] x86: Secure Launch kernel early boot stub Ross Philipson
2021-08-27 13:28 ` [PATCH v4 09/14] x86: Secure Launch kernel late " Ross Philipson
2021-08-27 13:28 ` [PATCH v4 10/14] x86: Secure Launch SMP bringup support Ross Philipson
2021-08-27 13:28 ` [PATCH v4 11/14] kexec: Secure Launch kexec SEXIT support Ross Philipson
2021-08-27 13:28 ` [PATCH v4 12/14] reboot: Secure Launch SEXIT support on reboot paths Ross Philipson
2021-08-27 13:28 ` [PATCH v4 13/14] x86: Secure Launch late initcall platform module Ross Philipson
2021-08-27 13:28 ` [PATCH v4 14/14] tpm: Allow locality 2 to be set when initializing the TPM for Secure Launch Ross Philipson
2021-08-27 13:30   ` Jason Gunthorpe
2021-08-30 19:45     ` Daniel P. Smith
2021-12-01  1:06 ` Paul Moore [this message]
2021-12-02 16:09   ` [PATCH v4 00/14] x86: Trenchboot secure dynamic launch Linux kernel support Daniel P. Smith
2021-12-06 20:56     ` Paul Moore
2022-01-21 21:39       ` Paul Moore
2022-02-15 15:50         ` Daniel P. Smith

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='CAHC9VhTJG24iG=U0geO-ZhC6OogxOu4icBrNY22+qRNpWd5PBQ@mail.gmail.com' \
    --to=paul@paul-moore.com \
    --cc=bp@alien8.de \
    --cc=dpsmith@apertussolutions.com \
    --cc=hpa@zytor.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=kanth.ghatraju@oracle.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mingo@redhat.com \
    --cc=ross.philipson@oracle.com \
    --cc=tglx@linutronix.de \
    --cc=trenchboot-devel@googlegroups.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;
as well as URLs for NNTP newsgroup(s).