二、STM32MP257安全启动流程简介

文章目录

  • 二、STM32MP257启动流程简介
    • [1. STM32MP系列启动流程](#1. STM32MP系列启动流程)
    • [2. STM32MP257 Secure BootRom原理](#2. STM32MP257 Secure BootRom原理)

二、STM32MP257启动流程简介

本章节将简要介绍STM32MP257的启动流程

1. STM32MP系列启动流程

安全启动就是保证在嵌入式设备上运行的软件是值得信任的,在嵌入式linux中完整的启动流程通常包含多个启动阶段,比如BootROM、TFA、Uboot、Kernel、应用程序等,值得信任不能靠口头保证,必须有一种完善的校验机制来保证全流程的可信,所有安全启动的起点必须是值得信赖的,无法被外部篡改的,我们叫信任根 (RoT:Root of Trust),这个角色通常是芯片厂商设计的Bootrom代码,芯片上电以后会从固定的位置开始运行代码,这段代码由芯片厂商固化,外部开发者不可见也不可改。

因为嵌入式linux启动流程分为多个阶段,有了信任根以后我们还需要保证每个阶段加载的image是值得信任的,这就是我们常说的信任链(CoT:Chain of Trust),由信任链来保证每一个阶段加载的下一阶段image的完整性。

下面首先看一下STM32MP257官方支持的启动流程:

stm32mp257支持从A53核启动,也支持从CM33核启动,上图以A53启动为例:

  1. 上电以后从内部BootRom冷启动,BootRom会加载TFA的BL2来作为FSBL的image
  2. TFA的BL2会加载TFA的BL31,主要是security级别的EL3代码相关(A53和A7核心差异)
  3. 然后由TFA的BL31来加载Uboot和Optee
  4. 在安全启动中由Optee来加载CM33核心,这样可以做签名的校验
  5. uboot加载内核并启动
  6. 由内核来加载应用程序

    不过在stm32mp系列中并不是所有产品都支持安全启动流程的,只有stm32mp257c和stm32mp257f两个系列是支持硬件加密安全启动的。

2. STM32MP257 Secure BootRom原理

Secure BootRom 即从BootRom -> TFA BL2 的校验流程

A/D的系列因为硬件不支持安全启动,所以只有UNSECURED一个状态,C/F系列出场默认是UNLOCKED状态,如果通过PROVEISION以后设备就会变成LOCKED状态,此时如果校验失败则无法启动。

STM32MP2 BootRom校验使用的是ECDSA算法,同时支持防回滚机制,同时支持给SSBL做加密。

如果使能安全启动,BootRom会检查TFA分区镜像的头(Header),如果带有加密信息会对Public Key做校验,对image的hash值做签名校验,同时还有防回滚检查,都通过以后TFA BL2 才会跑起来。

这部分包含比较多的密码学知识和加解密流程,因为我使用的开发板使用的是不带加密安全启动的STM32MP257D 系列芯片,所以如果对这部分比较感兴趣可以在B站搜索STM32MP安全启动线上课程详细学习。

相关推荐
@good_good_study14 小时前
STM32 定时器PWM配置函数及实验
stm32·单片机
逻极15 小时前
Python MySQL防SQL注入实战:从字符串拼接的坑到参数化查询的救赎
python·mysql·安全·sql注入
三佛科技-1341638421215 小时前
KP32511SGA固定12V输出小家电电源芯片 典型应用电路
单片机·嵌入式硬件
Fnetlink115 小时前
中小企业网络环境优化与安全建设
网络·安全·web安全
xingzhemengyou116 小时前
STM32启动流程
stm32·单片机·嵌入式硬件
aduzhe16 小时前
int32 - int32MAX 出现异常
c语言·stm32
youcans_16 小时前
【动手学STM32G4】(4)STM32G431之ADC与DAC
stm32·单片机·嵌入式硬件·数据采集·串口通信
拍客圈16 小时前
宝塔 安全风险 修复
安全
门思科技16 小时前
企业级 LoRaWAN 网关远程运维方案对比:VPN 与 NPS FRP 的技术与安全差异分析
运维·网络·安全
文刀竹肃16 小时前
DVWA -SQL Injection-通关教程-完结
前端·数据库·sql·安全·网络安全·oracle