安全启动
概述
MTT E300 是一款集成安全启动功能的系统级芯片(SoC),旨在为嵌入式系统、物联网设备和边缘计算平台提供硬件级的安全启动保障。该芯片有效解决了设备在启动阶段面临的固件篡改、未授权代码执行、启动链攻击等安全挑战。通过集成在 SoC 内部的安全启动引擎,MTT E300 确保系统从电源上电到操作系统加载前的整个启动过程都是可信且完整的。
功能描述
MTT E300 通过内置的硬件信任根(RootPK)和可配置的验证策略,逐级验证引导加载程序和镜像的完整性与真实性,防止恶意或未经授权的代码在启动过程中执行。
运行原理
MTT E300 的安全启动功能基于 SoC 内部的专用安全子系统和加解密引擎(Trusted Engine)实现,采用密码学签名验签机制和一次性可编程存储器(eFuse)。芯片出厂时,eFuse 中已写入 SoC 启动 ROM 所使用的硬件信任根(RootPK)和 Secure Boot 使能位。
芯片上电时,启动 ROM 会执行以下验证流程:
- 加载 BL2 证书并验证其签名
- 验证 BL2 镜像的完整性
- BL2 启动后,依次加载
SCP_BL2、BL31、BL32、BL33等镜像 - 在加载每个镜像前,先加载其对应的证书,并验证证书完整性和镜像完整性
信任链
证书信任链(Key Cert 或 Key Content Cert):
- 每个证书将其公钥存放在父级证书中
- 当父级无证书时,表示父级为
RootPK,其 Hash 值已写入eFuse中
镜像信任链(BL2、SCP_BL2、BL31、BL32、BL33 等):
- 将各镜像的 Hash 值存放在父级证书中
验签关系说明:
- 黄色:验签所使用的公钥(
Public Key) - 深蓝色:Key Cert,主要用于存放子级证书的公钥
- 浅蓝色