一种通信方法、装置、设备及存储介质与流程

文档序号:22750637发布日期:2020-10-31 09:44阅读:88来源:国知局
一种通信方法、装置、设备及存储介质与流程

本发明属于信息处理领域,尤其涉及一种通信方法、装置、设备及存储介质。



背景技术:

目前,控制器局域网络总线是国际上应用最广泛的现场总线之一,具备实时性强、抗电磁干扰能力强、检错能力强、成本低等优点,是车载电子控制单元之间通信的主流方案。

但控制器局域网络(controllerareanetwork,can)总线也有其自身的缺点——“数据明文传输”,这在智能联网汽车时代会带来致命后果,例如:电控单元固件被破解、车辆被非法升级改装、汽车被黑客恶意攻击等。



技术实现要素:

本发明实施例提供一种通信方法、装置、设备及存储介质,能够解决目前基于车载网络进行的数据传输不安全的问题。

第一方面,本发明实施例提供一种通信方法,应用于第一电子控制单元ecu,方法包括:根据第一数量的随机数中的第一随机数和根密钥确定第一密钥,其中,随机数和根密钥是从控制器局域网络can网关获取的;根据第一密钥对应用报文进行加密,得到加密应用报文;向第二ecu发送加密应用报文,以用于第二ecu根据第二密钥对加密应用报文进行解密,得到应用报文,第二密钥为第二ecu根据接受到的由can网关发送的第一随机数和根密钥确定。

在一种可能的实现中,在向第二ecu发送加密应用报文之前,方法还包括:接收can网关发送的认证报文,认证报文包括第一数量的随机数和认证码;根据认证码验证can网关的身份;在can网关身份验证通过的情况下,基于预设认证算法对第一随机数进行计算,确定响应码;根据响应码和扰码生成响应报文;向can网关发送响应报文,以用于can网关根据响应报文中的响应码验证第一ecu的身份。

在一种可能的实现中,根据认证码验证can网关的身份,包括:根据第一随机数和根密钥计算目标认证码;在认证码与目标认证码一致的情况下,确定can网关身份验证通过。

在一种可能的实现中,加密应用报文包括第一标识信息和验证码,第一标识信息用于标识加密应用报文的发送次序,验证码根据应用报文确定。

在一种可能的实现中,第一ecu和第二ecu不属于同一can网段的ecu,向第二ecu发送加密应用报文,包括:将加密应用报文发送给can网关,以用于can网关将加密应用报文转发至第二ecu。

在一种可能的实现中,第一ecu和第二ecu不属于同一can网段的ecu,向第二ecu发送加密应用报文,包括:将加密应用报文发送给can网关,以用于can网关根据第二标识信息对加密应用报文进行拆分重组,得到包括第二标识信息的多个子加密应用报文,并根据第二标识信息将多个子加密应用报文转发至多个第二ecu,加密应用报文包括多个第二标识信息,第二标识信息用于标识第二ecu的身份信息。

第二方面,本发明实施例提供一种通信方法,应用于第二ecu,方法包括:接收第一ecu发送的加密应用报文;根据第二密钥对加密应用报文进行解密,得到应用报文;其中,第二密钥由can网关发送的第一数量的随机数中的第一随机数和根密钥确定。

在一种可能的实现中,在根据第二密钥对加密应用报文解密失败的情况下,方法还包括:根据第一数量的随机数中的第二随机数确定第三密钥,第二随机数与第一随机数的生成时间相隔第一时间周期;根据第三密钥对加密应用报文进行解密。

在一种可能的实现中,在根据第二密钥对加密应用报文进行解密,得到应用报文之后,方法还包括:获取应用报文中的第一标识信息;在第一标识信息与目标第一标识信息不一致的情况下,发送第一报警信息,目标第一标识信息根据应用报文的发送次序确定。

在一种可能的实现中,在根据第二密钥对加密应用报文进行解密,得到应用报文之后,方法还包括:获取应用报文中的验证码;根据应用报文计算目标验证码;在验证码与目标验证码不一致的情况下,发送第二报警信息。

第三方面,本发明实施例提供一种通信方法,应用于can网关,方法包括:每隔第二时间周期生成认证报文,认证报文包括第一数量的随机数和认证码;向第一ecu发送认证报文,以用于第一ecu根据认证码验证can网关的身份;接收第一ecu发送的响应报文,响应报文包括响应码;根据响应码验证第一ecu的身份。

在一种可能的实现中,每隔第二时间周期生成认证报文,包括:每隔第一时间周期生成第一数量的随机数;根据第一数量的随机数中的第一随机数和can网关的根密钥确定认证码;每隔第二时间周期根据第一数量的随机数和认证码生成认证报文,第二时间周期大于第一时间周期。

在一种可能的实现中,根据响应码验证第一ecu的身份,包括:根据第一随机数计算目标响应码;在响应码与目标响应码一致的情况下,确定第一ecu身份认证通过。

第四方面,本发明实施例提供了一种第一ecu,包括:

确定模块,用于根据第一数量的随机数中的第一随机数和根密钥确定第一密钥,其中,随机数和根密钥是从控制器局域网络can网关获取的;加密模块,用于根据第一密钥对应用报文进行加密,得到加密应用报文;第一发送模块,用于向第二ecu发送加密应用报文,以用于第二ecu根据第二密钥对加密应用报文进行解密,得到应用报文,第二密钥为第二ecu根据接受到的由can网关发送的第一随机数和根密钥确定。

第五方面,本发明实施例提供了一种第二ecu,包括:

第一接收模块,用于接收第一ecu发送的加密应用报文;解密模块,用于根据第二密钥对加密应用报文进行解密,得到应用报文;其中,第二密钥由can网关发送的第一数量的随机数中的第一随机数和根密钥确定。

第六方面,本发明实施例提供了一种can网关,包括:

生成模块,用于每隔第二时间周期生成认证报文,认证报文包括第一数量的随机数和认证码;第二发送模块,用于向第一ecu发送认证报文,以用于第一ecu根据认证码验证can网关的身份;第二接收模块,用于接收第一ecu发送的响应报文,响应报文包括响应码;验证模块,用于根据响应码验证第一ecu的身份。

第七方面,本发明实施例提供了一种计算设备,设备包括:处理器以及存储有计算机程序指令的存储器;处理器执行计算机程序指令时实现第一方面或者第一方面任一可能实现的计算方法,或者处理器执行计算机程序指令时实现第二方面或者第二方面任一可能实现的计算方法,或者处理器执行计算机程序指令时实现第三方面或者第三方面任一可能实现的计算方法。

第八方面,本发明实施例提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面或者第一方面任一可能实现的处理方法,或者计算机程序指令被处理器执行时实现如第二方面或者第二方面任一可能实现的处理方法,或者计算机程序指令被处理器执行时实现如第三方面或者第三方面任一可能实现的处理方法。

本发明实施例的通信方法、装置、设备及计算机存储介质,通过根据从can网关获取的第一随机数和根密钥确定第一密钥,向第二ecu发送根据第一密钥对待发送的应用报文进行加密得到的加密应用报文,以用于第二ecu根据接受到的由can网关发送的第一随机数和根密钥确定的第二密钥对加密应用报文进行解密,得到应用报文,保证通信过程的安全性和合法性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种通信方法流程示意图;

图2是本发明实施例提供的一种认证报文示意图;

图3是本发明实施例提供的一种响应报文示意图;

图4是本发明实施例提供的一种应用报文示意图;

图5是本发明实施例提供的一种装置的结构示意图;

图6是本发明实施例提供的另一种装置的结构示意图;

图7是本发明实施例提供的又一种装置的结构示意图;

图8是本发明实施例提供的示例性硬件架构的示意图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

目前,can总线是国际上应用最广泛的现场总线之一,具备实时性强、抗电磁干扰能力强、检错能力强、成本低等优点,是车载电子控制单元(electroniccontrolunit,ecu)之间通信的主流方案。但can总线也有其自身的缺点——“数据明文传输”,这在智能联网汽车时代会带来致命后果,例如:电子电气架构(electrical/electronicarchitecture,eea)被逆向、ecu被破解、车辆被非法升级改装、汽车被黑客恶意攻击等。

为了更好的阐述本申请的技术方案,下面对本申请涉及到的技术用语进行简要解释。

can,是国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。can是基于适应“减少线束的数量”、“通过多个lan,进行大量数据的高速通信”的需要,开发出的面向汽车的can通信协议。

ecu,又称“行车电脑”、“车载电脑”等。它和普通的电脑一样,由微处理器、存储器、输入/输出接口、模数转换器以及整形、驱动等大规模集成电路组成。用一句简单的话来形容就是“ecu就是车的大脑”。

eea,集合了汽车的电子电气系统原理设计、中央电器盒的设计、连接器的设计、电子电气分配系统等设计为一体的整车电子电气解决方案的概念。通过eea的设计,可将动力总成、驱动信息、娱乐信息等车身信息转化为实际的电源分配的物理布局、信号网络、数据网络、诊断、容错、能量管理等的电子电气解决方案。

在今天的车载网络中,大部分数据传输是在没有任何特殊安全措施的情况下进行的。因此,一旦能够直接访问车辆的总线,读取总线上传输的原始数据可能会被其他用户(如:黑客)读取,甚至可以截获这些数据并且修改后重新发送到总线系统中。

如今的车辆是高度复杂的系统,由诸多传感器和执行器组成,并通过总线系统不断交换数据。在绝大多数情况下,控制器以原始数据的形式传输数据。即使接收节点能对数据进行合理性检查,这些措施对数据可靠性的提升也是有限的。接收节点无法验证数据来自于期望的发送节点还是其他节点,即无法验证数据是否真实。同时,总线上传输的数据也是可以自由访问的,因此可以通过分析总线上传输的原始数据来反推得到其表示的内容。这样的数据传输既不进行保密也不进行认证。

因此,加密通信受到了越来越多的关注。为了响应汽车行业对数据加密和验证的需求,使得加密传输的数据只能由授权接收方接收,而且减低报文被拦截或修改的恶劣影响。本申请实施例提供了一种通信方法,通过根据从can网关获取的第一随机数和根密钥确定第一密钥,向第二ecu发送利用第一密钥加密后的加密应用报文,以用于第二ecu根据接受到的由can网关发送的第一随机数和根密钥确定的第二密钥对加密应用报文进行解密,得到应用报文,能够保证通信过程的安全性和合法性。下面对本发明实施例所提供的通信方法进行详细描述。

图1所示为本发明实施例的一种通信方法流程示意图,所示方法包括:

s110,can网关每隔第二时间周期生成认证报文,认证报文包括第一数量的随机数和认证码。

s120,can网关向第一ecu发送认证报文,认证报文包括第一数量的随机数和认证码。

s130,第一ecu根据认证码验证can网关的身份。

s140,第一ecu发送响应报文,响应报文包括响应码。

s150,can网关根据响应码验证第一ecu的身份。

s160,第一ecu根据第一数量的随机数中的第一随机数和根密钥确定第一密钥。

s170,第一ecu根据第一密钥对应用报文进行加密,得到加密应用报文。

s180,第一ecu向第二ecu发送加密应用报文。

s190,第二ecu根据第二密钥对加密应用报文进行解密,得到应用报文,其中,第二密钥由can网关发送的第一数量的随机数中的第一随机数和根密钥确定。

需要说明的是,第一ecu和第二ecu均为can网络下的ecu节点,两者功能相同,即第一ecu可以发送加密应用报文和接收加密应用报文;第二ecu也可以发送加密应用报文和接收加密应用报文。

下面对上述涉及到的s110-s190分别进行介绍。

首先,介绍s110,can网关每隔第二时间周期生成认证报文,认证报文包括第一数量的随机数和认证码。

其中,上述涉及到的认证报文的数据结构可以如图2所示,认证报文包括:id、控制场、macvalue(即认证码),以及随机数(随机数α、随机数β、随机数γ)。如图2所示,macvalue(即认证码)占据认证报文的第一字节和第二字节(即data0-data1),随机数(随机数α、随机数β、随机数γ)占据认证报文的第三字节至第八字节(即data2-data7),共6个字节。

其中,上述涉及到的认证码可以根据第一随机数和根密钥计算得到。这里的根密钥随着会话模式而改变,比如在ota刷新模式下的根密钥是ka、在工厂工作模式下的根密钥是kb,在出厂工作模式下是kc等。can网关、第一ecu和第二ecu处存储的根密钥都是一致的。

其次,介绍s120,can网关向第一ecu发送认证报文,认证报文包括第一数量的随机数和认证码。

can网关向第一ecu发送认证报文,是为了第一ecu根据认证码验证can网关的身份。

在本申请一些实施例中,can网关每隔第一时间周期生成第一数量的随机数;根据第一数量的随机数中的第一随机数和can网关的根密钥确定认证码;每隔第二时间周期根据第一数量的随机数和认证码生成认证报文,第二时间周期大于第一时间周期。

can网关生成随机数的第二时间周期大于生成认证报文的第一时间周期,即随机数的更新要慢于认证报文,即可能出现can网关向第一ecu发送了连续的多个认证报文,认证报文中的随机数还是一样的情况。这里,可以缓解通信压力,而且可以避免由于第一ecu接收认证报文不及时,延误认证的问题。

需要说明的是,上述涉及的第一ecu包括can网络中包括的所有ecu。

接着,介绍s130,第一ecu根据认证码验证can网关的身份。

具体地,第一ecu接收can网关发送的认证报文,认证报文包括第一数量的随机数和认证码,根据认证码验证can网关的身份。

其中,上述涉及到根据认证码验证can网关的身份的步骤中,具体可以包括以下步骤:根据第一随机数和根密钥计算目标认证码;在认证码与目标认证码一致的情况下,确定can网关身份验证通过。

例如:第一ecu接收的can网关发送的认证报文中的认证码为mac1,第一ecu根据认证报文中的第一随机数和根密钥计算目标认证码mac2,比较认证码mac1与目标认证码mac2一致是否一致,在认证码与目标认证码一致的情况下,确定can网关身份验证通过。

这里,由于在正常情况下(can网关的发送者身份安全合法),第一ecu和can网关的根密钥是一致的,而且can认证报文中的认证码是根据第一随机数和根密钥计算出的,那么第一ecu根据认证报文中的第一随机数和根密钥计算出的目标认证码也应该与can认证报文中的认证码一致。

接着,介绍s140,can网关接收第一ecu发送的响应报文,响应报文包括响应码。

在can网关身份验证通过的情况下,第一ecu基于预设认证算法对第一随机数进行计算,确定响应码,并随机生成扰码,然后根据响应码和扰码生成响应报文,向can网关发送响应报文,以用于can网关根据响应报文中的响应码来验证第一ecu的身份。

其中,上述涉及到的认证报文的数据结构可以如图3所示,认证报文包括:id、控制场、扰码以及响应码。如图3所示,扰码可以占据认证报文的第一字节至第四字节(即data0-data3),响应码可以占据认证报文的第五字节至第八字节(即data4-data7)。这里的响应码由can网关之外的其他节点根据第一随机数(比如β),通过预设认证算法得出,扰码主要是干扰作用。

接着,介绍s150,can网关根据响应码验证第一ecu的身份。

具体地,can网关接收第一ecu发送的响应报文,响应报文包括响应码,根据响应码验证第一ecu的身份。

其中,上述涉及到根据响应码验证第一ecu的身份的步骤中,具体可以包括以下步骤:根据第一随机数计算目标响应码;在响应码与目标响应码一致的情况下,确定第一ecu身份认证通过。

例如:can网关接收到的第一ecu的发送的响应报文中的响应码为mac3,can网关根据响应报文中的第一随机数通过预设认证算法得出目标响应码mac4,比较响应码mac3与目标响应码mac4一致是否一致,在响应码mac3与目标响应码mac4一致的情况下,确定第一ecu网关身份验证通过。

这里,由于在正常情况下(第一ecu的发送者身份安全合法),第一ecu的发送的响应报文中的响应码是第一随机数确定的,can网关也是根据第一随机数计算出的目标响应码,那么响应码和目标响应码也应该一致。

接着,介绍s160,第一ecu根据第一数量的随机数中的第一随机数和根密钥确定第一密钥。

具体地,网关和其它ecu(包括第一ecu和第二ecu)使用随机数(如:α、β、γ)和根密钥k,使用密钥派生算法,生成第一密钥(如:k1、k2、k3)。即分别根据随机数α和根密钥k生成第一密钥k1,根据随机数β和根密钥k生成第一密钥k2,随机数γ和根密钥k生成第一密钥k3。其中,随机数和根密钥是从can网关获取的。

需要提示的是,当第一ecu接收到的认证报文中的随机数(如:α、β、γ)变化时,第一ecu也需要随之更新第一密钥(如:k1、k2、k3)。

接着,介绍s170,第一ecu根据第一密钥对应用报文进行加密,得到加密应用报文。

在本申请一些实施例中,加密应用报文包括第一标识信息和验证码,第一标识信息用于标识加密应用报文的发送次序,验证码根据应用报文确定。

具体地,上述涉及的第一标识信息用于标识加密应用报文的发送次序。由第一ecu发送的加密应用报文的第一标识信息的确定方式可以为:counter=counter+1。第一标识信息(counter)由于表示加密应用报文的发送次序。

例如:第一ecu发送的第一封加密应用报文的第一标识信息为1,发送的第二封加密应用报文的第一标识信息为2,发送的第n封加密应用报文的第一标识信息为n,n为正整数。

其中,上述涉及到的加密应用报文的数据结构可以如图4所示,加密应用报文包括:id、报文正文、验证码和第一标识信息(即counter)。如图4所示,报文正文可以占据认证报文的第一字节至第七字节(即data0-data6),加密应用报文counter占用最后数据场字节(即第八字节)的高4bit,在加密应用报文发送之前时,第一ecu使用mac(messageauthenticationcodes)算法根据应用报文的mac值(即验证码),将mac值放置在第8字节的低4bit。

具体地,上述涉及的验证码可以根据应用报文确定,具体可以使用mac算法计算根据应用报文的mac值(即验证码)。

接着,介绍s180,第一ecu向第二ecu发送加密应用报文。

这里,涉及s180的步骤中,具体可以有下述几种发送方式,具体如下所示:

(1)第一ecu和第二ecu属于同一can网段的ecu,此时第一ecu可以直接向第二ecu发送加密应用报文。例如:发动机对应的第一ecu和油门对应的第二ecu是属于同一can网段的ecu,它们同属于动力can网段,在这种情况下,发动机对应的第一ecu可以直接向油门对应的第二ecu发送加密应用报文。

(2)第一ecu和第二ecu不属于同一can网段的ecu,根据加密应用报文的形式和内容可以有两种发送方式。

第一种发送方式,第一ecu将加密应用报文发送给can网关,以用于can网关将加密应用报文转发至第二ecu。例如:第一ecu发送的加密应用报文只需发送至第二ecu,这种情况下,第一ecu可以将加密应用报文发送给can网关,can网关可以无需对加密应用报文进行处理,可以将加密应用报文直接转发至第二ecu。

第二种发送方式,第一ecu将加密应用报文发送给can网关,以用于can网关根据第二标识信息对加密应用报文进行拆分重组,得到包括第二标识信息的多个子加密应用报文,并根据第二标识信息将多个子加密应用报文转发至多个第二ecu,加密应用报文包括多个第二标识信息,第二标识信息用于标识第二ecu的身份信息。

第一ecu发送的加密应用报文可能需要发送至多个第二ecu,即第一ecu发送的加密应用报文包括多个子加密应用报文,每个子加密应用报文对应一个接收者(即第二ecu),第一ecu发送的加密应用报文包括与接收者(即第二ecu)对应的第二标识信息。这种情况下,第一ecu可以将加密应用报文发送给can网关。can网关来对加密应用报文进行处理,即can网关根据第二标识信息对加密应用报文进行拆分重组,得到包括第二标识信息的多个子加密应用报文,将多个子加密应用报文分别转发至与第二标识信息对应的多个第二ecu。

例如:发动机对应的第一ecu,仪表和车窗分别对应的两个第二ecu不属于同一can网段的ecu,发动机对应的第一ecu属于动力can网段,仪表对应的第二ecu属于车身can网段,车窗对应的第二ecu也属于车身can网段。在这种情况下,发动机对应的第一ecu的加密应用报文中可以包括两个第二标识信息,这两个第二标识信息分别用于标识仪表和车窗。第一ecu将加密应用报文发送给can网关,以用于can网关根据第二标识信息对加密应用报文进行拆分重组,得到子加密应用报文,并根据第二标识信息将子加密应用报文分别转发至与第二标识信息对应的第二ecu。

最后,介绍s190,第二ecu根据第二密钥对加密应用报文进行解密,得到应用报文。

其中,第二密钥由can网关发送的第一数量的随机数中的第一随机数和根密钥确定。第一密钥也是根据第一随机数和根密钥确定的。

这里,由于在通信过程安全合法的情况下,第一ecu的第一密钥是由can网关发送的第一随机数和根密钥确定的,第二ecu的第二密钥也是由can网关发送的第一随机数和根密钥确定的,那么第一密钥和第二密钥本质内容是相同的。第一密钥是在第一ecu节点计算得到的,第二密钥是在第二ecu节点计算得到的,在通信过程安全合法的情况下,第一ecu节点和第二ecu节点就可以分别根据第一密钥和第二密钥对称的进行加密和解密。

在本申请一些实施例中,为了提升通信的灵活性,第二ecu在根据第二密钥对加密应用报文解密失败的情况下,还可以包括以下步骤:根据第一数量的随机数中的第二随机数确定第三密钥,第二随机数与第一随机数的生成时间相隔第一时间周期;根据第三密钥对加密应用报文进行解密。

由于can总线网络的各个网段的负载不同、通信响应速度不一致等情况,第二ecu在根据第二密钥(当前会话周期密钥)对加密应用报文解密失败的情况下,还可以随机数中的第二随机数确定第三密钥(上个会话周期的密钥或者下一个会话周期密钥),第二随机数与第一随机数的生成时间相隔第一时间周期,第二ecu可以根据第三密钥对加密应用报文进行解密。

例如:k1为上个会话周期的密钥(即第三密钥),k2为当前会话周期密钥(即第二密钥),k3为下一个会话周期密钥(即第三密钥)。

这里,通过设置多个密钥是为了提升加密通信的稳健性,可以消除因为接收认证报文不同步时无法解密的问题,保证通信过程的及时性和稳定性。

需要提示的是,当ecu(包括第一ecu和第二ecu)收到的认证报文中的随机数(如:α、β、γ)变化时,第一ecu需要更新第一密钥(如:k1、k2、k3)。第二ecu也需要更新第二密钥(如:k1、k2、k3)。

在本申请一些实施例中,为了进一步保证加密应用报文的安全性,在s190之后,还可以包括以下步骤:获取应用报文中的第一标识信息;在第一标识信息与目标第一标识信息不一致的情况下,发送第一报警信息,目标第一标识信息根据应用报文的发送次序确定。

其中,第一ecu处保存的第一标识信息与第二ecu处保存的目标第一标识信息是同步更新的,第二ecu可以根据接收到的应用报文中的第一标识信息与自己本地保存的目标第一标识信息是否一致,来判断接收到的加密应用报文是否安全合法。

由于合法节点发出的报文次序是与接收者的(第二ecu)的报文次序是一致的,如果第二ecu解密出的应用报文中的第一标识信息与目标第一标识信息不一致,就可以怀疑应用报文可能是非法节点发出的,在第一标识信息与目标第一标识信息不一致的情况下,发送第一报警信息,能够及时提醒用户,进一步提升通信安全性。

在本申请一些实施例中,为了进一步保证加密应用报文的安全性,在s190之后,还可以包括以下步骤:方法还包括:获取应用报文中的验证码;根据应用报文计算目标验证码;在验证码与目标验证码不一致的情况下,发送第二报警信息。在响应码与目标响应码一致的情况下,确定第一ecu身份认证通过。

具体地,上述涉及到的验证码可以为计算应用报文前7字节(byte)数据的得到的mac值。

例如:第二ecu接收到的第一ecu的发送的验证报文中的验证码为mac5,第二ecu根据验证报文中计算得出目标验证码mac6,比较验证码mac5与目标验证码mac6一致是否一致,在验证码mac5与目标验证码mac6一致的情况下,确定第一ecu身份验证通过。在验证码与目标验证码不一致的情况下,发送第二报警信息。

这里,如果应用报文中的内容被篡改,那么根据篡改后的应用报文计算出来的验证码就会与目标验证码不一致,因此,比较验证码与目标验证码是否一致,可以有效防止报文被篡改,在确定验证码与目标验证码不一致的情况下,发送第二报警信息,及时提醒用户,提升通信安全性。

本发明实施例的通信方法,通过根据从can网关获取的第一随机数和根密钥确定第一密钥,向第二ecu发送根据第一密钥对待发送的应用报文进行加密得到的加密应用报文,以用于第二ecu根据接受到的由can网关发送的第一随机数和根密钥确定的第二密钥对加密应用报文进行解密,得到应用报文,保证通信过程的安全性和合法性。

另外,本发明实施例使用的报文占用资源少,可以完全使用软件实现而且占用的内存和缓存空间非常小(大约10kbyte),易于集成和部署,有效负载高。而且,由于本发明实施例会根据响应码验证ecu节点是否安全合法,能够识别出伪装的ecu节点。而且,由于本发明实施例会根据应用报文中的验证码和第一标识信息来验证接收到的报文的安全性,可以防止汽车内部can网络报文被重放攻击,还可以防止报文伪装和报文被篡改,这里的重放攻击是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的。

另外,基于上述通信方法,本发明实施例还提供了一种第一ecu,具体结合图5进行详细说明。图5是本发明实施例提供的一种第一ecu的结构示意图;

如图5所示,该第一ecu装置500可以包括:

确定模块510,用于根据第一数量的随机数中的第一随机数和根密钥确定第一密钥,其中,随机数和根密钥是从控制器局域网络can网关获取的。

加密模块520,用于根据第一密钥对应用报文进行加密,得到加密应用报文;

第一发送模块530,用于向第二ecu发送加密应用报文,以用于第二ecu根据第二密钥对加密应用报文进行解密,得到应用报文,第二密钥为第二ecu根据接受到的由can网关发送的第一随机数和根密钥确定。

该实施例提供的第一ecu装置的各个模块可以实现图1所示实例中的方法,为简洁描述,在此不再赘述。

该实施例的第一ecu装置通过根据从can网关获取的第一随机数和根密钥确定第一密钥,向第二ecu发送根据第一密钥对待发送的应用报文进行加密得到的加密应用报文,以用于第二ecu根据接受到的由can网关发送的第一随机数和根密钥确定的第二密钥对加密应用报文进行解密,得到应用报文。保证通信过程的安全性和合法性。

另外,基于上述通信方法,本发明实施例还提供了一种第二ecu,具体结合图6进行详细说明。图6是本发明实施例提供的一种第二ecu的结构示意图;

如图6所示,该第二ecu装置600可以包括:

第一接收模块610,用于接收第一ecu发送的加密应用报文。

解密模块620,用于根据第二密钥对加密应用报文进行解密,得到应用报文;其中,第二密钥由can网关发送的第一数量的随机数中的第一随机数和根密钥确定。

该实施例提供的第二ecu装置的各个模块可以实现图1所示实例中的方法,为简洁描述,在此不再赘述。

该实施例的第二ecu装置通过根据从can网关获取的第一随机数和根密钥确定第二密钥,并根据第二密钥对加密应用报文进行解密,得到应用报文。保证通信过程的安全性和合法性。

另外,基于上述通信方法,本发明实施例还提供了一种can网关,具体结合图7进行详细说明。图7是本发明实施例提供的一种can网关的结构示意图;

如图7所示,该can网关装置700可以包括:

生成模块710,用于每隔第二时间周期生成认证报文,认证报文包括第一数量的随机数和认证码。

第二发送模块720,用于向第一ecu发送认证报文,以用于第一ecu根据认证码验证can网关的身份。

第二接收模块730,用于接收第一ecu发送的响应报文,响应报文包括响应码;验证模块,用于根据响应码验证第一ecu的身份。

该实施例提供的can网关装置的各个模块可以实现图1所示实例中的方法,为简洁描述,在此不再赘述。

该实施例的can网关装置通过每隔第二时间周期向第一ecu发送包括随机数和认证码的认证报文,以用于第一ecu根据认证码验证can网关的身份,并根据接收到的由第一ecu发送的响应报文中的响应码验证第一ecu的身份,以保证通信过程的安全性和合法性。

图8示出了本发明实施例提供的示例性硬件结构示意图。

处理设备可以包括处理器801以及存储有计算机程序指令的存储器802。

具体地,上述处理器801可以包括中央处理器(centralprocessingunit,cpu),或者特定集成电路(applicationspecificintegratedcircuit,asic),或者可以被配置成实施本发明实施例的一个或多个集成电路。

存储器802可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器802可包括硬盘驱动器(harddiskdrive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器802可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器802可在综合网关容灾设备的内部或外部。在特定实施例中,存储器802是非易失性固态存储器。在特定实施例中,存储器802包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。

处理器801通过读取并执行存储器802中存储的计算机程序指令,以实现上述图1-图3所示的任意一种处理方法。

在一个示例中,处理设备还可包括通信接口803和总线810。其中,如图8所示,处理器801、存储器802、通信接口803通过总线810连接并完成相互间的通信。

通信接口803,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。

总线810包括硬件、软件或两者,将通信设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线810可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。

该处理设备可以执行本发明实施例中的通信方法,从而实现结合图1描述的通信方法。

另外,结合上述实施例中的通信方法,本发明实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种通信方法。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为软件方式,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

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