| Unless I'm missing something, Secure Boot as designed is fundamentally broken. Its root of trust is the BIOS/Firmware, which can be updated from a running OS. There is no hardware root of trust. How Secure Boot Works Secure Boot ensures that a device boots using only software trusted by the Original Equipment Manufacturer (OEM). Here's a high-level overview: 1. Power On and Initialization: The CPU initializes and runs the BIOS/UEFI firmware, which prepares the system for booting. 2. Platform Key (PK) Verification: The firmware verifies the Platform Key (PK), which is used to validate Key Exchange Keys (KEKs). 3. Key Exchange Keys (KEK) Verification: The KEKs validate the allowed (whitelist) and disallowed (blacklist) signature databases. 4. Signature Database Verification: The firmware checks the allowed (db) and disallowed (dbx) signature databases for trusted software signatures. 5. Bootloader Verification: The firmware verifies the bootloader’s signature against the db. If trusted, the process continues. 6. Kernel and Driver Verification: The bootloader verifies the OS kernel and critical drivers’ signatures. 7. Operating System Boot: Once all components are verified, the OS loads. Apple Secure Boot Process Apple adds hardware-based security with the Secure Enclave: 1. Secure Enclave Initialization: Separate initialization handles cryptographic operations securely. 2. Root of Trust Establishment: Starts with Apple's immutable hardware Root CA. 3. Immutable Boot ROM Verification: The boot ROM verifies the Low-Level Bootloader (LLB). 4. LLB Verification: The LLB verifies iBoot, Apple's bootloader. 5. iBoot Verification: iBoot verifies the kernel and its extensions. The Secure Enclave ensures cryptographic operations remain protected even if the main processor is compromised. For more details, check out: - <https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8...> - <https://www.apple.com/business/docs/site/Security_Overview.p...> I would really love to have a hardware root of trust on a Linux or other open system, with a hardware security module of sorts that is programmable, so I decide what the root keys are, and is able to measure the firmware boot process, establishing a proper audit trail or chain of trust. I can't remember the HN formatting rules, so expect an edit shortly to make this look better. Edit: I did a little more poking. It's not quite as bad as I thought, because at least in theory, the BIOS will verify a digital signature of a BIOS update before flashing it. |