------- Comment From daniel.axte...@ibm.com 2020-12-17 19:59 EDT-------
I checked out LP: #1643652. I don't know why we asked for IMA_X509_PATH there, 
we don't need it for OpenPower secure boot.

For guest secure boot, the end goal of my request here is to get the
pieces in place to enable signed kexec - at least for the kdump case.
Under secure boot, only signed kernels can be kexeced. The kernel will
verify the appended signature against the .platform and .ima keyrings.
The .platform keyring is fine on OpenPower secure boot and UEFI secure
boot because the keyring gets populated by keys out of firmware.
However, at the moment pseries firmware doesn't have any mechanism to
expose trusted keys (this will change with the full key management
solution!), so nothing ends up in .platform. So we want to get a key
into the .ima keychain instead.

IMA_X509_PATH purports to achieve this, but unfortunately just setting
it isn't quite sufficient. The key will only be loaded into the .ima
keychain if it's signed by a key already trusted by the kernel, that is,
in .builtin_trusted_keys.

(I discovered recently that it's also possible to load a key into .ima
at runtime with keyctl, so loading the key as part of the kexec scripts
could be an alternative. However, this also requires that the key being
loaded into .ima be trusted by the kernel.)

So, what I think I need is:

- the key that signs the kernel on the filesystem so that it can be
loaded by IMA_X509_PATH or keyctl.

- the CA key that signs the kernel-signing key to be trusted by the
kernel by being included in the .pem file that gets loaded by
CONFIG_SYSTEM_TRUSTED_KEYS.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1903288

Title:
  Power guest secure boot with static keys: kernel portion

Status in The Ubuntu-power-systems project:
  Triaged
Status in linux package in Ubuntu:
  New

Bug description:
  == Comment: #2 - Daniel John Axtens <daniel.axte...@ibm.com> - 2020-11-05 
20:15:10 ==
  This is the kernel side of changes needed for LPAR/guest secure boot.

  Because Ubuntu keeps its kernels so wonderfully up to date, I don't
  think there are any extra patches you need to pick up. (I'll double-
  check against the 21.04 tree once my git pulls finish!)

  However, we potentially need some configuration changes to make sure
  kexec-ing into a crashdump kernel still works.

  Because Lockdown requires that kexec kernels are signed by a key
  trusted by IMA, the public key for used for signing the kdump kernel
  needs to be in the IMA keyring or the platform keyring. For host
  secure boot (and in the UEFI case), it's loaded into the platform
  keyring. But in the case of guest secure boot with static keys, it's
  not loaded into the platform keyring so it needs to be loaded into the
  IMA keyring.

  This is easy enough to do. Firstly, load the Secure Boot CA into the
  .primary_trusted_keys keyring via the CONFIG_SYSTEM_TRUSTED_KEYS
  property. We assume the key used to sign the kernel is signed by this
  CA.

  Then, enable IMA_LOAD_X509, which allows certificates signed by a key on the 
.primary_trusted_keys keyring to be loaded into the IMA keyring. Then set 
IMA_X509_PATH to provide a path to the signing key on installed file system. 
(It may also be possible to do this step in userspace, so long as the CA is 
trusted by the kernel.)
   
  Then that key will be loaded into the .ima keyring at boot and be used to 
appraise the kexec kernel for crashdumps.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-power-systems/+bug/1903288/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to