点击上方蓝字谈思实验室
获取更多汽车网络安全资讯
01
什么是安全启动
安全启动(Secure Boot)是一种安全技术,用来保护计算机和嵌入式系统在启动过程中免受恶意软件或未授权代码的侵害。
ECU控制器的系统运行合法的软件(由零部件供应商开发的软件),当软件被篡改时,整个系统将不会工作,这样就可以避免黑客操纵车辆。
这一过程通常涉及使用加密密钥和签名验证,以建立从硬件到软件的信任链。
目前安全启动的主流技术方向有以HSM安全硬件支撑的安全启动方案。
02
安全启动保护哪些内容
它确保系统仅执行来自可信来源的软件,从而保护系统的完整性和安全性。
在我们的整个软件系统中存在多个软件组件,当系统启动时这些组件的运行是有一个确定的先后顺序的(bootloader->App),启动过程中需要按照启动顺序依次对每个软件组件进行校验,校验通过后再启动该组件。
校验通过的组件被称为受信任的组件,当所有的软件组件校验通过,它们就组成了一个受信任的软件链条,即信任链(Trust chain)。这条链条中最初被校验的组件,就是信任根(Trust root)。
03
安全启动的技术实现方式有什么
顺序启动:
在校验完某个模块并且校验无误之后,才会启动该模块。该模式的优点在于安全性高,不会出现被篡改的软件运行的可能性;缺点在于会影响系统的启动时间。
并行启动:
模块的校验过程与模块的启动过程同步运行。该模式的优点是不会增加系统的启动时间;缺点是安全性较低,存在被篡改的软件运行的可能性。
混合启动:
结合了顺序启动和并行启动这两种模式,即对某些模块采用顺序启动的方式,对另一些模块则采用并行启动的方式。一般主流的做法是对Bootloader使用顺序启动,对Application使用并行启动。
安全启动流程基础
完整性校验使用的是HSM硬件加速的AES128-CMAC算法。
Reference CMAC:
在Trust Boot Table建立的时候,针对当前PFlash上的Software Part计算出的CMAC值,用于在安全启动的时候检测软件的真实性和完整性。Trust Boot Table是只需要建立一次,在安全升级的表格更新。
CMAC存储于HSM Data Flash中的,是经过加密的,对于用户是不可见的。
HSM模块每次启动的时候,就会计算出这个派生的AES128-CMAC算法密钥。
安全启动的流程
以Bootloader为例,在启动的时候,HSM Core会先启动,而Host Core会一直处于Reset状态,HSM Core会自动根据Trust Boot Table中配置的Secure Boot Mode的Bootloader的起始地址和长度去计算当前PFlash上的Bootloader的CMAC值并与Trust Boot Table中该entry的Reference CMAC值进行比较。
若校验通过,则说明该Bootloader是有效的,HSM Core会释放Host Core,Host Core的Bootloder程序可以正常运行。
若校验失败,则Host Core会一直处于reset 状态,也就起不来了。
04
Application为例
Bootloader这边也可以不用等待校验结果,直接跳转至Application,在Application中进行校验结果的查询。
这样就实现了Application的运行以及HSM Core针对Application的校验并行处理,就不会影响MCU的启动时间。
当运行Application时,用户需要手动去获取Application的校验结果。
若校验通过,则Application继续正常运行;
若校验失败,HSM Core会自动进行锁密钥(密钥的属性需要成校验失败则失效),以及记录校验失败信息等操作,此时Application还是处于运行状态,HSM Core不会进行触发Reset操作。
用户也可以根据需求,在获取到Application校验失败的结果后,进行Reset或其他操作。
来源:AutomotiveSoftwareEngineer
end
专业社群
精品活动推荐
更多文章
关于涉嫌仿冒AutoSec会议品牌的律师声明
一文带你了解智能汽车车载网络通信安全架构
网络安全:TARA方法、工具与案例
汽车数据安全合规重点分析
浅析汽车芯片信息安全之安全启动
域集中式架构的汽车车载通信安全方案探究
系统安全架构之车辆网络安全架构
车联网中的隐私保护问题
智能网联汽车网络安全技术研究
AUTOSAR 信息安全框架和关键技术分析
AUTOSAR 信息安全机制有哪些?
信息安全的底层机制
汽车网络安全
Autosar硬件安全模块HSM的使用
首发!小米雷军两会上就汽车数据安全问题建言:关于构建完善汽车数据安全管理体系的建议