dm verity: Add support for signature verification with 2nd keyring
authorMickaël Salaün <mic@linux.microsoft.com>
Fri, 23 Oct 2020 17:05:12 +0000 (19:05 +0200)
committerMike Snitzer <snitzer@redhat.com>
Fri, 4 Dec 2020 23:04:35 +0000 (18:04 -0500)
commit4da8f8c8a1e07ad18f057f4044ad96f4135dc877
tree99247a48d846727f3288051098cf927be70f55a1
parent985eabdcfe3aad1aea6fc195dafff503f303aa3a
dm verity: Add support for signature verification with 2nd keyring

Add a new configuration DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING
to enable dm-verity signatures to be verified against the secondary
trusted keyring.  Instead of relying on the builtin trusted keyring
(with hard-coded certificates), the second trusted keyring can include
certificate authorities from the builtin trusted keyring and child
certificates loaded at run time.  Using the secondary trusted keyring
enables to use dm-verity disks (e.g. loop devices) signed by keys which
did not exist at kernel build time, leveraging the certificate chain of
trust model.  In practice, this makes it possible to update certificates
without kernel update and reboot, aligning with module and kernel
(kexec) signature verification which already use the secondary trusted
keyring.

Signed-off-by: Mickaël Salaün <mic@linux.microsoft.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Documentation/admin-guide/device-mapper/verity.rst
drivers/md/Kconfig
drivers/md/dm-verity-verify-sig.c