3. 启动模式与启动阶段划分

在 AURIX 安全启动链中,"启动"并不是一个瞬间动作,而是一条被严格划分的阶段链。每个阶段都有明确的执行主体、安全职责和切换条件。理解这条阶段链,是设计可信 ECU 的基础——因为安全启动的本质,就是把信任从一个不可篡改的根,逐级传递到最终的应用代码。

本节将启动过程划分为四个阶段:上电复位阶段(Power-On Reset)、固件引导阶段(Firmware Boot / BootROM)、二级安全引导阶段(SSBL, Second Stage Secure Bootloader)、应用启动阶段(Application Startup)。下面逐一说明各阶段的安全职责与切换条件。

一、上电复位阶段:硬件信任根建立

当 ECU 上电或复位释放后,CPU 从固定的复位向量地址开始取指。这一阶段的核心安全职责是建立硬件信任根(Hardware Root of Trust)。AURIX 的 BootROM 固化在芯片内部,不可被外部修改,因此它天然成为信任链的起点。

此阶段的关键动作包括:

  • 复位释放后,CPU 首先执行 BootROM 中的复位处理代码;
  • 检查启动模式引脚(Boot Mode Pin)或启动模式寄存器(如 AURIX 的 BMI/BMHD 配置),确定本次启动是"正常启动"还是"引导加载模式";
  • 初始化最小必要的外设:时钟、看门狗、内部 SRAM;
  • 若配置了安全启动,BootROM 会读取 Flash 中的固件头(Firmware Header),准备进入固件引导阶段。

切换条件:当 BootROM 完成基本硬件初始化,并确认启动模式为正常启动后,控制权交给固件引导阶段。若启动模式为引导加载模式(如通过 CAN 或 UART 进入),则跳过固件引导,直接进入刷写流程。

二、固件引导阶段:固件完整性与真实性校验

固件引导阶段是安全启动链中第一个可被软件控制的校验点。BootROM 会从 Flash 的固定位置读取固件头,其中包含固件长度、版本、哈希值以及数字签名。

安全职责包括:

  • 完整性校验:计算固件镜像的哈希(如 SHA-256),与固件头中存储的哈希值比对;
  • 真实性校验:使用预置在芯片 OTP 或 HSM 中的公钥,验证固件签名的合法性;
  • 版本回滚检查:确认固件版本不低于当前允许的最低版本,防止降级攻击。

若校验通过,BootROM 将控制权交给 SSBL;若校验失败,则根据配置进入安全状态(如停止启动、进入恢复模式或触发告警)。

示例参数(教学假设):假设固件镜像大小为 512 KB,哈希算法为 SHA-256,签名算法为 ECDSA P-256。BootROM 在 10 ms 内完成哈希计算与签名验证。若验证失败,芯片将置位安全状态寄存器,并停止向应用跳转。

三、SSBL 阶段:可更新的安全引导层

SSBL(Second Stage Secure Bootloader)是位于 BootROM 与应用之间的可更新引导层。它的存在解决了 BootROM 不可更新、而应用又需要灵活升级的矛盾。

SSBL 的安全职责包括:

  • 校验应用镜像的完整性与真实性(与固件引导阶段类似,但校验对象是应用);
  • 支持 A/B 分区或双备份机制,实现安全升级与回滚;
  • 管理启动计数器(Boot Counter),防止无限次重试攻击;
  • 在应用校验失败时,尝试从备份分区启动,或进入安全恢复模式。

切换条件:SSBL 完成应用校验后,若校验通过,则跳转到应用入口;若校验失败且备份分区有效,则从备份分区启动;若两者均失败,则进入安全停止状态。

四、应用启动阶段:运行时安全职责

应用启动阶段是安全启动链的终点,也是运行时安全的起点。应用代码被加载并执行后,安全职责从"启动校验"转向"运行时保护"。

此阶段的关键动作包括:

  • 初始化应用所需的外设与任务调度;
  • 启动 HSM(Hardware Security Module)相关的安全服务;
  • 使能内存保护单元(MPU)与访问权限控制;
  • 启动看门狗与运行时监控,确保应用在预期状态下运行。

切换条件:应用启动完成后,系统进入正常运行状态。若运行过程中检测到安全异常(如看门狗超时、内存访问违规),则触发安全响应,可能复位或进入安全状态。

AURIX 安全启动四阶段链 ① 上电复位 硬件信任根建立 BootROM 执行 启动模式判定 ② 固件引导 固件哈希校验 签名验证 版本回滚检查 ③ SSBL 应用镜像校验 A/B 分区管理 启动计数器 ④ 应用启动 运行时保护 HSM 服务 看门狗监控 模式判定 校验通过 校验通过 校验失败 校验失败 安全停止 / 恢复模式 / 告警 置位安全状态寄存器,停止向应用跳转 信任传递方向:BootROM → 固件 → SSBL → 应用 每一级校验下一级,信任逐级传递,不可逆 图例: 上电复位 固件引导 SSBL 应用启动 失败路径 注:各阶段切换条件为教学示例,实际参数以芯片手册与项目安全需求为准。

五、阶段切换条件汇总与设计要点

将四个阶段的切换条件整理如下,便于在设计中对照检查:

阶段 执行主体 核心安全职责 切换条件
上电复位 BootROM 建立硬件信任根,判定启动模式 硬件初始化完成,模式为正常启动
固件引导 BootROM 固件完整性、真实性、版本校验 固件校验通过
SSBL SSBL 代码 应用镜像校验、A/B 分区管理、启动计数 应用校验通过,或备份分区有效
应用启动 应用代码 运行时保护、HSM 服务、看门狗 应用初始化完成,进入正常运行
设计提示:在实际项目中,SSBL 的引入虽然增加了灵活性,但也增加了攻击面。建议将 SSBL 的代码量控制在最小必要范围,并对其自身进行签名校验。此外,启动计数器应存储在受保护的 NVM 区域,防止被篡改。
常见误区:认为"只要 BootROM 校验通过就安全了"。实际上,如果 SSBL 或应用阶段缺少校验,攻击者仍可通过替换应用镜像来绕过安全机制。安全启动链的每一级都必须校验下一级,缺一不可。

总结来说,AURIX 安全启动链的四个阶段各有明确的安全职责与切换条件。上电复位建立信任根,固件引导校验固件,SSBL 校验应用并管理升级,应用启动负责运行时保护。只有每一级都正确执行校验,并将信任逐级传递,才能构建真正可信的 ECU 运行体系。