extending the secure boot certificate and signature chain
play

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


  1. 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

  2. Secure Boot Chains of Trust • Secure Boot places the root of PK trust in hardware write KEK protected firmware and public keys KEK db • Public key certificates boot 
 var establish a chain of trust MoK List based on validating signatures db Shim • Firmware uses public key(s) to validate the signed bootloader MoK • The signed bootloader can GRUB2 then validate the signed kernel, and so on MoK Kernel

  3. Secure Boot Chains of Trust PK KEK • PK - Platform Key (OEM key) • KEK - Key Exchange Keys KEK db Database (OS vendor keys) boot 
 var MoK List • db - Signature Database db Shim • MoK - Machine Owner Key (the machine owner can replace boot components MoK GRUB2 using mokutils tool) MoK Kernel

  4. Extending the Secure Boot Certificate and Signature Chain of Trust to the OS Load Kernel validates public certificates key system keyring IMA keyring Load signed certificates Sign certificates IMA local CA signed/self-signed 3rd party certificates

  5. Methods for Loading IMA Local-CA Public Key on the System Keyring 1. Compile key into Linux Built into kernel kernel 2. Load the UEFI/MoK UEFI/MoK database keys DB (RedHat’s patches) system keyring Reserved 3. Pre-allocate space in the memory kernel image for IMA local-CA public key. Post load public key build, install key and resign kernel image. IMA local CA

  6. 
 Sign Certificates with IMA Local-CA Private Key • Which certificates and why? • Signing distro/3rd party certificates without a certificate signing request (CSR) 
 openssl ca -ss_cert cert.pem

  7. Load Signed Certificates onto IMA Keyring Kernel validates • Certificates containing a key used to verify file signatures certificates need to be signed by a IMA keyring system trusted key • This extends the signature Load Signed chain of trust to the OS Certificates • The dracut integrity module loads signed certificate keys onto the trusted .ima keyring signed/self-signed 3rd party certificates

  8. Labeling Filesytems with Signatures • The Linux kernel’s integrity subsystem verifies and appraises file integrity based on file signatures • Files are currently signed, post install, by walking the filesystem • A better, more complete solution is to include file signatures in software packages • This enables files to be automatically labeled with signatures during installation

  9. RPM File Signatures • Extended the existing rpm signing tool to include file signatures in packages • RPM plugin installs file signatures using post transaction element hook (psm_post) • Expected in rpm-4.13.0

  10. RPM Including File Signatures • New Command 
 rpmsign —addsign —signfiles PACKAGE_FILE • Sign Files Options 
 —fskpath and —fskpass

  11. RPM Including File Signatures • The new option signs all the file digests included in the package with libimaevm v1.0 • File signatures are stored in the package header under the tag RPMTAG_FILESIGNATURES • After including file signatures, the packages are signed normally

  12. RPM Installing File Signatures • When a package is installed, rpmfilesPopulate extracts file signatures from the package header and stores them in rpmfiles struct • The RPM plugin instantiates the post transaction element hook (psm_post) and writes the file signatures to security.ima xattr

  13. deb Including File Signatures • Control.tar.gz in the .deb packages contains a md5sums file • Include digest sums file in package (eg. sha256sums) • Append file signatures 
 cat sha256sums | evmctl sign_hash -a sha256 -key “${PRIVKEY}” > sha256sums

  14. deb Installing File Signatures • debhelper script and autoscript install ELF file and script signatures stored in the sha256sums file • debhelper script: dh_installfile-sigs • autoscript: postinst-file-sigs

  15. Next Steps • Upstream deb file signature extensions - feature request #766267 • Linux software distributors ship packages with file signatures

  16. References • https://wiki.ubuntu.com/SecurityTeam/SecureBoot • https://www.suse.com/documentation/sles11/ book_sle_admin/data/sec_uefi_secboot.html • http://blog.hansenpartnership.com/the-meaning-of- all-the-uefi-keys/

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend