4.1 Secure Boot

The fundamental objective of secure boot is to ensure that all code run in the system is trusted, authenticated and unmodified from the original source. The foundation of a secure boot system is the boot/root of trust code. NIST SP 800-193 provides a set of guidelines for secure boot. Not every system requires the level of security described in NIST SP 800-193. Additional learning materials on the concept of secure boot are available on the Microchip University platform. See Resources for links.

Security starts with the root of trust for the device. The root of trust verifies and authenticates the first mutable code/data in the system. If there are additional layers of code/data to load, each code layer is responsible for verifying and authenticating the next code/data to be loaded/run. This forms the chain of trust starting from the root of trust through to each layer of code/data.

Key management is a critical component of secure boot. Because there are several features and configurations for key management in secure boot systems, the key management aspects are deferred to their own use case examples.