鉴源实验室丨HSM技术浅述

article/2025/9/23 6:53:12

作者 | 徐奕华 上海控安可信软件创新研究院汽车网络安全组

来源 | 鉴源实验室

引言:2023年5月初,工业和信息化部装备工业一司组织全国汽车标准化技术委员会开展《汽车整车信息安全技术要求》等四项强制性国家标准的制修订[1]。这意味着车辆信息安全管理逐渐成为了车辆全生命周期中不可或缺的一部分。本文就与车辆信息安全息息相关的HSM(硬件安全模块)技术展开介绍。

01

HSM背景与概念

1.1 HSM背景

汽车信息安全涉及到很多应用场景,其中包括远程的安全诊断和固件更新、随机数生成和密钥交换、安全启动和即时的数据/代码完整性校验、安全的生命周期管理、安全的板上通讯(SecOC)。

针对汽车信息安全各类应用场景,业界也给出了信息安全架构。从需求角度看,定义包含威胁分析和管理的安全模型,现有的比如ISO 21434标准;从车载网络角度看,根据当前车载网络架构,依据安全目标,实现相应的安全策略,这些基本上由车厂定义;从ECU应用层软件的角度看,包含通讯服务模块、安全服务模块以及安全板上通讯模块,在AutoSAR架构下,有对这些模块的规范;从MCU相关底层软件角度看,包含底层驱动以及HSM固件;从硬件角度看,包含安全芯片以及安全协处理器(HSM)。

关于汽车信息安全硬件模块的硬件级规标主要包括SHE和EVITA HSM标准,如图1,下面从结构和功能两个方面来描述。在SHE规范下,架构需求是可配置的、有固定功能的,具体体现为SHE规范下均使用AES-128算法进行加解密,应用程序工程师需要能够对SHE Bootloader起始地址和大小进行配置,功能需求包括安全启动、AES 128加解密算法、真伪随机数发生器、密钥派生。在EVITA规范下,架构需求是可编程的、安全的CPU,即安全计算核独立于应用程序核实现,与之相绑定的有独立的安全存储区域、硬件加速电路以及提供给应用程序核调用的硬件接口,同时安全计算核的内核代码需要定期地升级迭代。功能需求下,EVITA项目制定了三个等级的规范,每个等级对功能要求逐级递减。相对于SHE,EVITA功能中包含了非对称算法的引擎需求、Hash引擎需求等等,并且对各层级的ECU需要的HSM硬件支持有了更细致的划分,将成本效益考虑进HSM设计。那么在将来的硬件级规标下,我们可以预想到在架构方面可能对安全通讯模块有加速的需求,在功能方面可能需要对更多的加解密算法支持,同时在国密算法逐渐被普及应用的背景下,可想将来也会制定与国密相关的硬件级规标。

图1 汽车信息安全硬件模块硬件级规标

1.2 HSM概念

在简单了解了信息安全架构和信息安全硬件级规标后,我们就能很容易地理解HSM的概念以及作用了。

在维基百科中,HSM有如下定义:HSM(Hardware Security Module,硬件安全模块)是一种用于保障和管理强认证系统所使用的数字密钥,并同时提供相关密码学操作的计算机硬件加速设备[2]。

详解定义,HSM主要有两个功能:

第一个是存储管理密钥。由于应用程序本身有权限读取密钥,并且其本身逻辑漏洞可能导致密钥泄露,所以如果密钥存储在应用程序的代码或者数据中,那么就会变得不安全。同时如果硬件层面上不对密钥进行隔离和保护,容易因为物理攻击或者暴力提取导致密钥泄露。为了解决密钥泄露问题,增设硬件安全模块,专门存储管理密钥,限制对密钥的访问。

第二个是加速加解密算法。通用内核进行复杂的加解密算法运算通常会占用大量计算资源,而车上MCU通常对实时性有很高的需求。为了解决这个问题,增设硬件安全模块,提供硬件层级的优化,对各类加解密算法进行加速。 

1.3 EVITA HSM分级

上面提到的EVITA硬件级规标是一种被广泛接受和应用的HSM硬件规范。本章主要介绍EVITA HSM的三种分级,具体如图2。

图2 EVITA HSM分级[3]

FULL EVITA HSM:该层级的HSM主要保护车载域免受V2X通讯安全漏洞的影响。这需要创建和验证电子签名,为了完成高效的签名操作,需要一个非常高效的非对称加解密引擎。该层级提供了所有不同HSM变体的最高级别的功能、安全性和性能。

Medium EVITA HSM:该层级的HSM着重于保护板上通讯。区别于FULL层级,Medium层级无需支持非对称加解密引擎以及哈希引擎。不过在软件层面,可以执行一些对实时性要求不高的非对称加密算法。出于效率与成本,板上通讯都基于对称算法,省去非对称算法引擎可以节省成本和硬件规模。

Light EVITA HSM:该层级的HSM专注于确保ECU和传感器和执行器之间通讯的安全。其仅需要包含一个对称加解密引擎和对应的经过裁剪的硬件接口。因此,Light层级可以满足严格的成本和效率要求。

02

HSM在SecOC中的应用

SecOC模块属于AutoSAR里一个独立的模块,其目的是为PDUs级数据交互提供资源高效和实用的认证机制。也就是,SecOC模块能为总线上传输的数据提供身份验证,可以有效地检测出数据回放、欺骗以及篡改等攻击手段。

图3 SecOC在AutoSAR框架下的位置和信息流[4]

SecOC在AutoSAR框架下位置和信息流如图3。SecOC从AutoSAR通讯栈中获取消息,从新鲜度管理器获取新鲜度,并且调用加解密接口对PDU和新鲜度计算消息认证码(MAC),并且将包装好的Secure I-PDU发送给下层链路层以及物理层。其中SecOC调用加解密接口时通过向HSM寄存器写入对应服务(SecOC一般为CMAC算法)的命令以及参数来使用HSM完成加解密算法,同时通过HSM/Host Interface寄存器控制对HSM的访问。HSM内核端维护对密钥的管理和更新,防止密钥泄露。

参考文献:

[1]公开征求《汽车整车信息安全技术要求》等四项强制性国家标准的意见.

https://wap.miit.gov.cn/jgsj/zbys/gzdt/art/2023/art_04c9975d77f54f60bf678861e7503c46.html

[2]维基百科HSM定义.

https://zh.wikipedia.org/wiki/%E7%A1%AC%E4%BB%B6%E5%AE%89%E5%85%A8%E6%A8%A1%E5%9D%97

[3]SECURE AUTOMOTIVE ON-BOARD ELECTRONICS NETWORK ARCHITECTURE.

https://www.evita-project.org/Publications/AEHR10.pdf

[4]12月车规MCU系列直播预告.

https://zhuanlan.zhihu.com/p/314961393


http://chatgpt.dhexx.cn/article/aWMwYv6q.shtml

相关文章

英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM

本系列的其它几篇文章: 《英飞凌 AURIX 系列单片机的HSM详解(2)——与HSM相关的UCB和寄存器》 《英飞凌 AURIX 系列单片机的HSM详解(3)——开发方法》 《英飞凌 AURIX 系列单片机的HSM详解(4)—…

硬件安全模块(HSM)

一、什么是HSM 说起信息安全和加解密,我们很容易会在脑海中浮现出锁和钥匙。那我们来想象一个场景: 假设一位父亲有三个儿子,他给每个儿子各买了一台掌上游戏机。为避免他们沉迷游戏,父亲把每台游戏机都锁到一个小盒子里。盒子归…

什么是WSDL?

WSDL(Web Service Description Language)Web服务器描述语言是用XML文档来描述Web服务的标准,是Web服务的接口定义语言,由Ariba、Intel、IBM、MS等共同提出,通过WSDL,可描述Web服务的三个基本属性&#xff1…

已有wsdl,怎么去调用他的方法

1,在浏览器验证该wsdl地址是否可以打开,显示为该模式 2,新建一个项目,右击该项目,other,webservice,webservice clent , 讲该wsdl地址输入,finish 3,新建一个类,实例化impl,调用一个…

WSDL的文件结构(WSDL 1.1规范

为能将一个WebService描述清楚&#xff0c;WSDL从三个层面对一个服务进行了描述&#xff1a; 一&#xff1a;描述服务的接口(<wsdl:portType/>部分)&#xff0c;也就是服务有哪些操作(<wsdl:operation/>部分)以及每个操作的输入输出参数(<wsdl:message/>部分…

WSDL阅读方法

我们以天气预报WebService服务为例&#xff0c;来看看怎么阅读一个wsdl文档。 打开一个wsdl文档后&#xff0c;先看底部。 binding在这里&#xff1a; portType在这里&#xff1a; 好了&#xff0c;看了上面的&#xff0c;我们来说说wsdl说明书的整体结构吧&#xff1a; 1.&l…

IDEA wsdl教程

这篇文章教你如何利用IDEA发布WSDL 博主大学复习周精心制作,共推出几个模块供大家利用, ####今天我们先来学习一下如何利用IDEA发布WSDL 首先打开IDEA 新建一个Java项目 OK了基本的项目已经创建完成! 创建一个新的类命名为Java6WB代码如下所示: package com.company; im…

【WebService】wsdl配置详解以及使用注解修改wsdl配置

欢迎关注我新搭建的博客&#xff1a;http://www.itcodai.com/ WebService系列文章&#xff1a; 【WebService】带你走进webservice的世界 【WebService】自定义WebService服务及其调用 【WebService】CXF处理javaBean等复合类型以及Map等复杂类型的数据 【WebService】CXF拦…

WSDL实例解析

WSDL的主要文档元素 WSDL文档可以分为两部分。顶部分由抽象定义组成&#xff0c;而底部分则由具体描述组成。抽象部分以独立于平台和语言的方式定义SOAP消息&#xff0c;它们并不包含任何随 机器或语言而变的元素。这就定义了一系列服务&#xff0c;截然不同的应用都可以实现。…

WSDL、详解

WebService中的WSDL详解 有人在WebService开发的时候&#xff0c;特别是和第三方有接口的时候&#xff0c;走的是SOAP协议&#xff0c;然后用户&#xff08;或后台&#xff09;给你一个WSDL文件&#xff08;或网址&#xff09;&#xff0c;说按照上面的进行适配&#xff0c; 这…

wsdl和wadl区别

1、Java开发WebService最重要的两个规范&#xff1a; JSR-224 (JAX-WS&#xff1a;Java API for XML-Based Web Services ) &#xff0c;主要使用soap协议&#xff0c;使用wsdl来描述&#xff1b;JSR-311 (JAX-RS&#xff1a;The Java API for RESTful Web Services)&#xff…

WebService中的WSDL详细解析

WebService中的WSDL详解 有人在WebService开发的时候&#xff0c;特别是和第三方有接口的时候&#xff0c;走的是SOAP协议&#xff0c;然后用户&#xff08;或后台&#xff09;给你一个WSDL文件&#xff08;或网址&#xff09;&#xff0c;说按照上面的进行适配&#xff0c; 这…

WSDL详解

原文链接&#xff1a;WebService中的WSDL详解 有人在WebService开发的时候&#xff0c;特别是和第三方有接口的时候&#xff0c;走的是SOAP协议&#xff0c;然后用户&#xff08;或后台&#xff09;给你一个WSDL文件&#xff08;或网址&#xff09;&#xff0c;说按照上面的进…

WebService的WSDL详解以及远程访问WebService

一、WSDL详解 1.wsdl是一个用于精确描述Web服务的文档&#xff0c;是一个遵循wsdl-xml模式的xml文档。 2.一个wsdl文档通常包括8个重要元素&#xff0c;即definitions、types、import、message、portType、operation、binding、service元素。 3.这些元素嵌套在definitions元…

WebService中的WSDL详解

WebService中的WSDL详解 有人在WebService开发的时候&#xff0c;特别是和第三方有接口的时候&#xff0c;走的是SOAP协议&#xff0c;然后用户&#xff08;或后台&#xff09;给你一个WSDL文件&#xff08;或网址&#xff09;&#xff0c;说按照上面的进行适配&#xff0c; 这…

云计算与网格计算关系有别

导读&#xff1a;最近不断有人或询问云计算与网格计算的区别&#xff0c;或认为云计算是网格计算的延伸&#xff0c;甚至有学者写出比较的论文。事实上&#xff0c;云计算和网格计算本没有任何关系&#xff0c;但本文将澄清云计算和网格计算的区别&#xff0c;至于云计算和分布…

SOA、网格计算、云计算与P2P技术

1.面向服务的体系结构SOA 1&#xff09;定义&#xff1a;Service-Oriented Architecture&#xff0c;一种应用的体系结构&#xff0c;其中所有的功能都定义为独立的具有可调用的接口的服务。这些服务可以在一个流程中被调用从而完成相应的商业处理过程。服务可以位于同一个应用…

简单理解串行计算、并行计算、分布式计算、网格计算与云计算

并行计算 并行计算可以划分成时间并行和空间并行。时间并行即流水线技术&#xff0c;空间并行使用多个处理器执行并发计算&#xff0c;当前研究的主要是空间的并行问题。 并行计算是相对于串行计算来说的。要理解并行计算&#xff0c;首先需要了解串行计算。串行计算是不将任…

网格计算和云计算之间的比较

转自&#xff1a;http://www.chinacloud.cn/show.aspx?id15020&cid14 随着网络技术的不断的发展和深入&#xff0c;网络信息越来越多&#xff0c;数据海量的进行挖挖取&#xff0c;而随之而来的就是新概念和新技术的诞生&#xff0c;目前有两种网络的计算方法最受人们关注…

云计算机基于什么网络吗,什么是云计算,什么是网格计算,他们之间有什么区别...

原标题&#xff1a;什么是云计算&#xff0c;什么是网格计算&#xff0c;他们之间有什么区别 随着网络技术的广泛应用和深化&#xff0c;网络信息与服务趋于海量&#xff0c;海量数据挖掘处理、分布异构等问题逐渐显现&#xff0c;随之新概念新技术也层出不穷&#xff0c;以云计…