用于提供安全服务的车身安全锚节点设备、方法以及网络系统与流程

文档序号:19730200发布日期:2020-01-18 03:51阅读:249来源:国知局
用于提供安全服务的车身安全锚节点设备、方法以及网络系统与流程

本公开涉及安全服务,更具体地,涉及用于在局部车辆网络或域网络中提供安全服务的车身安全锚节点设备、在局部车辆网络或域网络中配置车身安全锚节点以提供安全服务的方法、以及向车辆提供安全服务的网络系统。



背景技术:

随着汽车信息化的发展,车身电子节点的数量显著增长。这些电子节点能够提供各种传感监测、自动化与智能化操纵和显示、以及通信互联等服务。车身的节点和节点之间,功能域和功能域之间,车身的节点和功能域与外部网络之间的数据通信的场景也越来越多,网络通信的速度和带宽也在不断增加。随之而来的是信息安全方面的威胁和挑战也越来越大。为了防止恶意攻击导致车辆制造厂和最终用户的财产以及身体安全的损失,在设计车辆的电子网络架构时需要充分考虑来自各方面的信息安全威胁,定义信息安全需求,规划进行通信的电子节点以及整车网络的信息安全功能。

通常,通信节点需要具备高可靠性的硬件安全模块或者相应功能模块作为安全信赖链条的基础部分,提供诸如防篡改和支持安全访问的物理存储,安全随机数生成以及实施加密算法的功能,该硬件安全模块也被称之为安全锚(securityanchor)。图1示出现有的车辆网络100的拓扑结构。车辆网络100中作为通信节点的ecu(electriccontrolunit)101至108通过总线110相互通信连接。每个ecu都存在对安全通信的需求。

为了实现车身的重要信息安全,现有技术中每个相关通信节点都配置有安全锚,这显著增加了各个通信节点的系统复杂度和整车成本。只要有一个环节被攻破,那么整个系统都不再安全。后台安全服务中心也很难得到全面准确的安全状态报告,不能采取及时有效的应急措施减小因安全事故带来的损失。另外,为了预置、更新和维护以上安全数据内容,需要占用大量生产线时间,增加了车辆的制造成本和信息泄露的风险。在4s店通过诊断配置方式更新以上数据面临同样的困难。

因此,存在对现有的车辆网络中的安全服务方案进行改进的需求。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

根据本公开的实施例,提出通过一套安全通信协议为局部车辆网络或域网络提供安全服务的车身安全锚节点(in-vehiclesecurityanchornode,vsan)设备。该车身安全锚节点设备为局部车辆网络或网络域上的唯一安全锚,作为安全性能最高的节点,统一监察网络安全事件,向后台在线安全中心或者车身控制器提供及时准确的网络安全状态报告。该车身安全锚节点设备作为在线安全中心代理,能够方便地管理整车相关的证书链和密钥系统,还可以不依赖外部证书链体系,而是基于车内通信节点自身的硬件指纹特征(比如硬件序列号),为局部车辆网络或域网络中的所有通信节点生成有效身份,并支持通信节点之间的身份认证。唯一的车身安全锚节点设备可以减少安全事件的处置反应时间,减少网络攻击和安全漏洞带来的损失。

根据本公开的一方面,提出一种车身安全锚节点(vsan)设备,用于向局部车辆网络或域网络中的所有通信节点提供全局的安全服务,其特征在于,所述车身安全锚节点设备包括处理器,安全存储器,安全随机数生成器以及加密算法引擎,所述处理器被配置为:

响应于来自所述局部车辆网络或域网络中的通信节点的安全服务请求,向所述通信节点发送安全服务确认;和/或,向所述通信节点发送安全服务通知,并且接收来自所述通信节点的针对所述安全服务通知的安全服务响应。

根据本公开的实施例,响应于来自所述局部车辆网络或域网络中的通信节点的安全服务请求,向所述通信节点发送安全服务确认包括以下中的至少一个:

响应于所述通信节点的启动通信的请求,向所述通信节点发送是否允许通信的确认;

响应于所述通信节点的身份验证的请求,基于所述安全存储器中存储的密钥、数字证书、安全多项式和基于硬件指纹的身份信息中的至少一个验证所述通信节点的身份,并且向所述通信节点发送身份验证结果;

响应于所述通信节点的分配高强度随机数的请求,由所述安全随机数生成器生成所述高强度随机数,并且向所述通信节点发送所述高强度随机数;

响应于所述通信节点的获取或更新密钥和数字证书中的至少一个的请求,向所述通信节点发送在所述安全存储器中存储的密钥和数字证书中的至少一个;

响应于所述通信节点的对数据文件的读取、存储和删除中的至少一个操作的请求,验证所述通信节点对所述数据文件的操作权限并且向所述通信节点发送允许或拒绝所述操作的确认;

响应于所述通信节点的访问固件的请求,向所述通信节点发送在所述安全存储器中存储的与所述固件对应的密钥、数字证书和原始哈希值中的至少一个;

响应于所述通信节点的数据传输的加密方式的请求,向所述通信节点发送数据传输的加密方式的确认,其中数据传输的加密方式包括非对称加密、对称加密和签名中的至少一个;

响应于所述通信节点的报告安全事件的请求,记录所述通信节点的安全事件;以及

响应于所述通信节点的加密数据传输的请求,向所述通信节点发送或接收来自所述通信节点的以预先约定的加密方式加密的数据报文。

根据本公开的实施例,向所述通信节点发送安全服务通知,并且接收来自所述通信节点的针对所述安全服务通知的安全服务响应包括以下中的至少一个:

向所述通信节点发送身份验证的通知,并且接收来自所述通信节点的身份验证结果的响应;

向所述通信节点发送数据传输的加密方式的通知,并且接收来自所述通信节点的数据传输的加密方式的响应,其中数据传输的加密方式包括非对称加密、对称加密和签名中的至少一个;

向所述通信节点发送更新密钥和数字证书中的至少一个的通知,并且接收来自所述通信节点的更新密钥和数字证书中的至少一个的响应;以及

向所述通信节点发送加密数据传输的通知,并且向所述通信节点发送或接收来自所述通信节点的以预先约定的加密方式加密的数据报文。

根据本公开的另一方面,提出一种在局部车辆网络或域网络中配置如上所述的车身安全锚节点(vsan)设备以提供全局的安全服务的方法,包括:将所述车身安全锚节点设备通过车辆总线与所述局部车辆网络或域网络中的所有通信节点通信连接,以及将所述车身安全锚节点设备配置为对所述通信节点提供安全服务。

根据本公开的又一方面,提出一种向车辆提供安全服务的网络系统,包括至少一个局部通信网络和/或至少一个域网络,所述局部通信网络和所述域网络中的每一个具有至少一个通信节点,其特征在于,

每个所述局部通信网络或每个所述域网络都配置有如上所述的车身安全锚节点(vsan)设备,所述车身安全锚节点设备通过车辆总线与所述局部车辆网络或所述域网络中的每一个所述通信节点通信连接并且向所有所述通信节点提供全局的安全服务。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

通过参照附图详细描述其示例性实施例,本公开的上述和其它特征及优点将变得更加明显。

图1为现有的车辆内部的电子网络的拓扑结构的示例性示意图;

图2为现有的通信节点的示例性结构示意图;

图3为现有的使用通信节点的hsm单元检验的安全启动过程的示意图;

图4为根据本公开的示例性实施例的车辆网络的拓扑结构的示意图;

图5为根据本公开的示例性实施例的车身安全锚节点vsan的示意性结构图;

图6为根据本公开的示例性实施例的通信节点的示意性结构图;

图7为根据本公开的示例性实施例的通信节点与vsan之间的交互示意图;

图8为根据本公开的示例性实施例的使用vsan和通信节点提供车辆网络安全服务的过程示意图;

图9为根据本公开的示例性实施例的在车辆在产线下线或售后维修时由vsan对所有通信节点生成身份信息的过程示意图;以及

图10a和图10b为根据本公开的实施例的通信节点在安全启动过程中的进一步细节。

具体实施方式

现在将参考附图更全面地描述示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本公开全面和完整,并将示例性实施例的构思全面地传达给本领域的技术人员。在图中,为了清晰,可能会夸大部分元件的尺寸或加以变形。在图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有所述特定细节中的一个或更多,或者可以采用其它的方法、元件等。在其它情况下,不详细示出或描述公知结构、方法或者操作以避免模糊本公开的各方面。

在下文中,统一使用术语“通信节点”表示在局部车辆网络或域网络中与其它电子节点、传感器、网络域、车辆外部的设备和网络进行通信的电子节点。通信节点包括但不限于车辆网络中的电子控制单元(ecu)节点,传统或智能传感器,多媒体视频或音频设备,数据库,网关,具有复杂功能的子系统等。对于“节点”,其可以是网络架构中的逻辑节点,还可以是网络系统中的节点设备。术语“鉴权(authentication)”是指验证用户是否具有访问系统、设备或功能的权利,在下文中,除非另有说明,鉴权与身份验证是等同的。术语“车辆网络”可以指涵盖车辆内部和/或外部的车辆部分网络或车辆整体网络,还可以包括局部车辆网络或域网络,下文将不再区分车辆网络所覆盖的范围。

车辆信息安全需求主要包括数据保护,安全启动和入侵检测等部分。其中,数据保护包括:敏感数据不被泄露;数据访问者和使用者拥有合法的权限;以及数据内容的完整性以及合法性。

敏感数据包括车身安全和用户财产生命安全相关的数据以及网络通信内容,例如用于安全通信的密钥和证书,客户的私人信息,车辆的实时位置信息和驾驶信息,解闭锁命令报文等。敏感数据通常需要被加密并且被存储在不易被破解的安全存储介质上。

数据的访问者包括用户钥匙,手机,以及本地车身网络中的其它通信节点,车辆外部的网络通信对象,诸如诊断仪,后台服务器等。在与数据访问者建立通信连接以及进行通信时,需要对其身份进行必要的鉴权,判断其具有的数据访问权限。

在接收到数据之后以及使用数据之前,需要检查数据是否完整以及来源是否合法,判断其是否经过篡改,保证数据的完整性和合法性。

根据整车电子网络的功能,通用的车身信息安全功能具体体现为三类:互联通信类保护,车身网络通信类保护以及安全访问保护。对于诸如具有丰富外部互联接口的ecu设备的通信节点,例如telematics设备,抬头显示单元(headunit),高性能计算机(highperformancecomputer)等,需要着重对互联通信服务进行保护。对于诸如处于车辆网络的中心位置的网关,车身控制器等实现车辆网络中的路由转发服务的通信节点,需要着重考虑车辆网络内部通信相关的保护。对于诸如域控制器和功能模块等的通信节点,需要着重实现敏感数据的安全访问相关的保护。

为了实现以上安全功能并且达到安全目标,机动车辆的整车网络系统包括各个通信节点,以及后台基础设施需要具备的必要软件硬件平台来支持相关的协议算法和安全的数据存储传输。因此,车辆网络中的通信节点需要具备处理和维护以下安全相关的数据内容的能力:包括根证书的数字证书以及证书链;诸如公私钥的非对称密钥和对称密钥数据;实时随机数生成;安全多项式;传感器数据(用户生物体征,口令等);以及安全启动。

例如,车辆网络中的通信节点之间以及通信节点与车外设备之间一般通过数字证书以及密钥来实现相互鉴权(例如在通信节点的启动或唤醒时)。用于签名和鉴权的数字证书一般是公开的,其中可以包括公私钥密钥对中的公钥密钥。根证书和证书链(数字证书链)用于验证签名是否合法,其中根证书用于所有其他数字证书的验证。也可以直接获取公私钥密钥对中的公钥和私钥数据。通信节点之间以及通信节点与车外设备之间还可以使用安全多项式或基于硬件指纹的身份认证进行鉴权。安全多项式具有哈希(hash)特性,作为一种预先约定的加密算法,其使用将挑战数代入安全多项式计算得出的结果进行鉴权(例如用于诊断和安全访问),是目前车辆内部网络的通信节点之间进行鉴权的主要方式之一。

成对的公私密钥作为非对称加密方式,开销比较大,因此,车辆网络内的通信节点在鉴权完成后可以通过协商使用对称密钥的加密方式加密传输的数据报文。可以通过公私密钥对以及随机生成数来产生用于对称加密的对称密钥。用于数据传输的安全信道一般由基于安全密钥的对称加密来保护。通常,车辆网络中的通信节点之间的数据传输通过双方或者多方共同持有的对称密钥和加解密算法来保护。而车身上任意通信节点和外部设备之间一般通过非对称加密的公私密钥对来加密,例如通过随机数,挑战数以及双方事先共同存有的安全多项式来实现安全访问。

车辆网路中的任意通信节点的软件和固件在启动时需要通过数字签名和基于数字证书或密钥的安全鉴权等方法来实现安全的软件启动,保证运行软件的正确性和合法性。

对于数据报文的完整性和合法性,则由车辆网络中的任意通信节点通过基于双方或者多方共同持有的密钥的加密算法(例如hmac)签名来保证。hmac作为一种明文的签名算法,可以保证数据没有篡改过,但是由于其不具备加密功能,仅用于报文数据完整和合法性而不用于鉴权和加密。

通信节点需要具备高可靠性的硬件安全模块或者相应功能的模块作为安全信赖链条的基础部分以提供上文所述的安全功能并实现安全目标,这种安全模块也被称之为安全锚(securityanchor,sa)。安全锚至少需要具有如下基本部分:1)安全存储器,用于提供防篡改和支持安全访问的物理存储功能;2)安全随机数生成器,用于生成安全随机数;3)加密算法引擎,用于使用加密算法加密和解密数据。通信节点的安全锚的典型例子是通信节点内部的硬件安全模块(hardwaresecuritymodule,hsm)。采用硬件安全模块的原因在于,基于物理硬件的技术方案会比基于软件的技术方案有更高的安全可靠性。例如,一些硬件安全模块可以达到国家信息处理标准(federalinformationprocessingstandards,fips)140-1,140-2所要求的安全标准(level4)。采用hsm模块作为安全锚,可以有效地提高系统的例如物理的篡改检测机制和针对环境攻击的保护的安全性。此外,采用硬件的加解密引擎可以加速如rsa、sha等加解密算法的过程。

图2示出现有的车辆网络中的通信节点200的示例性结构示意图。每个通信节点200包括处理器201,内存(ram)202,用于存储固件和其它重要数据的诸如flash闪存、只读存储器(rom)的存储器203,用于提供计时参考的时钟204,电源管理单元205,用于经由总线与车辆网络中的其它通信节点、功能域或车辆外部设备通信的通信接口206,用于支持通信节点200的外围功能的外围器件207,以及独立设置的安全锚hsm单元208。

图3则示出通信节点使用hsm单元检验的安全启动过程的示意图。

安全启动过程分为安全固件的线下生成子过程300a和在通信节点301中的启动子过程300b。在线下的安全固件生成子过程300a中,首先在步骤300-1中获取编译后的固件文件,然后在步骤300-2中例如使用sha算法计算固件文件的哈希(hash)值。在步骤300-3中,通过例如基于rsa加密算法的私钥311对计算得出的哈希值进行加密签名。在步骤300-4中,将固件与对哈希值签名后得到的签名数据组合,存储在通信节点301的flash存储器中。

在通信节点的启动子过程300b中,通信节点301从flash存储器中读取组合数据中的签名数据314和固件文件315并分别对二者进行处理。在步骤300-5中,从通信节点301中的安全锚208的不可篡改的安全存储器中获取与rsa私钥311对应的rsa公钥312以及相应的数字证书或证书链313,对签名314进行签名解密获得在步骤300-2中计算得出的哈希值。步骤300-5实际上完成对通信节点301的鉴权。如果通信节点301没有对固件315的访问权限,则使用安全锚208中的证书313和rsa公钥312将无法对签名解密。

在步骤300-5的同时,通信节点301在步骤300-6中对固件315重新进行哈希值计算,得到新的哈希值。在步骤300-7中,通信节点301的启动程序bootloader将在步骤300-5和300-6中分别得到的哈希值进行比较。如果比较结果表明二者一致,则表明通信节点301对固件具有合法操作权限并且该固件的哈希值没有被篡改过(即固件的数据是完整和合法的),安全启动成功;如果比较结果是二者不一致,则表明通信节点301对固件没有合法操作的权限,或者固件数据被篡改过,安全启动失败。

通过上述过程,通信节点本地的安全锚为固件的安全性、合法性以及完整性校验提供关键保证。

但是,申请人发现上述安全服务方式存在诸多缺点。

为了实现车辆内部的车辆网络的重要信息安全,相关的通信节点内部都设置有独立的安全锚,这将显著增加各个通信节点的系统复杂度和整车的成本。

整车系统的信息安全由各个子系统的信息安全组成,类似于一个安全链条。但是,只要安全链条中的一个环节被攻破,那么整个系统都不再安全。现有的车辆网络的信息安全架构的安全锚分布在车辆网络的各个总线上连接的通信节点上,各个通信节点的软硬件由多个不同供应商按照不同的设计标准设计完成,因此这种架构的安全性能相对不是最优的,需要进一步提升。

在现有的车辆网络的架构中,各个通信节点的信息安全模块主要负责本身的安全需要,并没有一个整体信息安全管理和监察节点来管理整个车辆网络中的各个总线上的安全状态。因此,与车辆进行远程通信的后台安全服务中心难以获得关于车辆网络的全面准确的安全状态报告,从而不能在出现安全故障时及时有效地采取应急措施以减小因安全事故带来的损失。

另外,为了预置、更新和维护车辆的各种安全数据内容,需要通过工厂下线配置和在线更新或者通过4s店诊断配置等方式对所有重要信息安全相关的通信节点进行操作。例如,在工厂下线配置阶段,需要通过诊断命令对各个重要信息安全相关的通信节点分别写入以上安全数据,这需要占用大量的生产线时间。同时,工厂生产设备系统需要管理大量的敏感安全数据,对信息化安全要求非常高,也增加了车辆的制造成本和信息泄露的风险。

在4s店通过诊断配置方式更新以上数据时,面临同样的困难。例如,通过在线更新以上安全数据,通常在后台通过一个受信赖的在线安全中心(otc)来管理和发布公共密钥基础设施(pki),通过在线更新(ota)的方式升级相关数据。这需要车辆具有安全的在线环境以及相当的在线时间来下载升级所有车辆网络上的重要信息安全通信节点的数据。

图4示出根据本公开的示例性实施例的车辆网络400的拓扑结构。车辆网络400具有多个诸如ecu的通信节点401-1至401-6,这些通信节点通过车辆网络中的总线404在通信上相互连接。应理解的是,图4中示出的通信节点401的数量仅是示例性的,根据实际应用可以采用其它数量的通信节点。车辆网络400的总线架构上还设置有用于向车辆网络中的所有通信节点401-1至401-6提供车辆安全服务功能的单独的车身安全锚节点(in-vehiclesecurityanchornode,vsan)402以及一套用于提供安全服务的通信协议。vsan402与远离车辆的后台在线安全中心403双向通信。

下面将分别详细描述图4中的某一局部车辆网络(或域网络)400的各个部分的细节。

图5是根据本公开的示例性实施例的vsan的结构示意图。

vsan402包括处理器4021,安全存储器4022,安全随机数生成器4023,加密算法引擎4024和通信接口4025。vsan402还可以包括诸如用于存储供处理器4021运行时使用的数据的内存(ram),时钟,电源管理单元等未在图中示出的其它单元。vsan402可以看作各个通信节点401共享的安全锚hsm单元,在车辆网络400中提供各种安全服务。一般来说,vsan402不涉及各个通信节点401的自身业务逻辑,主要提供安全服务相关的业务。

vsan402作为车辆网络400中的车身信息安全服务器,通过基于客户端-服务器模型的请求-确认(request-confirmation)和通知-响应(notification-response)协议与通信节点401进行安全服务通信,提供例如包括如下的安全服务功能:

(1)数据通信端口;

(2)安全存储器;

(3)安全随机数生成器;

(4)加密算法引擎;

(5)在线安全中心代理;

(6)安全启动检验;

(7)在线安全事件监察管理;

(8)基于硬件指纹的身份管理的认证。

车身安全锚节点vsan402的处理器4021用于响应于通过通信接口4025在总线404上接收的来自车辆网络400中的某一通信节点401的安全服务请求,向该通信节点401发送安全服务确认,和/或,主动向该通信节点401发送安全服务通知并且接收来自该通信节点401的针对上述安全服务通知返回的安全服务响应。

安全存储器4022为车辆网络中的通信节点的核心安全参数(criticalsecurityparameters,csp)提供保护,这些核心安全参数数据包括公私钥密钥(特别是私钥),对称密钥,数字证书及数字证书链(特别是根证书),签名信息,用户私人信息,车辆敏感配置参数等内容。数据存储保护包括:对数据的访问者进行合法性检查;对数据的完整性进行保护,防止数据物理损坏或者被恶意篡改;对数据进行加密,防止信息泄露。安全存储器4022可以采用只读存储器(rom),电可编程只读存储器(eprom),电可擦除编程只读存储器(eeprom)和具有访问权限的光学的、电磁的、磁性存储器(例如闪存flash存储器)等。

安全随机数生成器4023是具有基于硬件算法的高性能的随机数或者伪随机数生成器,这些随机数对于许多安全算法和协议而言是关键的一环。车辆网络中的其它通信节点可以通过安全通信协议向vsan请求分配所需的安全随机数。

加密算法引擎4024用于使用加密算法对数据加密和对加密数据进行解密,以及使用密钥对签名数据进行解签名。除了rsa(公钥加密算法)算法以外,也可以使用其它用于信息安全的非对称加密算法,例如bcc(blockcheckcharacter,块校验符号)算法,sm2(椭圆曲线公钥密码)算法等。

vsan402与通信单元401通过车辆网络400的总线404相互通信连接。总线404包括但不限于ethernet,flexray,can总线。

vsan402的通信接口4025用于经由总线404连接到车辆网络400,与通信节点401进行数据通信。通信接口4025还可以具有telematics服务功能,用于经由有线网络或无线网络与车辆远程的后台在线安全中心403进行双向通信。该后台在线安全中心403可以是公网云端或虚拟局域网(vpn)上的服务器或域服务器。vsan402也可以不具有tlematics服务功能,通过车辆的telematics节点提供的安全通道与远程的后台在线中心403通信。根据信息安全要求,vsan402与telematics节点之间的数据通信也可以进行双向鉴权和数据加密,此时telematics节点也相当于一个通信节点401。

vsan402作为在线安全中心代理,可以方便地管理其所提供安全服务的车辆网络中的所有通信节点和安全功能相关的数字证书链和密钥系统,更新和/或替换失效或到期的数字证书和密钥。由于相关的数字证书、签名、密钥系统和加密算法等的敏感数据都存储在vsan402的安全存储器4022中,不再存储到通信节点401的flash存储器4013中,可以降低敏感数据被恶意篡改的可能性。

vsan402还可以作为车辆网络400中的安全性最高的节点统一监察和管理车辆网络400中由通信节点401报告的安全事件以及vsan402自身记录的安全事件,向后台在线安全中心403提供及时准确的网络安全状态报告,以及向诸如与vsan402当前提供安全服务的通信节点不同的由该vsan402提供安全服务的局部车辆网络或域网络中的其它通信节点(例如另一ecu)提供网络安全状态的通知。

另外,vsan402还可以不依赖外部证书链体系,向安全性能不高的通信节点401提供基于硬件指纹的身份管理和认证,提高这些通信节点的信息安全级别。例如,每个诸如ecu的通信节点的以下硬件序列号在全球范围内都是唯一的:生产序列号,ieee802.11mac地址,imei,sim-iccid,sim-imsi等。这些硬件序列号预存储在vsan402和通信节点401中。利用以上信息作为硬件指纹,再加上安全随机数生成器4023生成的随机数,通过哈希算法来获得通信节点的身份信息。安全随机数生成器4023作为硬件随机数生成器,可以产生高强度的非常接近真随机数的伪随机数,进一步提高信息安全等级。vsan402也具有如上所述的诸如硬件序列号的硬件指纹。

通信节点401的示例性结构在图6中示出。通信节点401包括处理器4011,内存4012,用于存储固件和其它重要数据的诸如flash闪存、只读存储器(rom)的存储器4013,时钟4014,外围器件4015,通信接口4016和电源管理单元4017等。相比图2中的通信节点200,通信节点401不再包括作为安全锚的hsm单元。当需要安全服务时,通信节点401的处理器4011通过通信接口4016与vsan402进行关于安全服务的数据通信。例如,通信节点401可以向车身安全锚节点vsan402发送安全服务请求,并且接收来自vsan402的安全服务确认,以及响应于所接收的来自vsan402的安全服务通知,向vsan402发送针对该安全服务通知的安全服务响应。通常,通信接口4016经由车辆网络400的总线404,与其它通信节点和vsan402通信。

后台在线安全中心403用于与vsan402进行双向通信,向vsan402提供关于密钥(非对称和对称密钥)、数字证书及证书链、签名信息、用户私人信息等的数据以及这些数据的更新信息,以及从vsan402及时准确地获取车辆网络400的网络安全状态报告和vsan402以及各个通信节点401的运行状况。

下面将详细介绍在提供安全服务期间,vsan402与通信节点401之间的数据通信和交互。

如图7所示,vsan402与通信节点401之间基于客户端-服务器模型的请求-应答和通知-响应的协议进行安全服务通信。当通信节点401需要从vsan402获取安全服务时,向vsan402发送请求报文(request),vsan402接收请求并且响应于该请求向通信节点401发送与该请求对应的确认报文(confirmation)。当vsan402需要向通信节点401提供服务或获取安全服务相关的数据时,vsan402向通信节点401发送通知报文(notification),通信节点401在接收到来自vsan401的通知后,向vsan401发出与该通知对应的应答报文(response)作为该通知的响应。因此,所有从通信节点401主动发出的安全服务通信数据都是以请求报文的形式,而从vsan402主动发出的安全服务通信数据都是以通知报文的形式。

下面参照附图8,以通信节点401在启动或唤醒时与vsan402的交互通信为例介绍根据本公开的示例实施例的包括vsan的车辆网络进行安全服务的过程。

通信节点401首先在步骤s801进行启动或唤醒,启动程序bootloader进行启动初始化。

启动初始化完成后,在步骤s810处,通信节点401向vsan402发送请求启动安全通信的请求。vsan402响应于接收到的该请求,根据当前状态确定是否可以进行安全通信并且将是否允许安全通信的确认发送回通信节点401。通信节点401接收vsan402返回的确认,如果确认中允许启动安全通信,则通信节点401继续执行下一步骤s820;如果确认中不允许启动安全通信,则通信节点401等待预定时间后再次向vsan402发送启动安全通信的请求。类似的,vsan402也可以向通信节点401发送请求启动通信的通知。通信节点401响应于所接收到的通知,根据自身状态确定是否可以进行安全通信,以及将允许安全通信的响应发回vsan402。vsan402基于所接收到的来自通信节点401的响应,在允许通信的情况下继续执行步骤s820,或者在不允许通信的情况下等待预定时间后再次发送启动安全通信的通知。

确定允许进行安全通信后,通信节点401和vsan402在步骤s820中进行双向鉴权,相互验证对方的身份以确定双方有权限进行安全通信。首先,通信节点401请求vsan402对通信节点401的身份验证。通信节点401向vsan401发送身份验证的请求,并且等待vsan401返回的身份验证结果。在所发送的身份验证的请求报文中还包括通信节点401的密钥、数字证书、安全多项式和基于通信节点401的硬件指纹的身份信息中的至少一个以供vsan402在验证时使用。vsan402响应于接收到的来自通信节点401的身份验证请求报文,将安全存储器中存储的密钥、数字证书或证书链(特别是根证书)、安全多项式以及先前记录的基于通信节点401的硬件指纹的身份信息中的至少一个与请求中的相应身份信息进行比较。当二者的身份信息一致或匹配(例如公私钥匹配)时,确定当前通信节点401作为合法的通信对象,有权与vsan402进行安全通信;当二者的身份信息不一致或不匹配时,确定当前通信节点401没有权限与vsan402进行安全通信。vsan402将身份验证结果的确认报文发送回通信节点401。

在步骤s830中vsan402进一步对鉴权(即身份验证)结果进行判定,如果二者身份信息一致或匹配,则鉴权成功(即步骤s830中的分支“否”,继续执行下一步骤s840。如果二者身份信息不一致或不匹配,则鉴权失败(即步骤s830中的分支“是”),执行步骤s831,由vsan402记录安全事件1,表明对通信节点401的鉴权故障,接下来在步骤s832中终止与通信节点401的通信,并且向由该vsan402提供安全服务的局部车辆网络或域网络中的其它通信节点发送与该通信节点的验证失败的通知。

根据本公开的实施例,在对通信节点401的鉴权过程中,还可以采用另一种方式。vsan402的安全存储器中仅存储根证书,用于验证通信节点401的身份验证请求报文中的密钥或数字证书(证书链)。密钥或数字证书(证书链)存储在通信节点401的flash存储器中,在通信节点401请求身份验证时,将密钥或数字证书(证书链)放入请求报文发送到vsan402,vsan402响应于该请求将根证书与接收的密钥或数字证书(证书链)进行比较或匹配。当使用根证书的验证通过时,表明二者身份信息一致或匹配,当验证不通过时,表明二者身份信息不一致或不匹配。

通信节点401接收来自vsan402的包括身份验证结果的确认报文。如果vsan402对通信节点401的鉴权成功,通信节点401可以继续执行步骤s840,否则通信节点401的鉴权失败,无法与vsan402进行进一步安全通信。

在通信节点401请求vsan402对通信节点401进行鉴权后,vsan402还要通知通信节点401对vsan402进行鉴权,验证vsan402的身份,完成双向鉴权。

与通信节点401发送身份验证请求类似,vsan402在步骤s820中还要向通信节点401发送身份验证通知,并且等待通信节点401返回的身份验证结果。在所发送的身份验证的通知报文中还包括vsan402的密钥、数字证书、安全多项式和基于vsan402的硬件指纹的身份信息中的至少一个以供通信节点401在验证时使用。通信节点401响应于接收到的来自vsan402的身份验证通知报文,将flash存储器中存储的密钥、数字证书或证书链、安全多项式以及先前记录的基于vsan402的硬件指纹的身份信息中的至少一个与通知中的相应身份信息进行比较。当二者的身份信息一致或匹配(例如公私钥匹配)时,确定vsan402作为合法的通信对象,有权与通信节点401进行安全通信;当二者的身份信息不一致或不匹配时,确定vsan402没有权限与通信节点401进行安全通信。通信节点401将身份验证结果的响应报文发送回vsan402。

在步骤s833中通信节点401进一步对鉴权(即身份验证)结果进行判定,如果二者身份信息一致或匹配,则鉴权成功(即步骤s833中的分支“否”,继续执行下一步骤s840。如果二者身份信息不一致或不匹配,则鉴权失败(即步骤s833中的分支“是”),执行步骤s834,由通信节点401记录安全事件,表明对vsan402的鉴权故障,接下来在步骤s835中终止与vsan402的通信。

vsan402接收来自通信节点401的包括身份验证结果的响应报文。如果通信节点401对vsan402的鉴权成功,vsan402可以继续执行步骤s840,否则vsan402的鉴权失败,无法与通信节点401进行进一步安全通信,vsan402记录安全事件1,表明与通信节点401的鉴权故障。

根据本公开的另一实施例,对于安全功能配置比较弱的通信节点401,可以通过基于硬件指纹的身份信息请求vsan402对其进行鉴权。在鉴权前,需要vsan402的安全存储器中存储有通信节点401的基于硬件指纹的身份信息。

图9示出在车辆在产线下线或售后维修时由vsan402对所有通信节点401生成身份信息的过程。在步骤s910中,vsan402首先基于自身的诸如上文中的硬件序列号的硬件指纹,加上由随机数生成器生成的一个随机数,产生vsan402的基于硬件指纹的身份信息并存储在安全存储器中。然后,在步骤s920中,通信节点401向vsan402发送包括通信节点401的硬件指纹的身份生成请求。vsan402响应于接收到的该请求,在步骤s930中,根据通信节点401的硬件指纹,加上随机数生成器生成的一个随机数,产生通信节点401的基于硬件指纹的身份信息并存储在安全存储器中。最后,vsan402在步骤s940中将包括vsan402和通信节点401二者的身份信息的身份生成确认报文发送回该通信节点401。通信节点401将其身份信息存储在flash存储器中。

在之后的鉴权中,通信节点401可以响应于vsan402的身份验证请求,仅使用基于硬件指纹的身份信息进行鉴权,或者使用该基于硬件指纹的身份信息与vsan402进行双向鉴权。vsan402对通信节点401的鉴权根据信息安全服务的级别,可以选择密钥、数字证书、安全多项式和基于硬件指纹的身份信息中的至少一个。对于安全功能配置比较强的通信节点401,可以采用与vsan402同样的鉴权方式。另外,基于硬件指纹的身份信息主要用于鉴权,在后续的加密传输中一般不使用该身份信息。

在双向鉴权成功之前的通信节点401和vsan402之间的通信可以通过明文报文进行。在s830的双向鉴权之后的步骤s840和s850中的数据通信,则通过加密保护的密文报文进行。

在图8的步骤s840中,通信节点401和vsan402进行密码协商,确认接下来进行加密传输中所使用的密钥、数字证书、安全多项式和基于硬件指纹的身份信息中的至少一个,以及加密方式。根据需要,密码协商可以由两者中的任一方主动提出,另一方做出协商结果的选择和/或确认,也可以仅由其中一方(例如通信节点401)主动提出,另一方(例如vsan402)进行选择或确认。

根据本公开的一个实施例,在步骤s840中,通信节点401向vsan402发送数据传输的加密方式的请求,这些加密方式包括非对称加密、对称加密和签名等中的至少一个,并且等待vsan402对加密方式的选择结果的确认报文。vsan402响应于接收到的加密方式的请求报文,选择加密方式中的至少一种并将选择结果以确认报文的形式发回通信节点401。也可以由vsan402向通信节点401发送数据传输的加密方式的通知报文,并且等待通信节点401响应于vsan402的加密方式的通知报文所发送回的加密方式选择或确认结果的响应报文。

在二者确定数据传输的加密方式后,还可以继续协商在加密传输中所使用的参数,这些参数包括但不限于加密所使用的密钥、数字证书、安全多项式、高强度随机数等。

例如,通信节点401可以向vsan402发送获取或更新密钥和数字证书中的至少一个的请求报文和分配高强度随机数的请求报文等,并且等待vsan402返回的确认。vsan402可以分别响应于上述来自通信节点401的获取或更新密钥和数字证书中的至少一个的请求报文,分配高强度随机数的请求报文等,发送相应的确认报文。例如,vsan402可以从安全存储器中获取所存储的密钥和数字证书或数字证书链中的至少一个,加入与获取或更新密钥和数字证书中的至少一个的请求报文对应的确认报文中并发送回通信节点401。vsan402还可以由安全随机数生成器生成用于分配的高强度随机数并将该随机数加入确认报文中发送回通信节点401。通信节点401在接收到上述确认报文之后,将相应的数据作为加密传输的参数应用于后续的加密通信中。

对称密钥一般由非对称密钥加上随机数生成,因此vsan402可以由安全随机数生成器生成高强度随机数,再加上安全存储器中存储的非对称密钥,生成对称密钥、将该对称密钥存储在安全存储器中并且以确认报文的形式发送回通信节点401。由于非对称密钥(诸如公私钥)的加密解密开销比较大,因此在鉴权后的数据通信中,车辆网络中的通信节点401和vsan402之间可以协商使用对称密钥进行密文传输。

类似的,vsan402也可以主动向通信节点401发送更新密钥和数字证书(证书链)中的至少一个的通知报文,并且等待接收该通信节点401对更新密钥和数字证书的响应报文。这主要用于vsan402从后台在线安全中心获取到密钥和数字证书的更新时的情况,此时vsan402作为在线安全中心代理,可以方便地管理车辆网络中的所有通信节点401和安全功能相关的数字证书链和密钥系统,以及更新和/或替换失效或到期的数字证书和密钥。通信节点401在接收到该通知后,将通知报文中包含的密钥和/或数字证书的更新存储在flash存储器中,并且向vsan402返回更新的响应。vsan402接收到来自通信节点401的响应后,继续在步骤s850中进行双向加密通信。

通信节点401不仅从vsan402获取用于通信节点401与vsan402之间的通信的密钥、数字证书、安全多项式和基于硬件指纹的身份信息以及高强度随机数等参数设定和加密通信的方式,也从vsan402获取用于不同的通信节点之间的鉴权和加密通信的密钥、数字证书、安全多项式和基于硬件指纹的身份信息以及高强度随机数等参数设定和加密方式。

在通信节点401和vsan402完成密码协商后,在步骤s850中开始双向的加密通信。vsan402可以响应于通信节点401发送的加密数据传输的请求报文,向通信节点401发送或接收来自通信节点401的以预先约定的加密方式加密的数据报文。通信节点401同样可以响应于vsan402发送的加密数据传输的通知报文,向vsan402发送或接收来自vsan402的以预先约定的加密方式加密的数据报文。

通信节点401可以针对数据文件的访问向vsan402请求相应的权限和信息。例如,通信节点401可以向vsan402发送关于对数据文件的读取、存储和删除中的至少一个操作的请求,以及对数据文件进行对称或非对称加密以及签名的操作的请求。vsan402响应于来自通信节点401的上述请求,验证通信节点401是否具有对数据文件进行相应操作的权限,并向通信节点401发送允许或拒绝所述操作的确认。通信节点401在接收到vsan402的确认报文后,在权限允许的情况下执行相应的文件操作。

图10a和10b示出根据本公开的实施例的通信节点401在安全启动过程中的进一步细节。安全启动过程分为安全固件的线下生成子过程和通信节点中的启动子过程。参见图10a所示的实施例,在安全固件的线下生成子过程1000a中首先在步骤1000-1中获取编译后的固件文件,然后在步骤1000-2中例如使用sha算法计算固件文件的哈希(hash)值。在步骤1000-3中,通过例如基于rsa加密算法的私钥1011对计算得出的哈希值进行加密签名。私钥1011来自于后台在线安全中心403。在步骤1000-4中,将固件与对哈希值签名后得到的签名数据组合,存储在通信节点401的flash存储器中。

在通信节点的启动子过程1000b中,通信节点401从flash存储器中读取组合数据中的签名数据1014和固件文件1015并分别对二者进行处理。在实施步骤1000-5之前,通信节点401需要从vsan402中获取用于对签名解密所需的rsa公钥1012。公钥1012存储在vsan402的安全存储器中。vsan402的安全存储器还存储有数字证书1013。数字证书1013和公钥1012来自后台在线安全中心403。因此,通信节点401需要与vsan402进行通信以获得公钥1012。通信节点401向vsan402发送访问固件的请求,并等待接收vsan402返回的确认。vsan402响应于所接收的来自通信节点401的请求,从安全存储器中获取与该固件的签名加密所使用的私钥1011对应的公钥1012和/或数字证书,并且将公钥1012发送回通信节点401。通信节点401在步骤1000-5中使用公钥1012对存储在flash存储器中的签名1014进行签名解密获得在步骤1000-2中计算得出的固件的原始哈希值。在从vsan402获取公钥1012之前,需要完成对通信节点401的鉴权以保证通信节点401具有对固件1015的访问权限。

在进行步骤1000-5的同时,通信节点401的处理器在步骤1000-6中对固件1015重新进行哈希值计算,得到新的计算哈希值。在步骤1000-7中,通信节点401的启动程序bootloader将在步骤1000-4和1000-5中分别得到的原始哈希值与计算哈希值进行比较。如果比较结果为二者一致,则表明通信节点401对固件具有合法操作权限并且该固件的哈希值没有被篡改过(即固件的数据是完整的),安全启动成功;如果比较结果为二者不一致,则表明通信节点401对固件没有合法操作的权限,或者固件数据被篡改过,安全启动失败。在图10a的过程中,vsan402中的安全存储器、安全随机数生成器和加密算法引擎实际上组成vsan402的安全锚。可以看出,图10a所示的本公开的示例性实施例中安全锚从通信节点401移到vsan402中。通信节点401的处理器仍然需要负担签名解密和哈希值计算的任务。

参见图10b所示的实施例,左侧的安全固件的线下生成子过程1000c与图10a中的子过程1000a类似,步骤1100-1至1100-3与步骤1000-1至1000-3基本相同。1000a与1000c的区别在于,在步骤1100-4中,仅保留对固件的原始哈希值签名加密后的得到的签名1014。固件文件1015存储在通信节点401的flash存储器中,签名1014则存储在vsan402的存储器中。

在通信节点401的启动子过程1000d中,通信节点401从flash存储器中读取固件文件1015,而签名1014则由vsan402使用安全存储器中存储的证书1013和/或与在步骤1100-3中加密签名的私钥1011对应的公钥1012来解密。数字证书1013和公钥1012均来自于后台在线安全中心403。vsan402在步骤1100-5中使用处理器基于公钥1012和数字证书1013对签名1014进行解密,获得固件的原始哈希值1016。通信节点401在步骤1100-6中对固件文件进行哈希值运算获得固件的计算哈希值。在步骤1100-7中需要通信节点401的bootloader程序对原始哈希值和计算哈希值进行比较,因此需要从vsan402获取原始哈希值。通信节点401向vsan402发送关于访问固件的请求并等待接收来自vsan402的原始哈希值。vsan402响应于接收到的访问固件的请求,如上所述基于安全存储器中存储的与固件1015对应的密钥和数字证书中的至少一个对固件的签名1014进行解密以获取固件的原始哈希值,并且向通信节点401发送该原始哈希值。需要说明的是,在通信节点401向vsan402发送访问固件的请求之前,已经完成了通信节点401和vsan402之间的双向鉴权。通信节点401在接收到包含原始哈希值的确认报文后,完成步骤1100-7的哈希值比较。如果比较结果是二者一致,则表明通信节点401对固件具有合法操作权限并且该固件的哈希值没有被篡改过(即固件的数据是完整的),安全启动成功;如果比较结果是二者不一致,则表明通信节点401对固件没有合法操作的权限,或者固件数据被篡改过,安全启动失败。在图10b的过程中,vsan402中的安全存储器、安全随机数生成器和加密算法引擎实际上仍然组成位于通信节点401外部的vsan402的安全锚。

相比图10a所示的过程,图10b的示例性实施例将对签名解密的任务交由vsan402的处理器完成,充分利用了vsan402的处理能力并减小通信节点401的处理负担,可以为诸如ecu的通信节点401释放更多的处理能力以进行其它工作。

图10a和10b所示的实施例也可以应用于通信节点401的固件远程升级过程。一方面包括软件更新的固件下载到通信节点401的flash存储器中,另一方面将与固件对应的哈希值、签名以及公钥和数字证书写入vsan的安全存储器中。还可以在vsan402的安全存储器中写入相应的证书链或根证书以检验相应数字证书和公钥的合法性。通过类似子过程1000b和1000d,可以检验固件升级是否成功。

根据本公开的实施例,vsan和通信节点之间,以及各个通信节点之间可以协商在双向鉴权成功后的预定时间段内的加密通信不再进行双向鉴权。二者也可以协商用于加密通信的密钥、数字证书、安全多项式等的有效期,上述加密设定和参数在该有效期内不用更新。

根据本公开的实施例,vsan402在双向鉴权之后的任何数据通信情况下,可以对接收到的来自通信节点401的安全服务请求报文进行完整性检查,参见图8中的步骤s860。当请求报文不完整(如s860中的分支“是”)时,在步骤s861中由vsan402的处理器记录安全事件2,表明出现报文完整性故障,并且在步骤s862中终止与通信节点401的通信。如果请求报文完整时(如s860中的分支“否”),则继续执行下面的步骤。vsan402也可以对接收到的来自通信节点401的针对vsan402发出的安全服务通知所返回的安全服务响应的响应报文进行完整性检查。

类似地,通信节点401也可以在双向鉴权之后的任何数据通信情况下,对接收到的来自vsan402的安全服务确认报文和安全服务通知报文进行完整性检查。当确认报文或通知报文不完整时,由通信节点401的处理器记录安全事件,表明出现报文完整性故障,并且终止与vsan402的通信。如果确认报文或通知报文完整时,则继续执行下面的步骤。出于简明的目的,该部分步骤未在图8中示出。各个通信节点401可以通过向vsan402发送报告安全事件的请求,向vsan402通报各个通信节点所记录的安全事件。

根据本公开的实施例,vsan402可以响应于所接收的来自通信节点401的报告安全事件的请求,将这些安全事件记录在相关记录(log)中。同时,vsan402也可以将自身记录的安全事件(诸如上文中的安全事件1和2)记录在相关记录中。vsan402作为车辆网络安全的一个监察节点,对车辆网络中的各个通信节点所记录的安全事件进行收集和汇总,并且在检测到异常情况下向在线安全中心403报告相关事件以及相关的记录信息。

例如,当车辆网络遭遇拒绝服务(denialofservice,dos)攻击时,一个或者多个通信节点在一段有限时间内密集重复发送一段报文或者无意义数据,这将占用网络带宽和服务资源导致网络拥塞和资源耗尽。再如,车辆网络上的某个恶意通信节点伪造其它通信节点的身份从而获取秘密数据或者获得一些功能的控制权限。vsan402通过记录来自其它通信节点和自身记录的安全事件,结合后台在线安全中心403,可以有效防范针对车辆网络的安全攻击,及时发现车辆网络的故障并采取应对措施。

这些安全事件包括但不限于:1)通信节点鉴权失败;2)通信节点的通信报文签名无效;3)通信节点的安全启动失败;4)车辆网络的通信遭遇dos攻击;5)通信节点报告的网络攻击;6)车辆网络中的伪造身份攻击;7)与vsan进行通信的通信节点之外的其它通信节点的失效,例如诊断服务(unifieddiagnosticservices)中所定义的节点故障码信息等等。

通过使用上文所述的提供安全服务功能的车身安全锚节点vsan以及与该vsan配套的通信节点,基于一套安全通信协议组成机动车辆的车辆网络,以及基于该vsan、通信节点和车辆网络的用于提供安全服务功能的方法,可以获得以下所述的至少一个优点或效果。

采用局部车辆网络或者域网络上唯一的安全锚vsan及其配套的安全通信协议为车辆网络中的诸如ecu的所有通信节点提供受信赖的安全服务(诸如安全存储,随机数生成,加密引擎,安全启动检验等),从而减少了车辆网络上的总的安全锚数量,减少了系统的复杂度,开发成本和零件成本。

这种安全架构在减少安全锚的同时,可以由一个安全性能最高的节点vsan统一监察网络安全事件,向后台在线安全中心或者诸如车辆控制器的通信节点提供及时准确的网络安全状态报告。作为在线安全中心代理,使得后台在线安全中心可以及时方便地管理车辆相关的证书链和密钥系统(例如,更新或替换一些已经失效或者到期的数字证书和密钥),减少了安全管理和维护的成本。

统一的安全监察节点还可以及时并且完整地记录报告车辆网络上发生的安全事件和各种异常,从而可以向后台在线安全中心及时提供可信赖的完整的安全信息,减少了安全事件的处置反应时间,减少网络攻击和安全漏洞带来的损失。

根据本公开的实施例,还提出包括上文中的vsan和通信节点的车辆网络,用于提供车辆中的信息安全功能。通过使用该车辆网络,机动车辆的信息安全功能得到进一步提高,并且有效降低了管理和维护成本。

本领域技术人员将了解,上述vsan和通信节点的各个模块和功能可以硬件方式、软件方式或硬件与软件相结合的方式实现。各个模块和功能也可以相互结合。另外,本公开的实施例中所列举的方法步骤根据实际需要,可以选择部分步骤实施,或者调整步骤的先后顺序。

在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序包括可执行指令,该可执行指令被例如处理器执行时可以实现上述任意一个实施例中所述的用于提供安全服务的方法的步骤。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在vsan或通信节点上运行时,所述程序代码用于使所述vsan或通信节点执行本说明书中的用于提供安全服务的方法中描述的步骤。

本领域技术人员在考虑说明书及实施本公开的内容后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开中未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1