1.本说明书涉及报文传输领域,更具体地说,本发明涉及一种报文加密方法及相关设备。
背景技术:2.随着汽车的发展,汽车已经不是仅仅能完成行驶功能的移动载具。随着智能化程度的提高,实现智能化操作的设备也越来越多,各个系统之间的信息交互也显得更为频繁与重要。传统的车联网系统大多采用can总线方式,随着对于数据传输效率要求的提高,以太网技术在车辆中的应用场景越来越多。在以太网报文传输的过程中,很多涉及到整车信息安全的信息,例如远程控制的信息都通过以太网进行传输和控制,这样报文传输过程中的安全性问题就显得尤为重要。传统的报文加密通过固定的密码或特殊的结构对报文进行封装,但是一旦黑客掌握了固定密码和结构特点很容易对报文进行篡改,并对车辆实施非法控制,严重地影响了车辆的安全性。
技术实现要素:3.在发明内容部分中引入了一系列简化形式的概念,这将在具体实施方式部分中进一步详细说明。本发明的发明内容部分并不意味着要试图限定出所要求保护的技术方案的关键特征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。
4.为了提升报文在车内网络传输的安全性问题,第一方面,本发明提出一种报文加密方法,上述方法包括:
5.基于上述报文的负载数据和接收重放校验值利用加密算法获取接收mac值,其中,上述报文包括上述负载数据、发送重放校验值和发送mac值,上述发送mac值是基于上述负载数据和上述报文的同一发送端发送的上一报文的上述发送重放校验值通过上述加密算法获取的;
6.在上述发送重放校验值和上述接收重放校验值满足预设规则且发送mac值和接收mac值一致的情况下,基于上述报文执行相应的操作。
7.可选的,上述方法还包括:
8.在上述发送重放校验值和上述接收重放校验值满足预设规则且发送mac值和接收mac值一致的情况下,将上述发送重放校验值作为新的上述接收重放校验值。
9.可选的,上述加密算法是由软件或由硬件安全模块生成的。
10.可选的,每经过预设周期,将上述发送重放校验值储存至存储器中。
11.可选的,全部上述发送重放校验值构成等差数列,其中,上述等差数列的公差为第一预设值;
12.上述在上述发送重放校验值和上述接收重放校验值满足预设规则且发送mac值和接收mac值一致的情况下,基于上述报文执行相应的操作,包括:
13.在上述发送重放校验值和上述接收重放校验值的差值为第一预设值时且发送mac
值和接收mac值一致的情况下,基于上述报文执行相应的操作。
14.可选的,全部上述发送重放校验值是构成等比数列,其中,上述等比数列的公比为第二预设值;
15.上述在上述发送重放校验值和上述接收重放校验值满足预设规则且发送mac值和接收mac值一致的情况下,基于上述报文执行相应的操作,包括:
16.在上述发送重放校验值和上述接收重放校验值的比值为第二预设值时且发送mac值和接收mac值一致的情况下,基于上述报文执行相应的操作。
17.可选的,上述方法还包括:
18.当上述发送重放校验值和上述接收重放校验值不满足预设规则或发送mac值和接收mac值不一致的任一种情况发生时,反馈解密失败信息。
19.第二方面,本发明还提出一种报文加密装置,包括:
20.获取单元:用于基于上述报文的负载数据和接收重放校验值利用加密算法获取接收mac值,其中,上述报文包括上述负载数据、发送重放校验值和发送mac值,上述发送mac值是基于上述负载数据和上述报文的同一发送端发送的上一报文的上述发送重放校验值通过上述加密算法获取的;
21.判断单元:用于在上述发送重放校验值和上述接收重放校验值满足预设规则且发送mac值和接收mac值一致的情况下,基于上述报文执行相应的操作。
22.第三方面,一种电子设备,包括:储存器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器用于执行存储器中存储的计算机程序时实现如上述的第一方面任一项的报文加密方法的步骤。
23.第四方面,本发明还提出一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现第一方面上述任一项的报文加密方法。
24.综上,本方案提供的方法包括:基于报文的负载数据和接收重放校验值利用加密算法获取接收mac值,其中,报文包括负载数据、发送重放校验值和发送mac值,发送mac值是基于负载数据和报文的同一发送端发送的上一报文的发送重放校验值通过加密算法获取的;在发送重放校验值和接收重放校验值满足预设规则且发送mac值和接收mac值一致的情况下,基于报文执行相应的操作。本技术的实施例通过负载数据、接收重放校验值和发送重放校验值通过相同的加密算法计算得出发送mac值和接收mac值,判断比较接收重放校验值和发送重放校验值是否满足预设规则,并判断发送mac值和接收mac值是否一致,只有在两种判断条件都满足的情况下,接收端才会基于负载数据执行相应的操作。这种加密与判断方法,能够有效避免负载数据在传输的过程中被篡改,并能够防止报文重复发送,能够提升报文传输的安全性,从而防止车辆遭受非法控制,提高了车辆的安全性。
25.本发明的报文加密方法,本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
26.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本说明书的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
27.图1为本技术实施例提供的一种报文加密方法流程示意图;
28.图2为本技术实施例提供的一种报文加密装置结构示意图;
29.图3为本技术实施例提供的一种报文加密电子设备结构示意图。
具体实施方式
30.本技术的实施例通过负载数据、接收重放校验值和发送重放校验值通过相同的加密算法计算得出发送mac值和接收mac值,判断比较接收重放校验值和发送重放校验值是否满足预设规则,并判断发送mac值和接收mac值是否一致,只有在两种判断条件都满足的情况下,接收端才会基于负载数据执行相应的操作。这种加密与判断方法,能够有效避免负载数据在传输的过程中被篡改,并能够防止报文重复发送,能够提升报文传输的安全性,防止车辆遭受非法控制,从而提高了车辆的安全性。
31.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。
32.请参阅图1,为本技术实施例提供的一种报文加密方法流程示意图,具体可以包括:
33.s110、基于上述报文的负载数据和接收重放校验值利用加密算法获取接收mac值,其中,上述报文包括上述负载数据、发送重放校验值和发送mac值,上述发送mac值是基于上述负载数据和上述报文的同一发送端发送的上一报文的上述发送重放校验值通过上述加密算法获取的;
34.具体的,发送端在基于上一报文的发送重放校验值和当前的负载数据根据加密算法生成当前报文的发送mac值,并将当前的负载数据、当前的发送重放校验值和当前的发送mac值装载入当前的报文中。在接收端接收到发送端发送的报文是,接收端获取报文中的负载数据,根据负载数据和接收重放校验值利用和发送端同样的加密算法计算接收mac值。
35.s120、在上述发送重放校验值和上述接收重放校验值满足预设规则且发送mac值和接收mac值一致的情况下,基于上述报文执行相应的操作。
36.具体的,判断发送重放校验值和接收重放校验值是否满足预设规则,并判断发送mac值和接收mac值是否一致,只有在两种情况均满足的情况下,接收端基于上述报文的负载数据执行相应的操作。比较mac值目的是判断负载数据是否在传输的过程中被篡改,因为发送重放校验值和接收重放校验值是根据报文而改变的且符合既定的变化规则,通过比较两个值是否满足预设规则判断报文是否重复发送。
37.需要说明的,发送重放校验值按照既定的规则进行更新,在进行发送重放校验值和接收重放校验值比较是,接收重放校验值是上一报文中的发送重放校验值;且发送mac值
是基于上一报文的发送重放校验值计算的,接收mac值是基于接收重放校验值(数值上等于上一报文的发送重放校验值)计算的,因此在数据传输正常的情况下,发送mac值和接收mac值应保持一致,且发送重放校验值和接收重放校验值之间应满足预设发送重放校验值变化的预设规则。进一步地,加密算法可以采用cmac-aes128和cbc模式,满足nist sp 800-38b标准要求,采用对称加密方式,保证发送端和接收端有相同的mac值,本技术中mac值相当于密码数据,与设备中的mac地址有所不同。
38.综上,本技术的实施例通过负载数据、接收重放校验值和发送重放校验值通过相同的加密算法计算得出发送mac值和接收mac值,判断比较接收重放校验值和发送重放校验值是否满足预设规则,并判断发送mac值和接收mac值是否一致,只有在两种条件都满足的情况下,接收端才会基于负载数据执行相应的操作。这种加密与判断方法,能够有效避免负载数据在传输的过程中被篡改,并能够防止报文重复发送,能够提升报文传输的安全性,从而防止车辆遭受非法控制,从而提高了车辆的安全性。
39.在一些示例中,上述方法还包括:
40.在上述发送重放校验值和上述接收重放校验值满足预设规则且发送mac值和接收mac值一致的情况下,将上述发送重放校验值作为新的上述接收重放校验值。
41.具体的,在发送重放校验值和接收重放校验值满足预设规则且发送mac值和接收mac值一致的情况下,判定此时的报文是合法的,利用发送重放校验值更新接收重放校验值,这样在下次报文进行判断时,如果传输的是合法报文,可以保证发送重放校验值和接收重放校验值仍然符合预设规则,且发送mac值和接收mac值是一致,保证了报文不是非法重放的。
42.综上,在当前报文合法的前提下,用发送重放校验值更新为接收重放校验值,可以保证下次报文接收到合法报文时,判断结果正确,防止报文重放。
43.在一些示例中,上述加密算法是由软件或由硬件安全模块生成的。
44.具体的,安全算法实现可应用以下两种方式:1.纯软密码服务:以纯软件的方式实现,密钥存储于非易失存储器,例如:aes128算法。2.内置hsm(hardware security module,硬件安全模块)密码服务:以内置hsm硬件实现,密钥存储于hsm中。进一步地,还可以采取两种方式定时切换的模式,以提高报文的安全性。
45.综上,可以采用软件或硬件的加密算法对报文进行加密,提升报文在传输过程中的安全性。
46.在一些示例中,每经过预设周期,将上述发送重放校验值储存至存储器中。
47.具体的,用户或开发者可以自行设定预设周期,每经过预设周期,将发送重放校验值存储值存储器中,防止相应的发送端掉电重新上电后无法获取上次报文的发送重放校验值,造成报文传输混乱。可以理解的是,存储器应该为非易失存储器,保证发送重放校验值的存储稳定性。
48.综上,每经过预设周期,将发送重放校验值储存至存储器中可以防止相应的发送端掉电重新上电后无法获取上次报文的发送重放校验值,造成报文传输混乱现象发生,保证了报文传输的安全性与稳定性。
49.在一些示例中,全部上述发送重放校验值构成等差数列,其中,上述等差数列的公差为第一预设值;
50.上述在上述发送重放校验值和上述接收重放校验值满足预设规则且发送mac值和接收mac值一致的情况下,基于上述报文执行相应的操作,包括:
51.在上述发送重放校验值和上述接收重放校验值的差值为第一预设值时且发送mac值和接收mac值一致的情况下,基于上述报文执行相应的操作。
52.具体的,发送重放校验值可以设置成等差数列,这样可以设置一个初始值和一个公差,完成等差数列的生成工作。可以理解的是等比数据的产生可以由软件完成,也可以由硬件(加法器或计数器)完成,形成等差数列程序或硬件简单,能够有效地防止数据重放的现象发生。
53.综上,可通过软件或硬件的方式生成符合等差数列规则的发送重放校验值集合,通过判断发送重放校验值和接收重放校验值的比值是否与公差相等,可以有效防止数据重放现象发生,且此方法简便快捷,成本低。
54.在一些示例中,全部上述发送重放校验值是构成等比数列,其中,上述等比数列的公比为第二预设值;
55.上述在上述发送重放校验值和上述接收重放校验值满足预设规则且发送mac值和接收mac值一致的情况下,基于上述报文执行相应的操作,包括:
56.在上述发送重放校验值和上述接收重放校验值的比值为第二预设值时且发送mac值和接收mac值一致的情况下,基于上述报文执行相应的操作。
57.具体的,发送重放校验值可以设置成等比数列,这样可以设置一个初始值和一个公比,完成等比数列的生成工作。可以理解的是等比数据的产生可以由软件完成,也可以由硬件(乘法器)完成,形成等比数列程序或硬件简单,能够有效地防止数据重放的现象发生。
58.综上,可通过软件或硬件的方式生成符合等比数列规则的发送重放校验值集合,通过判断发送重放校验值和接收重放校验值的比值是否与公比相等,可以有效防止数据重放现象发生,且此方法简便快捷,成本低。
59.在一些示例中,上述方法还包括:
60.当上述发送重放校验值和上述接收重放校验值不满足预设规则或发送mac值和接收mac值不一致的任一种情况发生时,反馈解密失败信息。
61.具体的,在发送重放校验值和接收重放校验值不满足预设规则或发送mac值和接收mac值不一致的任一种情况发生时,此时判断报文可能被篡改或重放,接收器反馈解密失败信息,供车辆中其他的控制器获取到此消息,控制器会基于此消息做出应急处理,防止车辆失控。
62.请参阅图2,本技术实施例中报文加密装置的一个实施例,可以包括:
63.获取单元21:用于基于上述报文的负载数据和接收重放校验值利用加密算法获取接收mac值,其中,上述报文包括上述负载数据、发送重放校验值和发送mac值,上述发送mac值是基于上述负载数据和上述报文的同一发送端发送的上一报文的上述发送重放校验值通过上述加密算法获取的;
64.判断单元22:用于在上述发送重放校验值和上述接收重放校验值满足预设规则且发送mac值和接收mac值一致的情况下,基于上述报文执行相应的操作。
65.如图3所示,本技术实施例还提供一种电子设备300,包括存储器310、处理器320及存储在存储器320上并可在处理器上运行的计算机程序311,处理器320执行计算机程序311
时实现上述报文加密的任一方法的步骤。
66.由于本实施例所介绍的电子设备为实施本技术实施例中一种报文加密装置所采用的设备,故而基于本技术实施例中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本技术实施例中的方法不再详细介绍,只要本领域所属技术人员实施本技术实施例中的方法所采用的设备,都属于本技术所欲保护的范围。
67.在具体实施过程中,该计算机程序311被处理器执行时可以实现图1对应的实施例中任一实施方式。
68.需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
69.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
70.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
71.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
72.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
73.本技术实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,当计算机软件指令在处理设备上运行时,使得处理设备执行如图1对应实施例中的报文加密的流程。
74.计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任
何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
75.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
76.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
77.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
78.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
79.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
80.以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。