打印
[STM32MP2]

什么是 STM32MP1 的硬件信任根?

[复制链接]
274|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaoqi000|  楼主 | 2024-9-30 23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32MP1 的 硬件信任根(Root of Trust, RoT)是指嵌入在该处理器中的一组硬件功能和安全机制,用于构建一个安全的启动和运行环境。它是安全启动链的基础,确保在系统启动时,只有经过验证且来自可信源的代码才能执行。


使用特权

评论回复
沙发
xiaoqi000|  楼主 | 2024-9-30 23:15 | 只看该作者
硬件信任根的作用是通过不可篡改的硬件或固件,保证设备从启动的最早阶段就处于可信任状态。STM32MP1 的硬件信任根主要包括以下几个关键部分:

1. ROM Code
STM32MP1 的硬件信任根从其不可变的 ROM Code 开始。ROM Code 是处理器在上电或复位时首先执行的一段代码,无法被修改或更新。它负责加载和验证第一阶段的启动程序,如 TF-A(Trusted Firmware-A) 或 U-Boot SPL(Secondary Program Loader)。

ROM Code 作用:
加载设备配置(如启动模式、存储器映射等)。
根据设备配置从外部存储器(如 eMMC、SD 卡、SPI Flash)加载第一阶段启动代码。
验证第一阶段启动代码的数字签名,确保其未被篡改且来自可信源。

使用特权

评论回复
板凳
xiaoqi000|  楼主 | 2024-9-30 23:15 | 只看该作者
OTP 存储区域
OTP(One-Time Programmable)区域是 STM32MP1 中一个只可写入一次的存储区,用于存储设备的安全配置数据。该区域通常会包含:

公钥:用于在启动时验证固件的签名。
设备唯一密钥:用于设备身份验证或加密操作。
安全启动模式设置:决定设备是否启用了安全启动功能。
这些信息一旦写入 OTP 区域,就不能更改,因此具有高度的安全性。

使用特权

评论回复
地板
xiaoqi000|  楼主 | 2024-9-30 23:15 | 只看该作者
硬件加密引擎
STM32MP1 集成了多个硬件加密模块,如 AES、SHA、RSA 等,这些模块可以用于加密运算和签名验证。硬件加密引擎加速了加密算法的执行,确保了签名验证的高效性和可靠性。

在安全启动过程中,STM32MP1 的硬件加密引擎被用来验证固件签名,通过与 OTP 中存储的公钥进行比对,确保加载的固件是可信的。

使用特权

评论回复
5
xiaoqi000|  楼主 | 2024-9-30 23:15 | 只看该作者
信任链的建立
信任链是指从设备启动的最早阶段开始,每个后续的固件或软件模块都要经过前一级的验证。硬件信任根从 ROM Code 开始,逐步验证后续的启动程序、操作系统、以及其他关键系统组件。

使用特权

评论回复
6
xiaoqi000|  楼主 | 2024-9-30 23:15 | 只看该作者
在 STM32MP1 中,信任链的过程如下:

ROM Code 从 OTP 中读取公钥,并使用该公钥验证第一阶段启动程序的签名。
如果签名验证通过,第一阶段启动程序(如 TF-A 或 U-Boot SPL)会被执行。
第一阶段启动程序会验证第二阶段启动程序(如 U-Boot)的签名,确保其完整性和可信性。
U-Boot 继续加载并验证操作系统(如 Linux 内核)的签名,建立从硬件到操作系统的完整信任链。

使用特权

评论回复
7
xiaoqi000|  楼主 | 2024-9-30 23:15 | 只看该作者
设备唯一性和密钥管理
STM32MP1 的硬件信任根还包括设备唯一标识符(UID)和独特的密钥管理机制。这些功能允许开发者使用设备的唯一性来生成密钥,并确保每台设备都有独特的信任根,从而增强了整体系统的安全性。

使用特权

评论回复
8
xiaoqi000|  楼主 | 2024-9-30 23:15 | 只看该作者
STM32MP1 的硬件信任根是通过不可修改的 ROM Code、OTP 存储区域、公钥验证和硬件加密引擎构建的,确保系统启动和运行时的安全性。通过这些硬件和软件的结合,STM32MP1 能够保证系统在每个启动阶段都只执行可信任的代码,并防止未经授权的固件在设备上运行。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

55

主题

755

帖子

0

粉丝