概述

安全启动旨在实现固件保护,防止攻击者恶意修改或替换固件。安全启动使能后,芯片上电时 ROM 会验证固件签名的有效性。 若认证成功则表明固件安全,可以继续执行后续启动流程;否则 SoC 将清除堆栈并进入死循环。 用户无需自行实现安全启动代码,该功能已集成在 SDK 中。 Realtek 提供的 axf2bin.py 脚本可以生成固件的公钥、公钥哈希值和对应的固件签名。通过该脚本,用户也可以生成其他的需要签名的内容并附加至固件中。 安全启动原理如下图所示:

../../rst_rtos/3_nda_secure_boot/figures/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 验证剩余的所有应用固件。