当前位置: 首页 > article >正文

二、STM32MP257安全启动流程简介

文章目录

  • 二、STM32MP257启动流程简介
    • 1. STM32MP系列启动流程
    • 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安全启动线上课程详细学习。


http://www.kler.cn/a/441597.html

相关文章:

  • 【项目初始化】自定义异常处理
  • 【若依】添加数据字典
  • 低代码系统-产品架构案例介绍、明道云(七)
  • 使用 Box2D 库开发愤怒的小鸟游戏
  • Redis的Windows版本安装以及可视化工具
  • 使用Websocket进行前后端实时通信
  • oracle多次替换字符,批量替换,循环替换------------gxl
  • 实战攻防中针对JS路径的泄露和Webpack漏洞的初探
  • 无人机故障安全模式设计逻辑与技术!
  • SQL -- 条件分支
  • OpenCV及基本用法
  • 原理 | dubbo [与 springboot 整合时服务导出的触发]
  • Java全栈项目 - 学生宿舍管理系统
  • 加载文件到docker中的mysql上
  • Linux高性能服务器编程 | 读书笔记 | 6. 高性能服务器程序框架
  • 【报错解决】pip install volcengine-python-sdk无法安装包
  • 【行政区编码对应表及生态等级数据的制作】-python
  • centos下安装ffmpeg
  • Python爬虫之代理的设置
  • linux0.11源码分析第一弹——bootset.s内容
  • (2024.12)记录——Ubuntu20.04安装opencv库
  • 【JVM】JVM基础教程(四)
  • ubuntu20.04安装qt creator
  • Leetcode经典题8--H指数
  • 深度学习之Autoencoders GANs for Anomaly Detection 视频异常检测
  • xshell连接虚拟机,更换网络模式:NAT->桥接模式