一种智能汽车内部网络的认证加密方法与流程

文档序号:14879838发布日期:2018-07-07 09:24阅读:405来源:国知局

本发明涉及智能汽车网络安全技术领域,具体地说,尤其涉及一种智能汽车内部网络的认证加密方法。



背景技术:

智能化与网联化在推动汽车技术变革的同时,也带来了相应的信息安全问题。智能化的发展促进了车内ecu数量的增加,网联化的升级增加了车载信息与外界的互联互通,智能网联汽车信息安全风险不断增加,车辆信息及用户隐私面临着更大的安全考验。近年来,世界著名汽车企业如宝马、丰田、特斯拉、jeep等均在其相关车型中发现了不同程度的车载网络信息安全漏洞。与此同时,在这几年的全球黑客大会上,黑客们演示了针对多种型号汽车实现的攻击。特别地,2015年7月,美国两位安全研究人员演示了无线入侵一辆jeep切诺基的网络系统,让克莱斯勒因此宣布召回140万辆存在软件漏洞的汽车,这也是首例汽车制造商因为黑客风险而召回汽车的事件。

针对智能汽车网络存在的信息安全问题,认证与加密机制是重要的技术手段。当前,大部分针对车内网络系统的安全技术使用对称密钥机制,即加密与解密数据使用同一个密钥。然而,汽车内部网络中的ecu的数量有数百个。为了保证安全,这些对称密钥需要进行频繁的分配和更新,但这样会对汽车内部网络以及ecu造成严重的通信和计算负担。也有一些技术使用非对称密钥机制。但是,为了实现认证与安全通信,非对称密钥机制通常需要公钥基础设施、访问控制列表和证书技术。然而这些机制的实现需要汽车与外部实体例如证书中心的通信才能完成证书分发、更新和其他的一些安全功能。汽车在行驶过程中,一方面并不能时刻保证通信畅通,另一方面,使用外部通信终端生成的证书也很容易遭受攻击,甚至使得整个网联系统受到影响。



技术实现要素:

为解决以上问题,本发明提供了一种智能汽车内部网络的认证加密方法,用以实现智能汽车内部的通信的加密认证。

根据本发明的一个实施例,提供了一种智能汽车内部网络的认证加密方法,包括:

预设置步骤,分别向智能汽车内的安全模块和电子控制单元存储相关的密钥信息、身份信息以及所述安全模块和所述电子控制单元之间通信的加密算法;

初始化步骤,所述安全模块利用存储的相关的密钥信息、身份信息以及所述加密算法产生对应电子控制单元的私钥,对应的电子控制单元利用自身存储的相关的密钥信息、身份信息以及所述加密算法解密,以得到所述安全模块产生的对应私钥;

会话步骤,所述电子控制单元利用对应私钥及自身存储的与其通信的电子控制单元的身份信息,请求所述安全模块产生会话密钥,所述安全模块将所述会话密钥发送给互相通信的一组电子控制单元,以使得同一组内的电子控制单元利用所述会话密钥实现组内保密通信。

根据本发明的一个实施例,在所述预设置步骤中,进一步包括:

向所述安全模块中存储所述安全模块的自身私钥,以及智能汽车内所有电子控制单元的出厂密钥和身份信息;

向所述智能汽车内的所有电子控制单元中存储各电子控制单元自身对应的出厂密钥和身份信息,以及与其通信的电子控制单元的身份信息和所述安全模块的公钥;

选择对称加密算法用于所述安全模块和所述电子控制单元之间在初始化步骤中的保密通信。

根据本发明的一个实施例,在所述初始化步骤中,进一步包括:

所述安全模块设定初始化有效时间;

所述安全模块选择用于身份加密的困难问题,并根据所述困难问题产生问题参数和主密钥;

所述安全模块根据每个电子控制单元的身份信息、所述初始化有效时间、所述问题参数和所述主密钥产生对应电子控制单元的私钥;

所述安全模块利用自身存储的电子控制单元的出厂密钥对与该电子控制单元对应的私钥进行加密,并利用所述安全模块的自身密钥对加密结果和所述问题参数签名后发送给相应的电子控制单元;

相应的电子控制单元利用存储的所述安全模块的公钥验证所述安全模块的签名,如验证成功,则存储所述问题参数,并利用相应的电子控制单元的出厂密钥解密以得到对应的私钥后进行存储。

根据本发明的一个实施例,在所述会话步骤中,进一步包括:

将相互进行通信的多个电子控制单元分为一组;

同一组内的任一电子控制单元根据自身存储的组内所有电子控制单元的身份信息向所述安全模块发送请求,并用自身私钥对所述请求签名后发送给所述安全模块;

所述安全模块对所述请求的签名进行验证,如验证成功,则所述安全模块利用同一组内所有电子控制单元的身份信息、对应电子控制单元的问题参数和所述主密钥产生该组的加密对称会话密钥,并对所述加密会话密钥签名后发送给该组内所有的电子控制单元;

该组内的所有电子控制单元在接收到所述加密会话密钥后,用自身的私钥解密以得到会话密钥,利用所述会话密钥实现组内保密通信。

根据本发明的一个实施例,

所述安全模块将产生的问题参数和主密钥存储在其受保护的内存中;

所述电子控制单元将接收的问题参数和解密得到的对应私钥存储在其受保护的内存中。

根据本发明的一个实施例,所述安全模块和所述电子控制单元将相关的密钥信息、身份信息以及所述安全模块和所述电子控制单元之间通信的加密算法存储在可信平台模块或者基于可信计算的安全芯片中。

根据本发明的一个实施例,在所述预设置步骤中,在向所述安全模块和所述电子控制单元存储相关的密钥信息、身份信息以及所述安全模块和所述电子控制单元之间通信的加密算法之前,还包括:

选取智能汽车内具有较强计算能力和较大存储空间的电子控制单元作为所述安全模块,智能汽车内的其他电子控制单元作为普通的电子控制单元。

根据本发明的一个实施例,所述安全模块选择双线性diffie-hellman求逆困难问题作为身份加密的困难问题。

根据本发明的一个实施例,所述电子控制单元的身份信息包括电子控制单元的硬件序列号或硬件序列号对应的哈希值、硬件编码或硬件编码对应的哈希值。

根据本发明的一个实施例,

所述预设置步骤在智能汽车出厂前完成;

所述初始化步骤在每次智能汽车刚启动时或者设定的特定事件发生时开始执行;

所述会话步骤在智能汽车行驶过程中,当所述电子控制单元需要向智能汽车内部网络发送数据时开始执行。

本发明的有益效果:

本发明提通过使用基于身份加密的技术,将每一个电子控制单元的身份信息(例如电子控制单元的硬件序列号或者其他特殊信息)作为其公钥,使得车内网几乎无需与外部实体交互;通过有效的密钥管理、认证以及会话组密钥分发机制,可以大大降低车内网的网络负担以及电子控制单元的计算量。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要的附图做简单的介绍:

图1是根据本发明的一个实施例的一种智能汽车内部网络的认证加密方法流程图;

图2为根据本发明的一个实施例的安全模块和电子控制单元的系统架构示意图;

图3为根据本发明的一个实施例的预设置步骤流程图;

图4为根据本发明的一个实施例的初始化步骤流程图;

图5为根据本发明的一个实施例的会话步骤流程图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

同时,在以下说明中,出于解释的目的而阐述了许多具体细节,以提供对本发明实施例的彻底理解。然而,对本领域的技术人员来说显而易见的是,本发明可以不用这里的具体细节或者所描述的特定方式来实施。

另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

如图1所示为本发明给出的智能汽车内部网络的认证加密方法流程图。图2为根据本发明的安全模块sm和电子控制单元ecu的系统架构示意图,其中包括一个安全模块sm和多个电子控制单元ecu。为保证安全模块sm和电子控制单元ecu之间的保密通信,图2中采用了canflexibledata-rate(canfd)总线,但本发明并不局限于此种总线。

首先是步骤s110,预设置步骤,即分别向智能汽车内部的安全模块和电子控制单元存储相关的密钥信息、身份信息以及安全模块和电子控制单元之间通信的加密算法。该预设置步骤通常在智能汽车出厂前完成。为了提高sm和ecu存储信息的安全等级,存储信息要用加密模式进行保存,通常需要一个可信平台模块(tpm)或者基于可信计算的安全芯片来存储相关信息,以确保存储信息的安全性。

如图3所示为该步骤s110的具体实现的方法流程图。首先,在步骤s1101中,选取智能汽车内具有较强计算能力和较大存储空间的电子控制单元作为安全模块,智能汽车内的其他电子控制单元作为普通的电子控制单元。优选地,可以从所有的电子控制单元中选取智能汽车内具有最强计算能力和最大存储空间的电子控制单元作为安全模块。当然也可以选取其他电子控制单元,本发明不限于此。

在步骤s1102中,向安全模块中存储该安全模块的自身私钥,以及智能汽车内所有电子控制单元的出厂密钥和身份信息。具体的,sm在出厂生产的过程中存储自己的私钥sksm,用于对它所发送的信息签名。sm还需要存储所有ecu的身份信息。ecu的身份信息包括电子控制单元的硬件序列号或硬件序列号对应的哈希值、硬件编码或硬件编码对应的哈希值,或者能作为身份的其他特征信息。在本发明中,将ecu的硬件序列号idi,i=1,2,3,…作为它的身份信息。此外,sm还存储所有ecu的出厂密钥i=1,2,3,…。出厂密钥都是对称密钥,用于初始化步骤中sm和ecu之间的保密通信。

在步骤s1103中,向智能汽车内的所有电子控制单元中存储自身对应的出厂密钥和身份信息,以及与其通信的电子控制单元的身份信息和安全模块的公钥。具体的,每个ecu需要保存自己的出厂密钥、自己的身份信息(硬件序列号)、在汽车行驶过程中会与它通信的其他ecu的硬件序列号以及sm的公钥pksm,用于验证安全模块的签名。例如,在图2中,ecu-1可能与ecu-2和ecu-3通信,那么ecu-1需要存储ecu-2和ecu-3的身份信息id2和id3。

在步骤s1104中,选择对称加密算法用于安全模块和电子控制单元之间在初始化步骤中的保密通信。具体的,可以选择某种对称加密算法例如aes或者其他标准的对称加密方法,用于之后的初始化步骤中sm与ecu之间的保密通信。

为提高sm和普通ecu中存储信息的安全等级,存储信息要用加密模式进行保存,安全模块和电子控制单元将相关的密钥信息、身份信息以及安全模块和电子控制单元之间通信的加密算法存储在可信平台模块或者基于可信计算的安全芯片中。

接着是步骤s120,初始化步骤,即安全模块利用存储的相关的密钥信息、身份信息以及加密算法产生对应电子控制单元的私钥,对应的电子控制单元利用自身存储的相关的密钥信息、身份信息以及加密算法解密,以得到安全模块产生的对应私钥。

如图4所示为该步骤s120的具体实现的方法流程图。首先,在步骤s1201中,安全模块设定初始化有效时间。初始化步骤用于产生每个ecu的私钥。由于该初始化过程周期重复,故sm首先选择初始化有效时间t。在本实例中,在每次汽车启动的时候sm选择一个初始化阶段的有效时间,例如t=24小时。在每次周期时间过去之后,安全模块需要重新执行初始化步骤来更新每个ecu的私钥。

在步骤s1202中,安全模块选择用于身份加密的困难问题,并根据困难问题产生问题参数和主密钥。具体的,sm选择一种用于身份加密的困难问题,例如基于双线性diffie-hellman求逆困难问题,并根据这个困难问题产生系统的双线性映射的参数和主密钥mk=(g,γ)。其中,均为q阶乘法循环群,是一个双线性映射,m为一个整数代表ecu的数量,w=gγ为一个哈希函数。由于主密钥mk的机密性对于整个系统安全性至关重要,故mk需要保存在sm受保护的内存中。

在步骤s1203中,安全模块根据每个电子控制单元的身份信息、初始化有效时间、问题参数和主密钥产生对应电子控制单元的私钥。具体的,sm根据每个ecu的序列号idi、有效时间t、主密钥mk以及双线性映射的参数params产生对应ecu的私钥

为ecu的私钥,idi为ecu的身份信息,为主密钥的一部分,为上述定义的哈希函数,和t为初始化有效时间。

在步骤s1204中,安全模块利用自身存储的电子控制单元的出厂密钥对与该电子控制单元对应的私钥进行加密,并利用安全模块的自身密钥对加密结果和问题参数签名后发送给相应的电子控制单元。具体的,用对应ecu的出厂密钥对私钥加密,得到并用自己的私钥sksm对加密结果签名得到最后将消息ei=si||ci||params发送给相应的ecu。

在步骤s1205中,相应的电子控制单元利用存储的安全模块的公钥验证安全模块的签名,如验证成功,则存储该问题参数,并利用相应的电子控制单元的出厂密钥解密以得到对应的私钥后进行存储。具体的,当ecu接收到该消息,首先用sm的公钥pksm验证sm的签名:其中,“?”表示进行验证动作,若验证成功,则存储问题参数params,并用自己的出厂密钥解密此密文得到自己的私钥并将该私钥存储在一个受保护的内存中。

最后是步骤s130,会话步骤,即电子控制单元利用对应私钥及自身存储的与其通信的电子控制单元的身份信息,请求安全模块产生会话密钥,安全模块将会话密钥发送给互相通信的一组电子控制单元,以使得同一组内的电子控制单元利用会话密钥实现组内保密通信。

如图5所示为该步骤s130的具体实现的方法流程图。首先,在步骤s1301中,将相互进行通信的多个电子控制单元分为一组。由于车辆运行时,某个ecu需要和其他ecu进行通信。这样,根据它们之间存在的通信联系,可以将它们合并成一组以完成某个功能。例如,图2中的g1组(ecu-1、ecu-2和ecu-3)属于刹车系统,g2组(ecu-4和ecu-5)属于引擎系统等等。每个组里的ecu共享一个共同的会话密钥。有一些ecu可以同时属于多个不同的组,例如图2中ecu-8同时属于g3和g4组。

在步骤s1302中,同一组内的任一电子控制单元根据自身存储的组内所有电子控制单元的身份信息向安全模块发送请求,并用自身私钥对请求签名后发送给安全模块。具体的,如ecu-1需要给ecu-2和ecu-3同时发消息,ecu-1首先需要给sm发送一个请求req=r1||g1,其中g1=id1||id2||id3包含了这三个ecu的身份信息,r1则是ecu-1用id1的私钥对该请求的签名。

在步骤s1303中,安全模块对请求的签名进行验证,如验证成功,则安全模块利用同一组内所有电子控制单元的身份信息、问题参数和主密钥产生该组的加密对称会话密钥,并对加密会话密钥签名后发送给该组内所有的电子控制单元具体的,sm接收到请求req后,首先验证ecu-1的签名:如果成功,sm利用接受组内ecu的身份信息gi、前述困难问题的参数params和主密钥mk产生该组的加密的对称会话密钥hdr=(c1,c2),其中选择随机c1=w-k其中s为组内ecu的数量。并对该加密会话密钥签名然后把hdr和ssi发送给组内所有的ecu,即ecu-1、ecu-2和ecu-3。

在步骤s1304中,该组内的所有电子控制单元在接收到加密会话密钥后,用自身的私钥解密以得到会话密钥,利用该会话密钥实现组内保密通信。具体的,组内所有的ecu,收到此加密会话密钥之后,首先用各自存储的sm公钥验证sm的签名是否正确然后用自己的私钥解密得到会话密钥k:

其中

是一个双线性映射,为ecu的私钥,c1=w-k为上述定义的哈希函数,为主密钥的一部分,t为初始化有效时间,idi为ecu的身份信息和s为组内ecu的数量。

由于产生此会话密钥用了这些ecu的序列号,只有ecu-1、ecu-2和ecu-3能用自己的私钥来解密得到这个会话密钥。这样,同一组内所有的ecu可以应用该会话密钥k实现保密通信。

本发明提通过使用基于身份加密的技术,将每一个ecu的身份信息(例如ecu的硬件序列号或者其他特殊信息)作为其公钥,使得车内网几乎无需与外部实体交互;通过有效的密钥管理、认证以及会话组密钥分发机制,可以大大降低车内网的网络负担以及ecu的计算量。

虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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