这篇博客文章是三部分系列的第 2 部分,旨在让读者基本了解什么是安全启动以及为什么需要它。
RH850 MCU 上有 2 种安全 IP,ICU-S 和 ICU-M。在这篇博客文章中,我们介绍了如何在这两种类型的设备上实现安全启动。
ICU-S 和 ICU-M 中的安全启动可以基于 HIS(现为 AUTOSAR)安全硬件扩展(SHE)规范来实现。如果您想了解有关 SHE 规范的更多信息,请参阅 AUTOSAR SHE(URL:安全硬件扩展规范 (autosar.org))。每个人都可以从 AUTSAR SHE 站点获得 SHE 规范。
RH850上使用ICU-S的安全启动实现方法
ICU-S 是相当于 EVITA light 的智能密码单元。
安全软件适用于 ICU-S MCU 中的主处理器元件 (MainPE)。MainPE 可以通过 ICUS 的特殊功能寄存器接口使用 ICU-S 模块中的硬件资源,例如加密加速器和安全密钥存储。
ICU-S 没有专用的纯安全 CPU。安全启动从非安全 CPU (PE1) 运行。为防止篡改,初始安全启动逻辑存储在一次性程序 (OTP) 存储器中。重置向量必须指向这个不可变的代码以防止篡改。与 OTP 一起,ICUS 设备上的安全启动使用安全启动 MAC 密钥和存储在 ICUS 中受保护的安全启动 MAC 插槽。在这个策略中,OTP 内存和ICUS 创建了信任根。
方法总结:
硬件信任根:
OTP闪存和ICUS中受保护的密钥存储
防篡改:
MAC 和 MAC 密钥安全地存储在受保护的 ICUS 内存中
密码算法
CMAC ( NIST SP 800-38B )
在 RH850 上使用 ICUS 的分段安全启动示例:
MCU 复位后,CPU(PE1) 启动并运行位于 OTP 内存中的安全启动程序。
安全引导程序验证用户程序 A。
安全启动程序根据用户程序 A 和启动 MAC 密钥计算 CMAC 值。
安全启动程序验证计算结果和“程序 A 的 CMAC 值” (注 1)。
如果步骤 2 中的验证通过,PE1 运行用户程序 A,并在 ICU-S 的帮助下验证用户程序 B。
与步骤 2 相同(程序 A -》 程序 B)。
如果步骤 3 中的验证通过,则 PE1 执行用户程序(程序 B)。
注 1:“程序 A 的 CMAC 值”可以注册在 ICU-S 管理的安全数据闪存上
RH850上使用ICU-M的安全启动实现方法
ICU-M 是符合 EVITA 中等用例的瑞萨智能密码单元。
具有 ICU-M 的 MCU 有一个单独的 ICU-M 处理器,称为智能密码单元处理器 (ICUP)。安全软件完全在 ICUP 上运行。ICUP 可以独占访问 ICU-M 中的硬件资源,例如加密加速器和安全闪存。此外,ICUP 可以访问一些共享资源以与主处理器元件 (MainPE) 进行通信。
在 MainPE 上运行的应用软件不能直接访问 ICU-M 中的资源,例如加密加速器和安全闪存。因此,MainPE 必须通过定义好的通信接口向 ICUP 请求安全服务。该接口由 ICUM 固件设计定义。具有 ICUM 的 MCU 支持通过共享内存邮箱和处理器间中断进行处理器间通信。
在具有 ICUM 的设备上,安全启动从安全 ICUP 运行。初始安全启动逻辑存储在仅 ICU-M 可访问的安全代码存储中。安全启动实施使用存储在受保护 ICUM 数据闪存中的安全启动密钥验证应用程序。安全启动密钥和 ICUM 构成了硬件“信任根”。复位后, ICUP 首先启动并执行应用软件的安全启动。验证后, ICUP 将 MCU 中的其他处理器元件从复位状态释放并开始运行。如前所述,ICU-M 中的硬件资源,例如加密加速器和安全闪存,由 ICUP 独占访问。
方法总结:
硬件信任根:
ICU-M硬件。和安全代码闪存上的安全启动程序。(攻击者无法更改受 ICU-M 硬件保护的安全启动程序)
防篡改:
引导 MAC 存储在受保护的数据闪存中,只有 ICUM 可以访问。
密码算法:
CMAC ( NIST SP 800-38B )
RSA 数字签名算法
在 RH850 MCU 中使用 ICUM 的分阶段安全启动示例(对称算法)
ICUP 配置为 MCU 复位后的引导处理器。
用户程序 A 由 ICU-M 中的安全启动程序验证。
安全启动程序根据用户程序 A 和启动 MAC 密钥计算 CMAC 值。
安全启动程序验证计算结果和“程序 A 的 CAMC 值”。
如果步骤 2 中的验证通过,CPU(PE1) 由 ICUM(安全软件)启动
PE1 运行用户程序 A 并验证用户程序 B 使用安全软件。
与步骤 2 相同(程序 A -》 程序 B)。
如果步骤 4 中的验证通过,则用户程序 B 由 PE1 操作。
在 RH850 MCU 中使用 ICUM 的分阶段安全启动示例(非对称算法)
ICUP 配置为 MCU 复位后的引导处理器。
用户程序 A 由 ICU-M 中的安全启动程序验证。
安全启动程序计算来自用户程序 A 的消息摘要(哈希)。
安全启动程序根据程序 A 的签名和公钥计算消息摘要。
安全启动程序验证这两个消息摘要。
如果步骤 2 中的验证通过,CPU(PE1) 由 ICUM(安全软件)启动
PE1 运行用户程序 A 并验证用户程序 B 使用安全软件。
与步骤 2 相同(程序 A -》 程序 B)。
如果步骤 4 中的验证通过,则用户程序 B 由 PE1 操作。
结论
总之…
ICU-S和ICU-M可以做“信任根”和“信任链”。
ICU-S 和 ICU-M 中的安全启动可以基于 AUTOSAR (SHE) HIS 实现。
ICU-M中的安全启动可以基于签名验证来实现。
审核编辑:郭婷
-
处理器
+关注
关注
68文章
19249浏览量
229604 -
mcu
+关注
关注
146文章
17115浏览量
350922 -
存储器
+关注
关注
38文章
7482浏览量
163754
发布评论请先 登录
相关推荐
评论