这是关于安全启动的三部分系列中的第三部分。如果您还没有查看前两篇文章,它们是:(第 1 部分 - 安全启动介绍)和(第 2 部分 - MCU 设备的安全启动)。在我们的上一篇文章中,我的同事 Yamanaka-san 先生描述了我们的 RH850 MCU 设备上的安全启动。在本博客中,我将介绍基于 Arm 的 Renesas R-Car Gen 3 SoC 设备的安全启动。
R-Car 上的安全启动
片上系统 (SoC) 设备具有比典型微控制器设备更复杂的启动序列。安全启动可确保整个启动链的完整性和真实性。该软件可以选择以静态加密方式存储以保护机密性。
建立信任链
为了在 R-Car 上提供安全启动,瑞萨电子构建了一条植根于硬件的信任链。掩码 ROM 和 H BK(引导密钥散列)充当不可变的信任锚。这些不能在生产中更改。在整个引导链中,信任链的每一部分都由较早的(授权的)部分进行验证。元素的链接允许所有阶段验证都指向原始的信任根,就像链中的链接一样。此验证过程的起点是 R-Car 的掩模 ROM。复位后立即执行。
R-Car 设备中的信任链
关键要点:瑞萨电子建立了一条植根于硬件的信任链
Mask ROM 和 H BK用作不可变的信任锚,这些不能更改
信任链的每一部分都由前一个(授权的)部分验证
此验证过程的起点是作为“信任根”的 R-Car 设备的掩码 ROM
准备安全引导环境
在 R-Car 设备中,安全启动从准备签名链开始。签名过程的先决条件包括生成两个 RSA 密钥对(设备根密钥对和安全启动密钥对)和生成设备根公钥哈希 (H BK )。每个客户都将在其安全的 OT 环境中控制一个唯一的根密钥。必须安全存储根和安全启动私钥,以确保整体系统安全。创建密钥对后,瑞萨电子提供的工具会生成根公钥的加密哈希。此公钥哈希 (H BK ) 提供给瑞萨电子,并在制造过程中被编程到 R-Car 设备中。H BK用于安全引导链中,用于验证根公钥的完整性和真实性。
安全启动顺序
签名图像
环境准备好后,就可以开始签名过程了。将根密钥和安全启动密钥对以及软件映像作为输入,签名工具生成两个证书:1) 包含公共根密钥的根密钥证书和 2) 包含安全启动公钥和映像签名内容的内容证书。 软件映像和证书被编程到 R-Car 设备内存中。只有公钥存储在 R-Car 设备上。
R-Car 设备上的安全启动
复位释放 (1) 后,调用安全引导功能 (2)。安全启动功能使用根密钥和内容证书 (3) 验证软件。只有验证过程成功(4),设备才会执行部署的软件。
这是安全启动序列的分解版本。
脚步:
设备重置已发布
设备执行掩码 ROM。如果设备处于安全启用状态,则执行安全启动。
掩码 ROM 从外部闪存加载证书和内容
掩码 ROM 解析根密钥证书并提取根密钥。计算根密钥散列并将其与已知的根密钥散列 (H BK ) 进行比较。如果密钥正确,则系统进行下一步。
掩码 ROM 计算并比较在安全启动内容证书中找到的启动密钥的哈希值与在密钥证书中找到的安全启动密钥哈希值(在上一步中验证)。如果检查通过,则使用公钥来验证内容证书签名。如果内容证书中的 有效,则内容证书中的数据用于计算下一个引导阶段的有效性和完整性。如果一切检查执行跳转到下一个引导阶段。
脚步:
后续启动阶段可以调用掩码 ROM 安全启动功能来验证后续阶段的内容。在此示例中,IPL 调用掩码 ROM API 以验证应用程序 1-3。通过在后期调用掩码 ROM API,设计人员可以利用硬件加速进行 RSA 签名检查和 SHA 加速器进行散列。
掩码 ROM 验证内容证书是否在下一个引导阶段加载
IPL 可以验证每个图像,或仅验证它加载的图像子集。在此示例中,应用程序 1-3 使用安全启动 API,而应用程序 4 和 5 使用另一种方法。
当 IPL 完成加载和验证内容时,它会跳转到下一个引导阶段。
结论:
SoC 具有比 MCU 设备更长的引导链。我们的 R-Car 设备中的安全启动逻辑允许设计人员在整个启动过程中利用签名检查的硬件加速。瑞萨电子 R-Car 设备利用硬件作为构建可靠、安全系统的安全信任根。
审核编辑:郭婷
-
mcu
+关注
关注
146文章
17143浏览量
351138 -
soc
+关注
关注
38文章
4165浏览量
218228 -
瑞萨电子
+关注
关注
37文章
2862浏览量
72202
发布评论请先 登录
相关推荐
评论