Extending the Secure Boot Certificate and Signature Chain of Trust to the OS
Fionnuala Gunter, fin.gunter@hypori.com Mimi Zohar, zohar@linux.vnet.ibm.com
Extending the Secure Boot Certificate and Signature Chain of Trust - - PowerPoint PPT Presentation
Extending the Secure Boot Certificate and Signature Chain of Trust to the OS Fionnuala Gunter, fin.gunter@hypori.com Mimi Zohar, zohar@linux.vnet.ibm.com Secure Boot Chains of Trust Secure Boot places the root of PK trust in hardware
Fionnuala Gunter, fin.gunter@hypori.com Mimi Zohar, zohar@linux.vnet.ibm.com
trust in hardware write protected firmware and public keys
establish a chain of trust based on validating signatures
validate the signed bootloader
then validate the signed kernel, and so on
KEK
PK
Shim
db
GRUB2
MoK
Kernel
MoK
MoK List
boot var
db
KEK
Database (OS vendor keys)
(the machine owner can replace boot components using mokutils tool)
KEK
PK
Shim
db
GRUB2
MoK
Kernel
MoK
MoK List
boot var
db
KEK
Load signed certificates
system keyring IMA keyring IMA local CA signed/self-signed 3rd party certificates
Load public key Sign certificates Kernel validates certificates
kernel
database keys (RedHat’s patches)
kernel image for IMA local-CA public key. Post build, install key and resign kernel image.
Built into kernel UEFI/MoK DB Reserved memory
system keyring IMA local CA load public key
certificate signing request (CSR)
used to verify file signatures need to be signed by a system trusted key
chain of trust to the OS
loads signed certificate keys
Load Signed Certificates
signed/self-signed 3rd party certificates
Kernel validates certificates
IMA keyring
appraises file integrity based on file signatures
the filesystem
signatures in software packages
signatures during installation
file signatures in packages
transaction element hook (psm_post)
rpmsign —addsign —signfiles PACKAGE_FILE
—fskpath and —fskpass
the package with libimaevm v1.0
under the tag RPMTAG_FILESIGNATURES
signed normally
extracts file signatures from the package header and stores them in rpmfiles struct
element hook (psm_post) and writes the file signatures to security.ima xattr
md5sums file
sha256sums)
cat sha256sums | evmctl sign_hash -a sha256 -key “${PRIVKEY}” > sha256sums
script signatures stored in the sha256sums file
request #766267
signatures
book_sle_admin/data/sec_uefi_secboot.html
all-the-uefi-keys/