Secure boot and the root of trust
At start-up, each piece of software checks the signature of the next one before running it, starting from code that cannot be changed.
Read firstMicrocontroller or microprocessor?
Key points
- Secure boot is a chain of trust: immutable boot ROM code verifies the signature of the first-stage loader against a key fixed in hardware (often a hash fused into one-time-programmable memory), and each stage then verifies the next.12
- A secure element or TPM stores keys and uses them in a protected environment, so a private key is never exposed to the main operating system. Secure elements are usually separate tamper-resistant chips, though some are built into the processor. A TPM can be a chip, or firmware in a protected mode of the processor.345
- An open JTAG or SWD port on a shipped device can let someone read or change its code, including its security features. ETSI EN 303 645 requires debug interfaces to be turned off, or protected by authentication or access control, before a product ships.6
Where to go next
- See the secure element in the end-to-end diagram
- BLE application-layer authentication with ECDSA certificate chains on ESP32-C3 a whitepaper from our lab
- Over-the-air updates builds on this
- Security baselines and the law builds on this
Spotted a mistake, or found this useful?
Tell usSources
- Trusted Firmware-A: Trusted Board Boot · TrustedFirmware.org · Project docs
- U-Boot: Verified Boot · U-Boot project · Project docs
- Introduction to Secure Elements · GlobalPlatform · Reference
- Trusted Platform Module (TPM) fundamentals · Microsoft · Vendor page
- TPM 2.0 Library specification · Trusted Computing Group · Standard
- ETSI EN 303 645 V3.1.3 (2024-09): Cyber Security for Consumer Internet of Things: Baseline Requirements · ETSI · Standard