概述

安全启动旨在实现固件保护,防止攻击者恶意修改或替换固件。

安全启动使能后,在芯片上电时,ROM 会验证固件签名的有效性。若验证成功,则表明固件安全,可以继续执行后续启动流程;否则,SoC 将清除堆栈,并进入死循环。

用户无需自行实现安全启动代码,该功能已集成在 SDK 中。

Realtek 提供的 axf2bin.py 脚本可以生成固件的公钥、公钥哈希值和对应的固件签名。通过该脚本,用户也可以生成其他的需要签名的内容并附加至固件中。

安全启动原理如下图所示:

../../_images/secure_boot_diagram.svg

Manifest 是独立于运行固件的,用于存储固件版本、加密算法、固件签名等信息的二进制文件。Manifest 大小为 4KB,集成在烧录文件起始位置。

以下每个固件均包含 Manifest:

  • Secure CPU Bootloader

  • 密钥证书

  • 应用固件

固件验证流程如下:

  1. Secure CPU Boot ROM 验证 Secure CPU Bootloader。整个 Boot ROM 和 Bootloader 的所有流程都是运行在 Secure 状态。

  2. Secure CPU Bootloader 验证密钥证书。

  3. Secure CPU Bootloader 验证剩余的所有应用固件。