Verified Boot on Chrome OS and How to do it yourself
summary
Chrome OS boots a read-only firmware that verifies an updatable, signed firmware which in turn verifies a signed kernel and a dm-verify root hash, providing rollback protection via TPM and RSA-signed chains (Chrome uses 8k RSA for initial keys, U-Boot supports RSA-2048). Upstream U-Boot (2013.07) adds signature support using the FIT image container and make_image/bootm flow, plus optional hardware hashing; dm-verity protects the read-only root. Verification costs ~6 ms on a BeagleBone, ~6 KB extra code (RSA ~2 KB), and the demos boot successfully.
AI-written summary · about
chapters (24)
- 0:00Introduction
- 3:46Why do we do Verified Boot
- 4:55Requirements
- 6:48Hashing
- 7:57Public Key Cryptography
- 8:52TPM
- 9:48Root of Trust
- 11:17How Verified Boot Works
- 17:57User Space
- 19:57How to do Verified Boot
- 23:19How to sign an image
- 26:07Inplace signing
- 29:05Code size
- 29:57Performance
- 30:32Summary
- 31:20Demo
- 35:22Other features
- 36:56In summary
- 37:25Questions
- 39:52Root Hash
- 43:04Blocking the Book
- 43:32Block Size
- 44:18Objectives of Chrome OS
- 45:27GPL
related talks
48mVerified Boot on ARM
49mSecure Boot from A to Z
39mSecuring firmware: Secure and Trusted boot in OpenBMC
42mPractical Application of Verified Boot
42mPractical Application of Verified Boot
45mUsing Secure Boot for the powers of good
23mBlueprint for Secure Boot and Data Integrity Using rustBoot...
42mBecoming a tyrant: Implementing secure boot in embedded devices
