一、TF-A BL2校验optee或者uboot流程 STM32MPU13X/15X/25X 的FSBL在运行下一级代码时,会校验OP-TEE和U-boot; MPU25X和13X/15X不同的地方在于MP25X从TF-A BL31启动UBOOT、OP-TEE。 1、TF-A架构图 1)STM32MP1 TF-A分为多个二进制文件,并且每个文件都有其专门的角色,如下: BL1 应用处理器可信ROM、BL2 可信启动固件、BL32 运行时软件; 对于STM32MPU1BL1是没有使用的。bootrom是上电首先运行的代码。 2)STM32MPU25X 可信启动分为5个阶段: STM32MPU ROM code; BL2 可信启动固件; BL31 EL3运行时软件 BL32 可信运行时固件; BL33 非可信运行时固件;STM32MPU ROM code; 2、可信固件二进制文件如何打包 1)对TF-A要加载的镜像、证书、PKI打包成一个称为固件映像包(FIP)的二进制文件; 2)FCONF,是一种用于说明TF-A BL2怎么识别FIP中的结构,包含证书之间的关系,校验顺序的设备树。 FPI里面的内容和安全启动有以下差异: 没有开启安全启动时,包含payload、devices tree; 开启安全启动时,不仅包含payload、devices tree,还保存各类证书(u-boot、OP-TEE、CONFIG、NT FW KEY、Trusted FW Key、Trusted Key)。 3、TFA-BL2 具体做什么? 1)初始化外设 对于系统组件有:初始化时钟、DDR、启动外设; 对于安全组件有:BSEC、ETZPC、TZC; 2)加载与校验BL32(OP-TEE)、BL33(u-boot)、BL31(EL3运行时软件,只有mp2才有); 3)跳转到BL32 4、TF-A BL2校验的前提 1)遵循X509.v3证书标准;
2)证书分为两类
3)所有产生的证书都包含在FIP里面 4)根证书是由信任根的公钥校验。 ① STM32MP15X系列使用的是保存在OTP中公钥的哈希值(PKH); ② STM32MP13X和MP25X系列使用的是HEADER中的公钥的HASH值,这个HASH是通过保存在OTP中公钥的哈希表的哈希值(PKHTH)校验的; 5、TF-A BL2信任链的证书链的结构 证书链结构主义描述的是证书链的关系,校验顺序 1)默认证书链结构定义在fdts/cot_descriptors.dtsi;被用于注册TF-A BL2信任链 2)STM32MP1的具体证书链结构在fdts/stm32mp1-cot-descriptors.dtsi,STM32MP2的具体证书链结构定义在fdts/stm32mp2-cot-descriptors.dtsi; 证书链结构图如图: 信任链的DTSI描述如图: 6、STM32MP1校验流程 如图 STM32MP2的校验流程和MP1类似,区别在于,STM32MP2有BL31的固件,因此多了一个密钥证书和一个内容证书。 校验流程框架如下说明 1)使用OTP中的信息校验根证书的密钥有效性; 2)使用根证书中的密钥校验证书本身,从而验证该证书携带信息的有效性(密钥或者HASH); 3)使用密钥证书密钥校验证书本身,从而验证证书携带内容证书密钥的有效性;将密钥证书携带的密钥与下一级内容证书的密钥进行比对,比对通过说明,内容证书携带密钥的有效性; 4)使用内容证书的密钥校验证书本身,校验通过,说明本身携带的HASH值有效,就可以校验各个payload的有效性。 7、如何使能TF-A BL2信任链功能 前提条件: PKH或者PKHTH已经烧录到OTP中,并且已经使能secure boot功能 使能步骤: 1)构建TF-A BL2时,使能TRUSTED_BOARD_BOOT flag 2)签名镜像和使用证书工具产生证书 3)产生FIP镜像(带有镜像和证书) 4)烧录相关二进制文件 对于MP13X/25X系列,如果使能带加密功能的话,还需要在上述2)3)步骤之间,增加一个步骤:产生和烧录产生的加密密钥和对镜像加密;那么步骤4)烧录的镜像则是带加密的镜像 |
【STM32MPU 安全启动】 TF-A BL2 TrustedBoot原理学习
《STM32MPU安全启动》学**结
《STM32MPU安全启动》学习笔记之uboot如何校验kernel和如何使能校验
《STM32MPU安全启动》学习笔记之optee 如何加载CORTEX-M核和使能校验
《STM32MPU 安全启动》课程学习心得+开启一扇通往嵌入式系统安全领域深处的大门。
《STM32MPU安全启动》 课程学习心得
《STM32MPU安全启动》学习笔记
《STM32MPU安全启动》学习笔记+STM32MP系列mpu安全启动解析
《STM32MPU安全启动》学习笔记 - STM32MPU安全启动学**结
《STM32MPU安全启动》学习笔记总结