SemiDrive E3 信息安全框架介绍
一、 概述
本文将会介绍 SemiDrive E3 系列 MCU 的信息安全解决方案,首先会介绍信息安全的整体架构以及 E3 提供的解决方案。其次将针对信息安全的相关部分进行简要概述。
二、 E3 信息安全整体框架
E3 系列 MCU 是芯驰在 2022 年推出的国产高性能车规级 MCU ,满足 ASIL-D 功能安全等级,适用于车载中的网关、域控制器、BMS 等多个应用,其中 E3 也提供了完整的信息安全机制以保护系统在各个应用场景下的敏感信息,其信息安全整体框架如图 2.1 所示,主要包括安全启动、安全运行、安全存储等功能。
图 2.1 E3 信息安全整体框架
如下表所示,E3 芯片中提供了以下组件用于实现信息安全功能:
E3 信息安全组件 |
功能描述 |
BootROM |
芯片内置的启动代码,里面实现了信息安全部分的功能 |
eHSM |
内置的安全模块,提供了加解密服务以及物理主动防护和传感器模块,防止硬件攻击 |
片上解密系统 |
高速解密系统,用于解决片外 Flash 的信息安全问题 |
Fuse Ctrl |
OTP 控制器,控制敏感 Fuse 信息的访问权限 |
Firewall |
片内资源硬件隔离 |
安全存储 |
片内高安全易失存储器件,适用高安全需求的临时存储 |
入侵检测 |
硬件入侵检测,自动清除敏感信息 |
安全调试 |
提供量产产品被安全调试的接口 |
表 2.1 E3 信息安全组件介绍
三、 安全启动
安全启动是基于数字签名原理进行实现,关于数字签名的原理,如下图所示。首先将需要运行的镜像文件进行签名,签名后的文件烧录到 Flash 中,启动时 BootROM 进行验签,验签通过则运行该镜像文件。
图 3.1 数字签名流程
E3 具体的安全启动流程如图 3.2 所示,具体流程如下:
- 首先将公钥的哈希值烧录到 efuse 中(ROTPK1)
- 启动时 BootROM 会先计算 BPT 中的公钥的哈希值跟 efuse 中的 ROTPK1 进行比对,验证公钥的合法性,如果不一致则启动失败
- 接着使用 BPT 中存储的公钥验签 BPT 中的签名,验签不通过则启动失败
- 计算各个镜像文件的哈希值,如果一致则启动对应的镜像,不一致则启动失败
图 3.2 E3 安全启动流程
四、 安全调试
E3 的调试系统基于 ARM 的 Coresight 架构实现,通过 JTAG/SWD 接口调试 CortexR5 内核,基本架构如下图所示。
图 4.1 Coresight 调试架构
安全调试的意思就是调试接口可以被安全地管理,实现只允许合法者调试,根据安全调试的控制强度,基本分为三种控制形式:
- 对于生命周期处于开发模式的芯片(出厂默认设置),默认使能调试接口。
- 对于生命周期处于量产模式的芯片(通过烧录 efuse 实现),根据权限验证开放调试接口
- 强制关闭调试(通过烧录 efuse 实现),永久关闭调试口
E3 的安全调试流程图如下图所示,首先会判断 JTAG 是否永久关闭,是的话禁用调试,否则判断芯片是否处于量产模式,否的话开启调试口,是的话则进入 BootROM 启动,启动失败则禁用调试,否则判断是否开启了安全调试,否的话开启调试,是的话则进行秘钥的校验,校验通过则开启调试,否则禁用调试。关于秘钥的校验采用 Challenge/Responder 机制,其验证逻辑如下:
- Debugger 发出请求
- 芯片回复 UID
- 用户根据 UID 找到对应的 Key(64 bit)通过 Debugger回复给芯片
- 芯片匹配 Key 成功后开启调试口
图 4.2 E3 安全调试流程图
五、 安全存储
E3 的安全存储是通过 HSM 模块加密数据的存储实现,其加密存储的加密秘钥为 Fuse Key,提供了以下三种访问控制方式:
- 常规访问,即只有通过安全启动的软件都可以访问
- 鉴权访问,即通过 HMAC 验证,确认合法的请求才会响应对应 KeyID 的服务
- 固定规则,即对 HSM 外部只提供加密服务,最高的安全等级
如下图所示为 E3 安全存储的数据流示意图。
图 5.1 安全存储流程
六、参考资料
1.《Semidrive_E3信息安全_Rev1.0.pdf》,2022.12
评论