背景技术
车内网是实现单车智能网联的基础技术。车内网是指基于成熟的CAN总线技术建立一个标准化整车网络(CAN网络),实现车内各电子控制单元(Electronic Control Unit,简称ECU)间的状态信息和控制信号在车内网上的传输,使车辆能够实现状态感知、故障诊断和智能控制等功能。
车内网的技术核心是CAN总线技术。CAN总线通过遍布车身的传感器,将汽车的各种行驶数据发送到“总线”上,从而使需要这些数据的接收端都可以从“总线”上读取需要的信息,实现汽车发动机、自动变速箱、ABS、安全气囊等单元之间的通讯,做到全车信息及时共享,最终促进车辆安全行驶、舒适和可靠。
目前车内各个ECU之间通过CAN网络实现明文通信,为了提升CAN协议的安全性,在AutoSAR(汽车开放***架构)中补充了全称为Secure Onboard Communication(SecOC)的组件,为传统的CAN总线引入了一套通信认证的方法:发送方将报文的原始数据切片,加上秘钥,加上新鲜值,通过算法生成128bit身份认证信息;然后再将身份认证信息的切片和新鲜值切片,***CAN报文负载的指定字节中;接收方对应的进行逆过程处理,校验失败就扔掉信息。在得到SecOC加持后,CAN网络之间的通信就具有了通信认证。新鲜值可以由时间戳校验和帧计数器校验两种模式生成。
但是,新鲜值的获得是按照一定逻辑获得的数字,因此,黑客可以通过分析截获的信息获得下次通信时的新鲜值,从而可以伪造信息发送给车内的ECU,实现对车辆的控制,进而对行驶安全产生较大的安全隐患。
经检索,中国专利公开号为CN107547572A公开了一种基于伪随机数的CAN总线通信方法:CAN报文发送端用于生成随机种子;根据随机种子利用第一随机函数生成第一随机数;将随机种子及第一随机数存入CAN报文中以更新CAN报文,将更新后的CAN报文发送至CAN报文接收端。CAN报文接收端用于接收CAN报文发送端发送的CAN报文;解析CAN报文得到随机种子及第一随机数,根据随机种子利用第一随机函数生成第一随机数;判断生成的第一随机数与解析得到的第一随机数是否相同,如果相同,则响应CAN报文。该专利通过在CAN报文的末尾增加验证即存入随机种子及第一随机数,接收端通过对比,以判断发送端的信息是否合法。但是该专利仍存在以下缺点:
1、只能够防范伪造攻击,报文的内容仍是明文,通过OBD接口,第三方仍然可以获得报文内容,
2、实际的CAN网络中,报文的字节有严格限制,在不占用报文字节的情况下,消息加密力度弱;
3、使用的随机数为伪随机数,并且随机种子与随机数以完整形式存在消息中。随机种子与随机数存在函数关系,通过OBD接口大量分析映射关系,存在函数关系破解可能;
4、CAN网络中存在不同速度的CAN总线,不同速度的CAN总线需经过智能网关才能进行通讯,因此未考虑到不同速度CAN总线通讯情况下对智能网关的防护;
5、通过叠加函数与随机数来增加破解难度,但未考虑消息加解密时间对CAN网络及时性的要求。
发明内容
为了克服上述现有技术中的缺陷,本发明提供一种基于量子随机数发生器的车内网安全通信方法,提高车内网中信息通讯的安全性,既能够防范黑客重放通讯信息的攻击,也能够防范黑客获取通讯信息中PDU报文。
为实现上述目的,本发明采用以下技术方案,包括:
一种基于量子随机数发生器的车内网安全通信方法,包括以下步骤:
S1,在车辆上设置随机数发生器,所述随机数发生器用于产生随机数,并将所产生的随机数存储于车辆上的智能网关的寄存器中;
S2,智能网关获取密钥并存储于寄存器中;
S3,ECU1将通讯请求发送给智能网关,智能网关接收到通讯请求后,授予ECU1读取智能网关的寄存器中的随机数和密钥的权限;
所述通讯请求中包括发送方即ECU1的身份信息以及接收方即ECU2的身份信息;
S4,ECU1获得权限读取寄存器中的随机数和密钥后,利用所读取的随机数和密钥进行如下操作:
S41,ECU1将随机数添加至PDU报文中,并使用密钥对添加有随机数的PDU报文进行加密,生成MAC信息;
S42,ECU1利用密钥对PDU报文进行加密,生成PDU密文;
S43,ECU1分别对MAC信息和随机数进行切片处理,生成MAC摘要和随机数摘要;
S44,ECU对所生成的PDU密文、MAC摘要和随机数摘要进行整合,得到“PDU密文|MAC摘要|随机数摘要”的通讯信息,并将“PDU密文|MAC摘要|随机数摘要”的通讯信息发送给智能网关;
S5,智能网关接收到ECU1所发送的“PDU密文|MAC摘要|随机数摘要”的通讯信息后,截取出通讯信息中的随机数摘要,并利用寄存器中的随机数对通讯信息中的随机数摘要进行校验,若校验成功,则智能网关根据接收方即ECU2的身份信息,将所接收的“PDU密文|MAC摘要|随机数摘要”的通讯信息转发给对应的接收方即ECU2,并授予ECU2读取智能网关的寄存器中的随机数和密钥的权限;若校验不成功,则判定该通讯信息为第三方即伪发送方所发送,且智能网关不转发信息;
S6,ECU2获取权限后读取寄存器中的随机数和密钥,并接收到智能网关所发送的“PDU密文|MAC摘要|随机数摘要”的通讯信息后,截取出通讯信息中的PDU密文、MAC摘要与随机数摘要,通过所读取的随机数和密钥对所接收的通讯信息进行验证,验证方式如下所示:
S61,ECU2对所读取的随机数进行切片处理得到随机数摘要,ECU2将切片处理得到的该随机数摘要与通讯信息中的随机数摘要进行对比,若一致,则进入步骤S62,否则,判定该通讯信息为第三方即伪发送方所发送;
S62,ECU2先利用所读取的密钥对通讯信息中的PDU密文进行解密,得到解密PDU报文;ECU2再将所读取的随机数添加至该解密PDU报文中,并使用所读取的密钥对添加有随机数的该解密PDU报文进行加密,生成MAC信息;
S63,ECU2对步骤S62所生成的MAC信息进行切片处理,生成MAC摘要;
S64,ECU2将步骤S63所生成的MAC摘要与通讯信息中的MAC摘要进行对比,若一致,则判定该“PDU密文|MAC摘要|随机数摘要”的通讯信息为真接收方即ECU1所发送;否则,判定该通讯信息为第三方即伪发送方所发送。
优选的,步骤S6中,ECU2获取权限读取寄存器中的随机数和密钥后,智能网关即对寄存器中的随机数和密钥进行销毁。
优选的,步骤S5中,智能网关先判断是否使用过寄存器中的随机数进行校验,若智能网关已经使用过寄存器中的随机数进行校验,则智能网关不再对通讯信息中的随机数摘要进行校验,且判定该通讯信息为第三方即伪发送方所发送,且智能网关不转发信息;若智能网关未使用寄存器中的随机数进行校验,则利用寄存器中的随机数对通讯信息中的随机数摘要进行校验。
优选的,步骤S5中,利用寄存器中的随机数对通讯信息中的随机数摘要进行校验,具体方式如下所示:
智能网关根据ECU1对随机数切片处理的特点,读取随机数中特定字节位置上的内容,将特定字节位置上的内容与通讯信息中随机数摘要的内容进行对比,若均相同,则表示对通讯信息中的随机数摘要校验成功,否则表示检验不成功。
优选的,步骤S42中,ECU1利用密钥对PDU报文进行对称加密;步骤S62中,ECU2利用密钥对通讯信息中的PDU密文进行对称解密。
优选的,步骤S43中ECU1对MAC信息的切片处理方式与步骤S63中ECU2对MAC信息的切片处理方式一致;步骤S43中ECU1对随机数的切片处理方式与步骤S61中ECU2对随机数的切片处理方式一致。
优选的,步骤S41,ECU1将随机数添加至PDU报文的末尾;步骤S62中,ECU2将随机数添加至解密PDU报文的末尾。
优选的,步骤S1中,所述随机数发生器为量子随机数发生器,用于产生真随机数。
优选的,步骤S1中,所述智能网关与云端通信,从云端获取量子密钥。
本发明的优点在于:
(1)针对目前CAN网络通迅信息承载字节有限,报文未加密,通迅信息未认证,认证力度弱等缺点,通过在车端加装随机数发生器,赋予智能网关对消息安全性与保密性检查的能力实现对报文的加密与通迅信息的多次认证,实现了CAN网络中通讯信息传输全过程的安全,在保证CAN网络承载能力的前提下,提高车内网中信息通讯的安全性。
(2)针对现有技术中SecOC组件对车内CAN网络认证力度弱,黑客已破解的难题,本发明通过在车端加装随机数发生器,用于CAN网络之间的信息通讯,同时针对使用的私钥易破解的难题,使用基于量子密钥,实现对CAN网络的认证与加密,在保证车辆CAN网络带宽的前提下,从而提高车内网通讯信息的安全性。
(3)本发明中对MAC信息与随机数进行切片处理,切片处理目的在于减少验证消息即MAC摘要和随机数摘要对PDU报文的字节占用,每条PDU报文所承载的字节有严格限制,若验证消息过多占用字节,就会减少通讯信息中有效消息的字节数;切片处理目的还在于对随机数和MAC信息的完整性进行破坏,另外,MAC信息与MAC摘要,以及随机数与随机数摘要之间均存在单向性,即通过MAC信息可以获得唯一的MAC摘要,但是通过MAC摘要无法获得MAC信息,以及通过随机数可以获得唯一的随机数摘要,但是通过随机数摘要无法获得随机数,从而保证通讯链路中所有信息均为密文。
(4)虽然本发明形式上也是在报文中添加验证消息,但是验证流程却不相同,第三方无法通过截取通讯信息进行破解,随机数发生器产生真随机数并对报文进行对称加密,并对智能网关提供支持,赋予智能网关对通讯信息的保密性和安全性做出一级验证,通过对通讯信息中的随机数摘要进行校验,以判断此条通讯消息是否为真发送方所发送,若随机数摘要检验不成功,智能网关就会对停止转发该通讯消息,可以有效防护重放攻击,同时避免了通道的占用,保证了第三方即伪发送方的伪通讯消息不会转发给接收方。智能网关对通讯信息中随机数摘要的校验保证了ECU1与智能网关之间通讯链路的安全。
(5)本发明ECU2对通信信息的二级验证,且ECU2对通讯信息中的随机数摘要的校验为二级验证中的第一层验证,ECU2对通讯信息中的MAC摘要的校验为二级验证中的第二层验证,两层验证的对比结果均一致,才判断此通讯信息在传输过程中没有第三方伪造。其中,ECU2对通讯信息中的随机数摘要的校验与智能网关对通讯信息中的随机数摘要的校验并不相同,智能网关的校验是为了保证ECU1与智能网关之间通讯链路的安全,ECU2的校验是为了保证智能网关与ECU2之间通讯链路的安全。
(6)本发明在车端设置量子随机数发生器,用于产生真随机数,现有技术中使用的随机数为伪随机数,并且随机种子与随机数以完整形式存在消息中。随机种子与随机数存在函数关系,通过OBD接口大量分析映射关系,存在函数关系破解可能。然而量子随机数发生器通过物理方式产生真随机数,该真随机数是无法提前获知的。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由图1和图2所示,一种基于量子随机数发生器的车内网安全通信方法,包括以下步骤:
S1,在车辆上设置量子随机数发生器,所述量子随机数发生器用于产生真随机数,并将所产生的真随机数发送给车辆上的智能网关,并存储于智能网关的寄存器中。
量子随机数发生器为现有技术,由图3所示,量子随机数发生器产生随机数的过程包括随机源选择、数字化采样、数据后处理、随机性检验四个步骤。基于不同的随机源,需采取不同的随机数产生方案,本实施例选择一个物理***作为随机源,经过测量装置后得到测量结果;该测量结果经过数字化采样转换成二进制随机比特串,作为原始随机数;由于原始随机序列中可能含有一些经典噪声,其统计分布仍然存在一些偏差,因此原始随机序列还需要经过随机性后处理即数据后处理,进一步转为一个更小的、更理想的无偏差随机序列;最后为了检验所生成随机数的质量,通常采用标准的随机性检测软件包对生成随机数进行随机性检验。
本发明在量子随机数发生器设置于车端,用于产生真随机数,现有技术中使用的随机数为伪随机数,并且随机种子与随机数以完整形式存在消息中。随机种子与随机数存在函数关系,通过OBD接口大量分析映射关系,存在函数关系破解可能。然而量子随机数发生器基于物理现象得到真随机数,该真随机数是无法提前获知的。
S2,智能网关与云端通信,从云端获取量子密钥并将所获取的量子密钥储存在智能网关的寄存器中。
S3,车内的ECU1需要对ECU2进行通讯时,将通讯请求发送给智能网关,智能网关接收到通讯请求后,授予ECU1读取智能网关的寄存器中随机数和密钥的权限。
当ECU1需要进行通讯时,ECU1向智能网关发送通讯请求,通讯请求中包含包括发送方即ECU1的身份信息以及接收方即ECU2的身份信息。通过通讯请求中的身份信息,智能网关就可以获得接收方的身份信息,为后续智能网关的通讯信息转发做准备。智能网关收到通讯请求后,授予ECU1读取寄存器中随机数与密钥的权限,并将通讯请求与授予权限读取的随机数与密钥进行绑定。
S4,ECU1获得权限后读取寄存器中的随机数和密钥,并利用所读取的随机数和密钥进行如下操作:
S41,ECU1将随机数添加至PDU报文中,并使用密钥对添加有随机数的PDU报文进行加密,生成MAC信息;
由图4所示,本实施例中,ECU1在PDU报文的末尾添加随机数,并使用密钥对加入随机数的PDU报文进行对称加密,生成MAC信息。
S42,ECU1利用密钥对PDU报文进行对称加密,生成PDU密文;
S43,ECU1分别对MAC信息和随机数进行切片处理,生成MAC摘要和随机数摘要;
本实施例中,ECU1对MAC信息和随机数进行切片处理如图5所示,可使用哈希算法或者国家商业算法sm2,分别获得MAC摘要与随机数摘要。
S44,ECU对所生成的PDU密文、MAC摘要和随机数摘要进行整合,得到“PDU密文|MAC摘要|随机数摘要”的通讯信息,并将“PDU密文|MAC摘要|随机数摘要”的通讯信息通过CAN网络发送给智能网关;
本发明中对MAC信息与随机数进行切片处理,切片处理目的在于减少验证消息即MAC摘要和随机数摘要对PDU报文的字节占用,每条PDU报文所承载的字节有严格限制,若验证消息过多占用字节,就会减少通讯信息中有效消息的字节数;切片处理目的还在于对随机数和MAC信息的的完整性进行破坏。另外,MAC信息与MAC摘要,以及随机数与随机数摘要之间均存在单向性,即通过MAC信息可以获得唯一的MAC摘要,但是通过MAC摘要无法获得MAC信息,以及通过随机数可以获得唯一的随机数摘要,但是通过随机数摘要无法获得随机数,从而保证通讯链路中所有信息均为密文。
本实施例的每条通讯消息中只有八个字节,即原来八个字节全部用于表示PDU报文,现在八个字节用于表示PDU密文|随机数摘要|MAC摘要,因此减少MAC摘要和随机数摘要的字节。
S5,智能网关接收到ECU1所发送的“PDU密文|MAC摘要|随机数摘要”的通讯信息后,截取出通讯信息中的随机数摘要,智能网关先判断是否使用过寄存器中的随机数进行校验,若已经使用过寄存器中的随机数进行校验,则智能网关不再对通讯信息中的随机数摘要进行校验,且判定该通讯信息为第三方即伪发送方所发送,且智能网关不转发信息;若未使用寄存器中的随机数进行校验,则利用寄存器中的随机数对通讯信息中的随机数摘要进行校验,若校验成功,则智能网关根据接收方即ECU2的身份信息,将所接收的“PDU密文|MAC摘要|随机数摘要”的通讯信息转发给对应的接收方即ECU2,并授予ECU2读取智能网关的寄存器中随机数和密钥的权限;若校验不成功,则判定该通讯信息为第三方即伪发送方所发送,且智能网关不转发信息。
本实施例中,智能网关根据ECU1对随机数切片处理的特点,读取随机数中特定字节位置上的内容,将特定字节位置上的内容与通讯信息中随机数摘要的内容进行对比,若均相同,则表示对通讯信息中的随机数摘要校验成功,否则表示检验不成功。
本发明中,智能网关实现了对此通讯信息的一级认证,通过对通讯信息中的随机数摘要进行校验,以判断此条通讯消息是否为真发送方即ECU1所发送,若随机数摘要检验不成功,智能网关就会对停止转发该通讯消息,可以有效防护重放攻击,同时避免了通道的占用,保证了第三方即伪发送方的伪通讯消息不会转发给ECU2。智能网关对通讯信息中随机数摘要的校验保证了ECU1与智能网关之间通讯链路的安全。
S6,ECU2获取权限后读取寄存器中的随机数和密钥,并接收到智能网关所发送的“PDU密文|MAC摘要|随机数摘要”的通讯信息后,截取出通讯信息中的PDU密文、MAC摘要与随机数摘要;ECU2获取权限读取寄存器中的随机数和密钥后,智能网关即对寄存器中的随机数和密钥进行销毁;ECU2通过所读取的随机数和密钥对所接收的通讯信息进行验证,验证方式如下所示:
S61,ECU2对所读取的随机数进行切片处理得到随机数摘要,ECU2将切片处理得到的该随机数摘要与通讯信息中的随机数摘要进行对比,若一致,则进入步骤S62,否则,判定该通讯信息为第三方即伪发送方所发送;
其中,步骤S61中ECU2对随机数的切片处理方式一致与步骤S43中ECU1对随机数的切片处理方式一致;
S62,ECU2先利用所读取的密钥对通讯信息中的PDU密文进行解密,得到解密PDU报文;ECU2再将所读取的随机数添加至该解密PDU报文中,并使用所读取的密钥对添加有随机数的该解密PDU报文进行加密,生成MAC信息;
其中,ECU2利用密钥对通讯信息中的PDU密文进行对称解密,得到解密PDU报文;ECU2将所读取的随机数添加至该解密PDU报文的末尾;
S63,ECU2对步骤S62所生成的MAC信息进行切片处理,生成MAC摘要;
其中,步骤S63中ECU2对MAC信息的切片处理方式与步骤S43中ECU1对MAC信息的切片处理方式一致;
S64,ECU2将步骤S63所生成的MAC摘要与通讯信息中的MAC摘要进行对比,若一致,则判定该“PDU密文|MAC摘要|随机数摘要”的通讯信息为真接收方即ECU1所发送;否则,判定该通讯信息为第三方即伪发送方所发送。
本发明中,步骤S61中ECU2对通讯信息中的随机数摘要的校验与步骤S5中智能网关对通讯信息中的随机数摘要的校验并不相同,步骤S5中智能网关的校验是为了保证ECU1与智能网关之间通讯链路的安全,步骤S61中ECU2的校验是为了保证智能网关与ECU2之间通讯链路的安全。
本发明的整个步骤S6为ECU2对通信信息的二级验证,且步骤S61为ECU2对通讯信息二级验证中的第一层验证,步骤S62~S64为ECU2对通讯信息二级验证中的第二层验证,两层验证的对比结果均一致,则判断此通讯信息在传输过程中没有第三方伪造。
本发明在传输链路中,通讯信息中的内容全部为密文,保证了通讯信息不可被第三方获取。
本实施例中,在以下五个场景下的分析了本发明的车内网安全通信方法的有效性:
场景一、黑客入侵CAN网络,截获ECU1发送给智能网关的通讯信息,并对通讯信息重放,将通讯信息重复发送给智能网关;
由于CAN总线中每次只有一条通迅信息在传输,只有一条通迅信息传输完成后才会进行下一条通迅信息的发送,因此黑客能截获ECU1发送给智能网关的完整通讯信息的时间一定处于ECU1把通讯信息发送给智能网关之后,即黑客进行重放攻击一定处于智能网关收到通讯信息之后,智能网关率先收到通讯信息,对此通讯信息中的随机数摘要进行校验,检验成功后,智能网关需要将所接收的的通讯信息转发给ECU2,并需要授予ECU2读取随机数和密钥的权限;
若在ECU2读取随机数和密钥后,即随机数和密钥被销毁后,此时黑客将通讯信息重复发送给智能网关,由于随机数被销毁,因此智能网关无法再对黑客重复发送的通讯信息中的随机数摘要进行校验,智能网关也不会转发黑客重复发送的该通讯信息给ECU2;
若在ECU2读取随机数和密钥之前,即随机数和密钥被销毁前,此时黑客将通讯信息重复发送给智能网关,但由于智能网关已经使用过一次随机数对ECU1发送的通讯信息进行校验了,因此智能网关无法再使用随机数对黑客重复发送的通讯信息中的随机数摘要进行校验,智能网关也不会转发黑客重复发送的该通讯信息给ECU2。
场景二、黑客入侵CAN网络,截获智能网关发送给ECU2的通讯信息,并对通讯信息重放,将通讯信息重复发送给ECU2;
由于CAN总线中每次只有一条通迅信息在传输,只有一条通迅信息传输完成后才会进行下一条通迅信息的发送,因此黑客能截获智能网关发送给ECU2的完整通讯信息的时间一定处于智能网关已经把通讯信息发送给给ECU2之后,即黑客进行重放攻击一定处于ECU2收到通讯信息之后,ECU2率先收到通讯信息,且智能网关能够授予ECU2读取随机数和密钥的权限,ECU2收到通讯信息并读取读取随机数和密钥后执行相应操作完成通讯信息的验证,且此条所通讯信息使用的随机数与密钥已经销毁;
黑客在上述过程中截取了智能网关发送给ECU2的通讯信息,并对此通讯信息重放重复发送给ECU2,但是ECU2由于无法获取智能网关授予读取随机数和密钥的权限,因此ECU2在收到黑客重复发送的通讯信息后,无法生成随机数摘要,更无法与通讯消息中的随机数摘要进行比较,在步骤S61中即被判定为该通讯信息为第三方即伪发送方所发送。
场景三、黑客入侵CAN网络,截获ECU1发送给智能网关的通讯信息,并对通讯信息重放,将通讯信息重复发送给ECU2;
由于CAN总线的通讯机制,此时ECU1与ECU2一定不处于同一条CAN总线上,当智能网关对ECU1发送的通迅息中的随机数摘要进行校验时,ECU2已经收到黑客重复发送的通讯信息,但ECU2还未收到智能网关授予读取随机数与密钥的权限,因此无法对黑客重复发送的通讯信息进行验证,黑客的重放攻击无效。
场景四、黑客入侵CAN网络,截获了ECU1发送给之智能网关的通讯消息,对通讯消息重放并对通讯消息中的随机数摘要进行了更改,将更改后通讯信息发送给智能网关。
黑客将更改后通讯信息发送给智能网关,智能网关收到更改后通讯信息,对更改后通讯信息中的随机数摘要进行校验,检验发现此条通讯信息中的随机数摘要与真随机数并不对应,即在步骤S5中判定该通讯信息为第三方即伪发送方所发送,因此智能网关不对此条通讯信息进行转发,进而不会产生任何安全问题。
场景五、黑客入侵了CAN网络,并截获了通讯信息;
通信链路中通讯信息的内容格式为“PDU密文|随机数摘要|MAC摘要”,通讯信息中,PDU报文内容经过量子密钥进行加密,随机数内容经过切片处理,随机数摘要也是不完整的内容,因此无法补全随机数,MAC摘要的内容为消息体的明文拼接随机数后进行加密,并经过切片处理,因此也是不完整的内容。因此无法通过通讯信息的内容分析出函数关系,因此无法破解PDU报文。
其中,场景一至场景四为黑客验证了本发明能够防范黑客重放通讯信息对CAN网络的攻击;场景五验证了本发明能够防范黑客获取通讯信息中PDU报文;
以上仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明创造的保护范围之内。