概述
安全启动旨在实现固件保护,防止攻击者恶意修改或替换固件。安全启动使能后,芯片上电时 ROM 会验证固件签名的有效性。
若认证成功则表明固件安全,可以继续执行后续启动流程;否则 SoC 将清除堆栈并进入死循环。
用户无需自行实现安全启动代码,该功能已集成在 SDK 中。
Realtek 提供的 axf2bin.py
脚本可以生成固件的公钥、公钥哈希值和对应的固件签名。通过该脚本,用户也可以生成其他的需要签名的内容并附加至固件中。
安全启动原理如下图所示:
Manifest 是独立于运行固件的,用于存储固件版本、加密算法、固件签名等信息的二进制文件。Manifest 大小为 4KB,集成在烧录文件起始位置。 以下每个固件均包含 Manifest:
Secure CPU Bootloader
密钥证书
应用固件
固件验证流程如下:
Secure CPU Boot ROM 验证 Secure CPU Bootloader。整个 Boot Rom 和 Bootloader 的所有流程都是运行在 Secure 状态。
Secure CPU Bootloader 验证密钥证书。
Secure CPU Bootloader 验证剩余的所有应用固件。