一、信任架构概述
QoriQ平台的信任架构可以使开发者仅仅靠运行”授权软件程序“来保护您设计的产品,并提供工具在运行环境的生命周期内不间断的检测硬件的安全状态,在运行时环境中检测到的异常会触发硬件状态更改,从而导致系统锁定对先前加密数据的访问或重启硬件。
所有具有信任架构的QorlQ Layerscape 设备都支持以下两种启动模式:
- 正常启动(不信任环境)
- 安全启动
**预引导加载程序 pre-boot loader(PBL)**允许您在正常引导或安全引导之间进行选择。有两种方法可以命令PBL启动安全启动过程:
- 对正在运行的系统的**安全意图 intent to secure(ITS)**保险丝进行编程
- 在原型设计之初就在RCW中设置启用安全启动 secure boot enable(SB_EN)位
在安全启动模式下,数字签名的启动映像会在启动期间进行验证。验证期间的失败要么使CPU进入自旋循环(具有ITS的系统),要么继续引导到非安全状态(具有SB_EN的环境)。
使用信任架构需要一些强制性最低配置和可选配置。
强制性最低配置和程序包括代码签名和对安全熔断器处理器(SFP)中的某些字段进行编程。
可选配置包括对一些增强功能的支持,例如篡改检测(tmp_detect)、运行时完整性检查(RTIC)、安全调试、密钥撤销和安全数据存储(加密的二进制数据)。
二、安全启动:最低要求
安全启动过程包括对现有软件必要的准备工作并对安全启动过程使用的熔丝进行编程。
在安全启动模式下,SoC的CPU是从一段包含**内部安全启动代码 internal secure boot code(ISBC)**的不可修改的内部启动ROM开始启动的。
ISBC的功能是去验证一段被称为**外部安全启动代码 external secure boot code(ESBC)**的可修改代码。
ESBC可以是一个与引导设备(U-Boot、设备树、内核、rootfs)相关的连续内存空间中的单个集成镜像,也可以是存在于软件镜像链的第一阶段中可以单独验证和调用的程序。第二阶段也称为信任链。使用信任链时,您可以为链中的每个镜像使用单个密钥对,或为不同的镜像使用不同的密钥对。
为简单起见,本文档使用单个密钥对对安全启动中涉及的所有镜像进行签名。

