汽车信息安全 -- 再谈车规MCU的安全启动

news2024/11/19 4:15:45

目录

1. 安全启动流程回顾

1.1 TC3xx的安全启动

1.2 RH850的安全启动

1.3 NXP S32K3的安全启动

1.4 小结

2.信任链的问题

3.国产HSM IP的拓展


今天接着 汽车信息安全 -- 存到HSM中的密钥还需包裹吗?-CSDN博客这篇文章深究另一个重要功能-- 安全启动。

该文章的前提是假设有工具能够Dump出所有Flash数据(包含HSM),意味着逆向整个Code就不再那么困难(虽然个人对这个假设还是存疑:毕竟理论上HSM在防篡改上至少可以提供篡改抵抗和篡改留凭这两项基础功能的一个)。

而以目前我们常见的安全启动方式,大都将HSM作为信任锚,由HSM来保证Host侧所有运行软件授信,探测在运行时Host侧软件是否被篡改。

因此,我们首先回顾一下目前市面上常见的HSM固件的安全启动流程。

1. 安全启动流程回顾

不管是ETAS还是VECTOR,在安全启动上均提供了顺序安全启动、并行认证启动、混合启动方式(注意,上述启动流程两家实现基本一致,只是命名不同,这里统一成上述表达)。

  • 顺序启动:又称Secure Boot,它是指上电后HSM成功校验所有Host App后再释放Host内核,很明显这种方式会造成启动变慢;
  • 并行启动:又称Paraller Authenticated Boot,它是指上电后硬件同时释放Host和HSM内核,当HSM在校验Host App时,Host App也在并行运行,当校验失败时,由HSM来决定是否复位整个系统。这种方式虽然提高了系统启动性能,但存在一定的信息安全风险。
  • 混合启动:HSM固件对Host APP不同模块使用顺序\并行启动,这兼顾了启动时间和信息安全。

有趣的是,虽然说HSM在什么时候释放Host基本是由软件策略来决定,但是我们仍然可以从国外MCU大厂对安全启动方式的理解和设计。

1.1 TC3xx的安全启动

TC3xx上电后首先释放TriCore 0,执行它自己的Startup Software(SSW)。

SSW根据HSMBOOTEN是否置位来使能HSM内核,根据SSWWAIT是否置位来决定是否等待HSM Firmware的通知,具体流程如下图所示:

进一步讲,当SSWWAIT这一位使能后,芯片硬件认为安全启动相应地开启,需要等待HSM固件对Host软件校验结果。

由于SSW本身在ROM里,基本不会被篡改,因此这部分代码逻辑默认可信;HSM Firmware可以在任意时刻通知SSW,假设HSM Firmware开始运行就通知,这就是典型的并行启动;如果HSM Firmware将Host所有软件校验完成再通知SSW,这就是严格的顺序安全启动;如果HSM在校验部分Host App模块后通知SSW,这就是混合启动。

因此理论上讲,TC3xx从硬件层面就支持所谓的顺序、并行、混合启动。

1.2 RH850的安全启动

RH850 MCU型号太多了,因此咱们主要以ICU-M(即HSM)来看安全启动。

瑞萨的ICU全称Intelligent Cryptographic Unit,-M代表满足EVITA Medium等级,如下所示:

由于其设计雏形源于HIS SHE,因此安全启动逻辑也基本相似。在ICU-M内部有一个Secure Boot Key 用于校验Host Application。

上电后,ICUP率先复位释放,完成一系列初始化后,进入到ICU Firmware,由该Firmware的安全启动程序对Host Application进行校验,校验完成后有ICUP释放Host Core,逻辑如下图:

值得一提的是,在瑞萨提供的示例中,Program B是由Program A请求ICU-M进行校验。信任链从这个意义上也串了起来。

1.3 NXP S32K3的安全启动

在S32K3的启动流程,硬件复位后同样只有HSE(也就是HSM)子系统可以运行,首先运行sBAF()代码,完成基本环境配置,然后根据IVT(Image Vector table)中BOOT_SEQ来决定是否执行安全启动,如下图:

  • 当BOOT_SEQ = 0时,SBAF忽略掉HSE是否完成校验,直接运行Host App;
  • 当BOOT_SEQ = 1时,SBAF只运行HSE_Firmware,由HSE FW来选择什么时候释放Host Application 

基本流程如下图所示:

1.4 小结

可以看到,上述MCU均在自己的信息安全解决方案里考虑了安全启动,可以通过不同配置来选择是否启用安全启动,但是决定权还是在于HSM Firmware在什么时候复位Host软件。

因此,这也给了HSM固件供应商更大的舞台来设计安全启动流程。

例如,我们可以将用户Host Application按用途分成不同类别,比如说Group BootManager、Group AppA、Group AppB;然后在类别里根据启动时序要求拆分成不同的块,对这些块设置不同的启动模式,如下图:

这样就能够兼顾信息安全和OEM启动时间要求。 

2.信任链的问题

我们仔细分析上述MCU的启动流程,会发现一个现象:除了S32K3在SBAF里有对HSE_FW进行验证,其余方案均默认HSM FW可信。

但我遇到很多人问过这样一个问题:那你这个启动流程的信任链就是断裂的,从芯片厂商 -> Tier 1 -> OEM这个信任过程没有建立起来。

有朋友以Inter Arria 10 SoC Secure Boot过程为例:

它总共历经3个步骤:

  1. BootRom作为信任根,用于解密、验证BootLoader。验签公钥、对称加密密钥预先存在设备中,完成解密和验证后加载Bootloader运行; 
  2. Bootloader主要用于OS运行前的环境配置,包括访问文件系统、外设初始化、配置I\O等等,验签OS作为可选项;
  3. OS运行或者是Bare Metal运行后,特别是需要从Flash copy至ram运行的应用程序,是必须进行验签。

该SoC的安全启动信任链就以上述方式完成。

最初我还是认为这个很有道理,但是仔细分析下来,这个过程通篇没有提到安全隔离,也没有提到任何关于HSM的信息;

再仔细思考,一般这种SoC是不带eFlash(Embedded Flash),大部分程序都是需要从不同存储介质加载到RAM中运行,因此这些程序是必须要保证完整可信;

但我们现在讨论的车规MCU,都带有内置HSM,天然地从架构上就将MCU划分为安全域和非安全域,

HSM内部包含自己Code、Data Flash,可以存储HSW_FW、密钥、车辆\车主敏感信息。

因此理论上,把HSM和ECU主密钥组合共同作为系统信任根是可行的。

3.国产HSM IP的拓展

正是基于这点,目前有很多国产HSM IP进行完善。

例如芯来科技的HSM IP提供了完整的安全启动流程,它们的安全启动中包含两级验证和加载启动,分别为芯片级和系统级两个层级,对应芯片厂商和系统厂商。并且每一级厂商都可以拥有自己的密钥对。

芯片厂商提供BootROM和一级Loader(NSBS固件),处于HSM系统中。

芯片厂商的公钥用于验签一级Loader(NSBS固件),系统厂商的公钥用于验签HOST系统的固件程序。整体安全启动流程如下图所示:

BootRom验签NSBS,NSBS验签Host App1、2等,这样看起来很美好,芯片原厂提供整套信息安全解决方案,但是不知道HSM固件供应商如何看待这一块,毕竟“NSBS”才是它们的核心价值所在。

纽创、安谋科技 HSM IP对于安全启动的思路和芯来类似,个人感觉理念大都源于以前IoT的安全启动概念:

做法没有对错,归根结底还是在于整车系统网络安全架构要实现的网络\信息安全目标,通过合理的TARA分析来选择系统的信任根。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2177641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为OD机试 - 对称美学(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

深度学习------------------------RNN(循环神经网络)

目录 潜变量自回归模型循环神经网络困惑度梯度剪裁循环神经网络的从零开始实现初始化循环神经网络模型的模型参数初始化隐藏状态创建一个类来包装这些函数该部分总代码 定义预测函数该部分总代码 梯度裁剪定义一个函数在一个迭代周期内训练模型训练函数 循环神经网络的简洁实现…

JS设计模式之观察者模式:观察者与可观察对象的巧妙互动

一. 前言 在前端开发中,我们经常会遇到需要对用户的操作进行响应的场景,例如页面上的按钮点击、输入框内容变化等。为了实现这种响应式的设计,我们可以使用观察者模式来解耦各个组件之间的依赖关系。 本文将详细介绍观察者模式的原理和实现…

【FaceFusion3.0.0】全新升级,重磅发布!

FaceFusion 3.0.0 版本引入了许多新特性和改进,其中包括: 重新设计架构,使所有操作都作为“任务”进行处理。在面部交换功能中引入像素增强(pixel boost)。向面部检测器添加多角度处理功能。引入年龄修正处理器(age modifier processor)。引…

前端学习笔记-JS进阶篇-02

构造函数&数据常用函数 1、深入对象 1.1、创建对象三种方式 1. 利用对象字面量创建对象 2. 利用new Object 创建对象 3. 利用构造函数创建对象 1.2、构造函数 构造函数:是一种特殊的函数,主要用来初始化对象 使用场景:常规的{...} 语…

MES系统实现制造业生产自动化、智能化与透明化

万界星空科技MES系统通过集成硬件和软件,实现对生产过程的实时监控、数据采集、任务调度、资源分配、质量控制、文档管理等功能,旨在优化企业的生产流程,提高生产效率,降低成本,并确保产品质量。涵盖了离散制造、流程制…

RK3588主板PCB设计学习

DCDC电路可以直接参考数据手册: 电源输出3A,回流GND也应该是3A,回流路径和输出路径的电流是一致的,不要输出路径布线很粗,GND回流路径很细,并且应该保证回流面积最小: 这一点讲的很到位&#xf…

一款基于 RBAC 的 Net8 后台管理框架,权限管理,前后台分离,支持多站点单点登录(附源码)

前言 在当今快速发展的互联网时代,一款强大的后台管理系统对于提升工作效率、简化cao作流程具有重要意义。然而,在众多开源项目中,大部分是以Java语言编写的,这对于专注于.NET平台的开发者来说,存在一定的使用门槛。 …

云+AI时代下,Alibaba Cloud Linux 如何进一步演进?

编者按:云AI 浪潮势不可挡,服务器操作系统如何进一步演进?阿里云智能集团高级技术专家张金利在 2024 云栖大会操作系统开源专场上,分享了《Alibaba Cloud Linux 技术路线演进思考》。内容见下: (图/张金利&…

MacOS安装MindSpore(2024年最新)

大家好,我是邵奈一,一个不务正业的程序猿、正儿八经的斜杠青年。 1、世人称我为:被代码耽误的诗人、没天赋的书法家、五音不全的歌手、专业跑龙套演员、不合格的运动员… 2、这几年,我整理了很多IT技术相关的教程给大家&#xff0…

项目管理系统中的风险管理:如何识别和应对项目风险?

在现代项目管理中,风险管理是确保项目成功的关键因素之一。无论是技术、资源还是市场的变化,风险无处不在。有效的风险管理能够帮助团队识别潜在问题并制定应对策略,从而避免项目延误和预算超支。项目管理系统在这一过程中扮演着重要角色&…

从 TCP Reno 经 BIC 到 CUBIC

重读 TCP拥塞控制算法-从BIC到CUBIC 以及 cubic 的 tcp friendliness 与拐点控制 这两篇文章,感觉还是啰嗦了,今日重新一气呵成这个话题。 reno 线性逼近管道容量 Wmax,相当于一次查询(capacity-seeking),但长肥管道从 0.5*Wmax …

试填+组合数学,CF 1648C - Tyler and Strings

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1648C - Tyler and Strings 二、解题报告 1、思路分析 考虑枚举相同前缀…

MySQL约束:外键约束

下面先创建两张表用来作为实验样例 1.创建dept表 create table dept(id int auto_increment comment ID primary key,name varchar(50) not null comment 部门名称 ) comment 部门表;INSERT INTO dept (id, name) VALUES (1, 研发部), (2, 市场部), (3, 财务部), (4, 销售部…

【C语言软开面经】

C语言软开面经 malloc calloc realloc free动态分配内存malloccalloc函数:realloc 函数:free函数: 堆栈-内存分区栈区(Stack):堆区(Heap):全局(静态&#xff…

哪个待办事项提醒软件推荐?待办事项提醒软件哪个合适?

在快节奏的现代生活中,我们每个人每天都会被各种待办事项所包围。从工作计划到个人生活,从学习任务到家庭琐事,这些事项往往繁杂且紧急,稍不留神就可能错过重要的截止日期。因此,选择一款合适的待办事项提醒软件&#…

Docker-2.如何保存数据退出

在使用Docker时,我们常常需要修改容器中的文件,并且希望在容器重启后这些修改能够得到保留。 0.简介 使用Docker时有一个需要注意的问题:当你修改了容器中的文件后,重启容器后这些修改将会被重置,深入研究这个问题。 …

如何高效运营知识产权,实现企业价值最大化?

知识产权的运营管理是指企业对其所拥有的专利、商标、著作权等知识产权进行规划、运用、保护和管理的一系列活动。这些活动旨在最大化知识产权的价值,促进企业的技术创新和市场竞争力的提升。通过有效的知识产权运营管理,企业可以实现技术成果的快速转化…

猝发传输和非猝发传输

猝发传输和非猝发传输是两种不同的数据传输方式,主要区别在于数据传输的连续性以及数据包的发送方式。 猝发传输 (Burst Transmission): 定义: 猝发传输是指在一段时间内,大量数据包集中发送,然后在一段时间内没有数据传输,这种…

全流程SWAP农业模型数据制备、敏感性分析及气候变化影响技术应用

SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了W…