Re: [PATCH v2 1/7] integrity: Define a trusted platform keyring

From: Thiago Jung Bauermann
Date: Wed Dec 12 2018 - 19:16:32 EST

Nayna Jain <nayna@xxxxxxxxxxxxx> writes:

> On secure boot enabled systems, a verified kernel may need to kexec
> additional kernels. For example, it may be used as a bootloader needing
> to kexec a target kernel or it may need to kexec a crashdump kernel. In
> such cases, it may want to verify the signature of the next kernel
> image.
> It is further possible that the kernel image is signed with third party
> keys which are stored as platform or firmware keys in the 'db' variable.
> The kernel, however, can not directly verify these platform keys, and an
> administrator may therefore not want to trust them for arbitrary usage.
> In order to differentiate platform keys from other keys and provide the
> necessary separation of trust, the kernel needs an additional keyring to
> store platform keys.
> This patch creates the new keyring called ".platform" to isolate keys
> provided by platform from keys by kernel. These keys are used to
> facilitate signature verification during kexec. Since the scope of this
> keyring is only the platform/firmware keys, it cannot be updated from
> userspace.
> This keyring can be enabled by setting CONFIG_INTEGRITY_PLATFORM_KEYRING.
> Signed-off-by: Nayna Jain <nayna@xxxxxxxxxxxxx>
> Reviewed-by: Mimi Zohar <zohar@xxxxxxxxxxxxx>
> Acked-by: Serge Hallyn <serge@xxxxxxxxxx>
> ---
> security/integrity/Kconfig | 11 +++++
> security/integrity/Makefile | 1 +
> security/integrity/digsig.c | 48 +++++++++++++++-------
> security/integrity/integrity.h | 3 +-
> .../integrity/platform_certs/platform_keyring.c | 35 ++++++++++++++++
> 5 files changed, 83 insertions(+), 15 deletions(-)
> create mode 100644 security/integrity/platform_certs/platform_keyring.c

Reviewed-by: Thiago Jung Bauermann <bauerman@xxxxxxxxxxxxx>

Thiago Jung Bauermann
IBM Linux Technology Center