一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种OTA安全升级刷写方法、装置及VBOX与流程

2023-08-31 21:06:36 来源:中国专利 TAG:

一种ota安全升级刷写方法、装置及vbox
技术领域
1.本技术涉及智能汽车技术领域,尤其涉及一种ota安全升级刷写方法、装置及vbox。


背景技术:

2.汽车ota(over the air technology,空间下载技术)是指利用空中下载技术对汽车固件、软件进行升级。ota不仅带来更便捷的车辆升级途径,也让消费者感受到更加智能便捷的用车体验。
3.目前智能汽车的功能越来越丰富,车端与外界进行数据信息交互也越来越频繁,与此同时,在数据信息交互的过程中受到的攻击风险和数据篡改风险也越来越高。
4.现有的汽车ota升级基本采用uds 0x27服务这种单一的安全验证方式进行升级刷写,升级刷写的数据很容易被第三方破解、篡改或攻击,安全性较差。


技术实现要素:

5.有鉴于此,本技术实施例提供了一种ota安全升级刷写方法、装置及vbox,以解决现有的汽车ota升级刷写过程中升级刷写的数据很容易被第三方破解、篡改或攻击,安全性较差的问题。
6.本技术实施例的第一方面,提供了一种ota安全升级刷写方法,包括:
7.组装升级报文,升级报文包括报文头部和原始升级数据;
8.确定数据传输通道,并启动计时器记录第一累计时间,实时监测数据传输通道的当前系统负载状态;
9.提取报文头部中的头部信息,并对头部信息进行验证;
10.若确定头部信息通过验证,且根据第一累计时间和当前系统负载状态,确定需要更换加密算法,则获取第一加密算法,并将第一加密算法更换为第二加密算法;
11.使用第二加密算法对原始升级数据进行加密,得到密文升级数据,并将密文升级数据和报文头部组装成升级报文密文;
12.将升级报文密文传输至中转网关,以使中转网关对升级报文密文进行解密,得到明文升级数据,并将明文升级数据写入目标ecu,以使目标ecu使用明文升级数据进行升级刷写;或者,将升级报文密文传输至目标ecu,以使目标ecu对升级报文密文进行解密,得到明文升级数据,并使用明文升级数据进行升级刷写。
13.本技术实施例的第二方面,提供了另一种ota安全升级刷写方法,包括:
14.组装升级报文,升级报文包括报文头部和原始升级数据;
15.使用第一加密算法对原始升级数据进行加密,得到第一密文数据;
16.确定数据传输通道,并启动计时器记录第一累计时间,实时监测数据传输通道的当前系统负载状态;
17.提取报文头部中的头部信息,并对头部信息进行验证;
18.若确定头部信息通过验证,且根据第一累计时间和当前系统负载状态,确定需要更换加密算法,则获取第一加密算法,并将第一加密算法更换为第二加密算法;
19.使用第二加密算法对第一密文数据进行加密,得到第二密文数据,并将第二密文数据和报文头部组装成传输报文密文;
20.将传输报文密文传输至中转网关,以使中转网关对传输报文密文进行解密,得到明文升级数据,并将明文升级数据写入目标ecu,以使目标ecu使用明文升级数据进行升级刷写;或者,将传输报文密文传输至目标ecu,以使目标ecu对传输报文密文进行解密,得到明文升级数据,并使用明文升级数据进行升级刷写。
21.本技术实施例的第三方面,提供了一种ota安全升级刷写装置,包括:
22.组装模块,被配置为组装升级报文,升级报文包括报文头部和原始升级数据;
23.确定模块,被配置为确定数据传输通道,并启动计时器记录第一累计时间,实时监测数据传输通道的当前系统负载状态;
24.提取模块,被配置为提取报文头部中的头部信息,并对头部信息进行验证;
25.更换模块,被配置为若确定头部信息通过验证,且根据第一累计时间和当前系统负载状态,确定需要更换加密算法,则获取第一加密算法,并将第一加密算法更换为第二加密算法;
26.加密模块,被配置为使用第二加密算法对原始升级数据进行加密,得到密文升级数据,并将密文升级数据和报文头部组装成升级报文密文;
27.传输模块,被配置为将升级报文密文传输至中转网关,以使中转网关对升级报文密文进行解密,得到明文升级数据,并将明文升级数据写入目标ecu,以使目标ecu使用明文升级数据进行升级刷写;或者,将升级报文密文传输至目标ecu,以使目标ecu对升级报文密文进行解密,得到明文升级数据,并使用明文升级数据进行升级刷写。
28.本技术实施例的第四方面,提供了另一种ota安全升级刷写装置,包括:
29.组装模块,被配置为组装升级报文,升级报文包括报文头部和原始升级数据;
30.一次加密模块,被配置为使用第一加密算法对原始升级数据进行加密,得到第一密文数据;
31.确定模块,被配置为确定数据传输通道,并启动计时器记录第一累计时间,实时监测数据传输通道的当前系统负载状态;
32.提取模块,被配置为提取报文头部中的头部信息,并对头部信息进行验证;
33.更换模块,被配置为若确定头部信息通过验证,且根据第一累计时间和当前系统负载状态,确定需要更换加密算法,则获取第一加密算法,并将第一加密算法更换为第二加密算法;
34.二次加密模块,被配置为使用第二加密算法对第一密文数据进行加密,得到第二密文数据,并将第二密文数据和报文头部组装成传输报文密文;
35.数据传输模块,被配置为将传输报文密文传输至中转网关,以使中转网关对传输报文密文进行解密,得到明文升级数据,并将明文升级数据写入目标ecu,以使目标ecu使用明文升级数据进行升级刷写;或者,将传输报文密文传输至目标ecu,以使目标ecu对传输报文密文进行解密,得到明文升级数据,并使用明文升级数据进行升级刷写。
36.本技术实施例的第五方面,提供了一种vbox,包括ota升级主控;
37.ota升级主控包括上述第三方面或第四方面的ota安全升级刷写装置。
38.本技术实施例的第六方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
39.本技术实施例与现有技术相比,其有益效果至少包括:本技术实施例提供的技术方案,在进行ota升级刷写的过程中,通过组装升级报文,升级报文包括报文头部和原始升级数据;确定数据传输通道,并启动计时器记录第一累计时间,实时监测数据传输通道的当前系统负载状态;提取报文头部中的头部信息,并对头部信息进行验证;若确定头部信息通过验证,且根据第一累计时间和当前系统负载状态,确定需要更换加密算法,则获取第一加密算法,并将第一加密算法更换为第二加密算法;使用第二加密算法对原始升级数据进行加密,得到密文升级数据,并将密文升级数据和报文头部组装成升级报文密文;将升级报文密文传输至中转网关,以使中转网关对升级报文密文进行解密,得到明文升级数据,并将明文升级数据写入目标ecu,以使目标ecu使用明文升级数据进行升级刷写;或者,将升级报文密文传输至目标ecu,以使目标ecu对升级报文密文进行解密,得到明文升级数据,并使用明文升级数据进行升级刷写,可实现定期或不定期更换用于加密原始升级数据的加密算法,极大地降低了在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的风险,显著地提升了升级刷写的安全性。
附图说明
40.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
41.图1是本技术实施例的一种应用场景的场景示意图;
42.图2是本技术实施例提供的一种ota安全升级刷写方法的流程示意图;
43.图3是本技术实施例提供的一种umc向目标ecu/中转网关传输升级报文密文和传输报文的整体流程示意图;
44.图4是本技术实施例提供的一种ua基于传输报文对升级报文密文进行解密的流程示意图;
45.图5是本技术实施例提供的另一种ota安全升级刷写方法的流程示意图;
46.图6是本技术实施例提供的一种ota安全升级刷写装置的结构示意图;
47.图7是本技术实施例提供的另一种ota安全升级刷写装置的结构示意图;
48.图8是本技术实施例提供的一种vbox的结构示意图;
49.图9是本技术实施例提供的另一种vbox的结构示意图;
50.图10是本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
51.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电
路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
52.下面将结合附图详细说明根据本技术实施例的一种ota安全升级刷写方法、装置和vbox。
53.图1是本技术实施例的一种应用场景的场景示意图。该应用场景可以包括vbox 101、vgw 102和ecu 103。
54.vbox(vehicle box),可以是汽车的tbox(远程信息处理器)。vbox 101中承载有ota升级主控(简称“umc”)。
55.vgw(vehicle gateway),网关。vgw 102中承载有ota升级代理(简称“ua”)。
56.ecu(electronic control unit),电子控制单元,又称“行车电脑”、“车载电脑”等。ecu 103中承载有ota升级从控(简称“us”)。
57.umc与ua之间通过以太网(简称“eth”)连接,ua与us之间可通过can/canfd/eth总线连接。umc与us之间可通过can/canfd/eth总线连接。umc与云端服务器之间可通过有线网络(如采用同轴电缆、双绞线和光纤连接的有线网络等)或者无线网络(如蓝牙等)进行连接。
58.在本技术实施例中,在进行ota升级刷写的过程中,vbox 101可以先从云端服务器处下载获取原始升级数据,并将该原始升级数据与报文头部组装成升级报文;然后,确定数据传输通道,并启动计时器记录第一累计时间,实时监测数据传输通道的当前系统负载状态;再提取报文头部中的头部信息,并对头部信息进行验证;若确定头部信息通过验证,且根据第一累计时间和当前系统负载状态,确定需要更换加密算法,则获取第一加密算法,并将第一加密算法更换为第二加密算法;之后,使用第二加密算法对原始升级数据进行加密,得到密文升级数据,并将密文升级数据和报文头部组装成升级报文密文;最后,将升级报文密文传输至中转网关,以使中转网关对升级报文密文进行解密,得到明文升级数据,并将明文升级数据写入目标ecu,以使目标ecu使用明文升级数据进行升级刷写;或者,将升级报文密文传输至目标ecu,以使目标ecu对升级报文密文进行解密,得到明文升级数据,并使用明文升级数据进行升级刷写。通过上述方式,可实现定时或不定时更换用于加密传输的加密算法,极大地降低了在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的风险,显著提升了升级刷写的安全性。
59.需要说明的是,vbox 101、vgw 102、ecu 103和云端服务器104的具体种类和数量可以根据实际情况来设置,在此不做具体限定。例如,vgw 102的数量可以是一个或多个,如包括vgw1,vgw2......vgwn,ecu 103的数量也可以是一个或多个,如包括ecu1,ecu2......ecuz。
60.图2是本技术实施例提供的一种ota安全升级刷写方法的流程示意图。图2的ota安全升级刷写方法可以由图1的vbox 101中的umc执行。如图2所示,该ota安全升级刷写方法包括:
61.步骤s201,组装升级报文,升级报文包括报文头部和原始升级数据。
62.原始升级数据,是指用于升级刷写ecu 103当前使用的软件版本的软件数据。原始升级数据为未经加密的明文数据。
63.报文头部,可以是can总线协议的报文头部,也可以是eth(以太网)总线协议的报文头部。
64.在一实施方式中,umc可从云端服务器下载原始升级数据并暂存在本地,在需要进行ota升级刷写时,umc从vbox 101本地中读取原始升级数据,并将该原始升级数据和报文头部组装成升级报文。
65.步骤s202,确定数据传输通道,并启动计时器记录第一累计时间,实时监测数据传输通道的当前系统负载状态。
66.数据传输通道,可以是can通道或者以太网(eth)通道。
67.在一实施方式中,可以根据升级报文的报文头部来确定采用的数据传输通道。例如,若报文头部为can总线协议的报文头部,则采用can通道作为数据传输通道。若报文头部为eth(以太网)总线协议的报文头部,则采用以太网(eth)通道作为数据传输通道。
68.当前系统负载状态,是指当前所采用的数据传输通道的数据传输负载率。
69.在一实施方式中,若数据传输通道为can通道,则可以通过canbusload来实时监测umc至被刷写的目标ecu的总线负载率。canbusload是linux can工具canutils的其中一个程序。它可以很方便的计算并刷新当前can总线上的负载率信息,并且提供了上述的3种软件算法进行统计(即忽略填充位,最大计算填充位,精确计算填充位)。
70.步骤s203,提取报文头部中的头部信息,并对头部信息进行验证。
71.当报文头部为can总线协议的报文头部时,该头部信息主要包括cad id、该cad id的报文传输频率等信息。
72.当报文头部为eth总线协议的报文头部时,该头部信息主要包括源端和目标“五元组”以及vlan等acl配置信息。访问控制列表(acl),它由一系列规则(即描述报文匹配条件的判断语句)组成。虚拟局域网(vlan),是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样。“五元组”包括报文的源地址、目的地址、源端口、目的端口、端口号。
73.作为一示例,当报文头部为can总线协议的报文头部时,对其头部信息进行验证,主要是检查cad id是否在白名单内以及该cad id的报文的传输频率是否正常。通常情况下,该cad id的报文的当前传输频率在设定的该cad id的报文的传输频率的正负10%的范围内均视为传输频率正常,否则视为传输频率异常。例如,设定的cad id1的报文的传输频率为100m,若检测到该cad id的报文的当前传输频率为90m~110m之间均视为传输频率正常;若检测该cad id的报文的当前传输频率小于90m或大于110m,则是视为传输频率异常。
74.作为另一示例,当报文头部为eth总线协议的报文头部时,对其头部信息进行验证,主要是检查源端和目标“五元组”及vlan是否均满足acl配置信息。
75.步骤s204,若确定头部信息通过验证,且根据第一累计时间和当前系统负载状态,确定需要更换加密算法,则获取第一加密算法,并将第一加密算法更换为第二加密算法。
76.步骤s205,使用第二加密算法对原始升级数据进行加密,得到密文升级数据,并将密文升级数据和报文头部组装成升级报文密文。
77.步骤s206,将升级报文密文传输至中转网关,以使中转网关对升级报文密文进行解密,得到明文升级数据,并将明文升级数据写入目标ecu,以使目标ecu使用明文升级数据进行升级刷写;或者,将升级报文密文传输至目标ecu,以使目标ecu对升级报文密文进行解密,得到明文升级数据,并使用明文升级数据进行升级刷写。
78.中转网关,可以是图1中的某一个vgw 102。
79.目标ecu,可以是图1中的某一个ecu 103。
80.本技术实施例提供的技术方案,在进行ota升级刷写的过程中,一方面,umc通过对报文头部的头部信息进行验证,可确保升级报文为正常报文;另一方面,在确定数据传输通道时,启动计时器记录第一累计时间,并实时监测数据传输通道的当前系统负载状态,之后在头部信息验证通过的前提下,进一步根据第一累计时间和当前系统负载状态,确定是否需要更换加密算法,从而可以实现定期或不定期更换加密算法,以增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度,从而有效提高ota升级刷写的安全性。
81.在一些实施例中,在上述步骤s204中,确定头部信息通过验证,包括:
82.获取与数据传输通道对应的数据过滤规则;
83.判断头部信息是否符合数据过滤规则中的每一条过滤规则;
84.若头部信息符合数据过滤规则中的每一条过滤规则,则获取目标ecu的标识信息;
85.若标识信息通过验证,则确定头部信息通过验证。
86.作为一示例,当数据传输通道为can通道时,数据过滤规则为cad id为预先设定的白名单中的cad id,且该cad id的报文传输频率为正常传输频率。判断头部信息是否符合数据过滤规则中的每一条过滤规则,具体是判断该头部信息中的cad id是否为预先设定的白名单中的cad id,以及该cad id的报文传输频率是否为正常传输频率。示例性的,假设从报文头部中提取到的头部信息包括cad id1,该cad id1的报文传输频率为105m,那么检查预先设定的白名单中的cad id是否包含cad id1,若白名单中存在cad id1,则进一步判断该cad id1的报文传出频率是否为正常传输频率。若设定的与cad id1对应的报文传输频率为100m,该cad id1的报文传出频率为95m,则该cad id1的报文传出频率在设定的与cad id1对应的报文传输频率的正负10%的范围内(即90m~110m),为正常报文传输频率。由此可确定该头部信息符合数据过滤规则中的每一条过滤规则。此时,可进一步获取目标ecu的标识信息(如ecu id),假设获取到的目标ecu的标识信息为ecu id1。与此同时,umc可以读取ecu的标识信息列表,并查询该标识信息列表中是否包含ecu id1。若该标识信息列表中包含ecu id1,则确定头部信息通过验证。
87.作为另一示例,当数据传输通道为以太网(eth)通道时,数据过滤规则为源端和目标“五元组”及vlan均符合acl配置信息。判断头部信息是否符合数据过滤规则中的每一条过滤规则,即系判断源端和目标“五元组”及vlan均符合acl配置信息。若源端和目标“五元组”及vlan均符合acl配置信息,则进一步获取目标ecu的标识信息,假设获取到的目标ecu的标识信息为ecu id2。与此同时,umc可以读取ecu的标识信息列表,并查询该标识信息列表中是否包含ecu id2。若该标识信息列表中包含ecu id2,则确定头部信息通过验证。
88.在本技术实施例中,若头部信息的验证不通过,则退出ota升级刷写的后续流程,并输出告警信息(如告警报文、告警蜂鸣等)。
89.在一些实施例中,若第一累计时间达到设定更换时间间隔间隔,且当前系统负载状态为正常负载状态,则确定需要更换加密算法;获取第一加密算法,并将第一加密算法更换为第二加密算法。
90.设定更换时间间隔,是指更换时间间隔,该更换时间间隔可以根据实际情况灵活
设置,例如,更换时间间隔可以是120秒、150秒、180秒等。
91.正常负载状态,通常是指数据传输通道的总负载率不超过预设阈值(例如,预设阈值可设置为50%、80%、90%、100%等)。
92.作为一示例,假设设定更换时间间隔为120秒,第一累计时间为120秒,那么可确定第一累计时间达到设定更换时间间隔。若当前的数据传输通道的总负载率为40%,预设阈值为80%,即总负载率小于预设阈值,则确定需要更换加密算法。
93.此时,可以获取当前使用的加密算法的key1,然后根据该key1获取第一加密算法,再将key1替换为与第二加密算法对应的key2。即可将第一加密算法替换为第二加密算法。
94.其中,第一加密算法可以是对称加密算法(如des算法、3des算法、tdea算法、blowfish算法等),也可以是非对称加密算法(如rsa算法等)。第一加密算法与第二加密算法为不同的加密算法。例如,当第一加密算法为des算法时,第二加密算法可为3des算法、tdea算法、blowfish算法、rsa算法等中的任一种。反之亦然,当第二加密算法为des算法时,第一加密算法可为3des算法、tdea算法、blowfish算法、rsa算法等中的任一种。
95.在一实施方式中,可以预先设定一个算法替换顺序表,例如,算法1(对应key1)

算法2(对应key2)

算法3(对应key3)

算法4(对应key4)

算法1

算法2......。即系以“算法1

算法2

算法3

算法4”为一个循环替换单元。初始默认加密算法(即umc与ecu事先协商的初始加密算法)为算法1(第一加密算法,对应key1),当第一累计时间达到设定更换时间间隔间隔,且当前系统负载状态为正常负载状态时,确定需要更换加密算法,此时,可以先根据算法替换顺序表确定第二加密算法对应的key,若第二加密算法的key为key2,则可将算法1(第一加密算法,对应key1)替换为算法2(第二加密算法,对应key2)。当第一累计时间达到下一个设定更换时间间隔间隔,且当前系统负载状态为正常负载状态时,确定需要更换加密算法。此时,若根据算法替换顺序表确定第二加密算法对应的key为key3,则将key2对应的算法2(第一加密算法)替换为key3对应的算法3(第二加密算法)。以此类推,按照算法替换顺序表定期更换加密算法。
96.本技术实施例中,在第一累计时间达到设定更换时间间隔间隔,且当前系统负载状态为正常负载状态时,定期将第一加密算法更换为第二加密算法,可以增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度,从而有效提高ota升级刷写的安全性。
97.在另一些实施例中,若第一累计时间未达到设定更换时间间隔,且当前系统负载状态为负载突变状态或负载异常状态;或者,若第一累计时间达到设定更换时间间隔,且当前系统负载状态为负载突变状态或负载异常状态,则确定需要更换加密算法;获取第一加密算法,并将第一加密算法更换为第二加密算法;清除计时器记录的第一累计时间,并重新启动计时器记录第二累计时间。
98.负载突变状态,通常是指数据传输通道的总负载率在短时间内变化幅度较大的情况。一般地,总负载率在单位时间内(如30秒内)从原来的25%的负载率突变到50%以上的负载率(即增加了1倍以上的负载率),视为负载突变。
99.负载异常状态,通常是指负载率超过预设阈值(可根据实际情况灵活设置,例如,预设阈值为80%、100%等)的情况。
100.为了便于理解,继续沿用上述示例进行说明,设定更换时间间隔为120秒,计时器
记录的第一累计时间为50秒,且当前系统负载在30秒内由原来的25%负载率跃升至50%以上,则确定需要更换加密算法。此时,可以先获取第一加密算法的key(假设为key1),然后若根据算法替换顺序表确定第二加密算法的key为key2,则将key1对应的算法1(第一加密算法)的替换为key2对应的算法2(第二加密算法)。与此同时,清除计时器记录的第一累计时间(清零处理),重新启动计时器从零开始记录第二累计时间。
101.本技术实施例提供的技术方案,在发现当前系统负载出现突变或异常情况时(可能是由于第三方攻击系统造成的突变或异常),可无需等待第一累计时间达到设定更换时间间隔再执行更换加密算法的步骤,以增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度,从而有效提高ota升级刷写的安全性。
102.在一些实施例中,在上述步骤s206中,将升级报文密文传输至中转网关,以使中转网关对升级报文密文进行解密,具体包括:
103.对原始升级数据进行哈希运算,得到哈希值;
104.获取第二加密算法的算法标识码;
105.将哈希值和算法标识码组装成传输报文;
106.将升级报文密文和传输报文传输至中转网关,以使中转网关基于传输报文对升级报文密文进行解密。
107.算法标识码,可以是用于唯一标识第二加密算法的标识码(如key)、id等。
108.作为一示例,umc可以对原始升级数据进行hash(哈希)运算,得到哈希值,该hash(哈希)值单向唯一且不可逆。
109.示例性的,可以根据所采用的数据传输通道,将哈希值和算法标识码组装成对应协议格式的传输报文。例如,数据传输通道为can通道,可以将哈希值和算法标识码填充至can报文的数据部分,该can报文的报文头部可以是与用于组装升级报文相同的报文头部。
110.在一实施方式中,结合图3,umc向目标ecu/中转网关传输升级报文密文和传输报文的整体流程如下:
111.步骤1、umc从源端(vbox本地或云端服务器)获取原始升级数据;
112.步骤2、umc判断是uds升级还是eth升级,即确定数据传输通道;此时,启动计时器记录第一累计时间,并实时监测数据传输通道的当前系统负载状态;
113.步骤3、若是采用can通道作为数据传输通道,则提取cad报文中的报文头部信息,并检查cad id是否在白名单中,以及该cad id对应的报文传输频率是否满足预定义的规范(即判断该cad id对应的报文传输频率是否正常);
114.步骤4、若是采用以太网(eth)通道作为数据传输通道,则提取eth报文中的报文头部信息,并检查源端和目标“五元组”及vlan是否均满足acl配置;
115.步骤5、若步骤3中的cad id在白名单中,且该cad id对应的报文传输频率满足预定义的规范;或者步骤4中的源端和目标“五元组”及vlan均满足acl配置,则进行ecu身份认证,判断ecu身份认证是否通过;
116.步骤6、若ecu身份认证通过,则确定头部信息通过验证,根据第一累计时间和当前系统负载状态,确定是否需要更换加密算法;
117.步骤7、若ecu身份认证不通过,则退出ota升级流程并告警;
118.步骤8、若第一累计时间达到设定更换时间间隔,且当前系统负载状态为正常负载
状态,则确定需要更换加密算法;
119.步骤9、获取与更新加密算法的key对应的第二加密算法(如为key2对应的算法2),将原始加密算法(第一加密算法,如为key1对应的算法1)替换为第二加密算法,并使用第二加密算法对原始升级数据进行加密,得到升级报文密文,并将该升级报文密文传输至中转网关或目标ecu;
120.步骤10、对原始升级数据进行哈希运算,得到哈希值,并将该哈希值与第二加密算法的key组装成传输报文,并将该传输报文传输至中转网关或目标ecu。
121.中转网关或目标ecu在接收到umc传输过来的升级报文密文和传输报文后,基于该传输报文对升级报文密文进行解密。
122.下面以umc将根据上述步骤得到的升级报文密文和传输报文均传输至中转网关(vgw 102),再由vgw 102中的ua基于该传输报文对升级报文密文进行解密为例进行详细说明。
123.在一实施方式中,结合图4,ua基于该传输报文对升级报文密文进行解密的流程如下:
124.步骤(1)、ua在接收到umc传输过来的升级报文密文和传输报文;
125.步骤(2)、判断是uds升级还是eth升级,即确定数据传输通道;
126.步骤(3)、若是采用can通道作为数据传输通道,则从升级报文密文(can报文)中提取出报文头部的头部信息(在升级报文密文中,报文头部的头部信息可采用明文传输),并检查cad id是否在白名单中,以及该cad id对应的报文传输频率是否满足预定义的规范(即判断该cad id对应的报文传输频率是否正常);
127.步骤(4)、若是采用以太网(eth)通道作为数据传输通道,则从升级报文密文(eth报文)中提取出报文头部的头部信息,并检查源端和目标“五元组”及vlan是否均满足acl配置;
128.步骤(5)、若步骤(3)中的cad id在白名单中,且该cad id对应的报文传输频率满足预定义的规范;或者步骤(4)中的源端和目标“五元组”及vlan均满足acl配置,则进行ecu身份认证,判断ecu身份认证是否通过;
129.步骤(6)、若ecu身份认证通过,则确定头部信息通过验证,从传输报文中提取出第二加密算法的key(如为key2),并查找出与key2对应的第二加密算法(即算法2),使用算法2对升级报文密文中的密文升级数据进行解密(解密的过程为采用算法2对原始升级数据进行加密的过程的逆过程),得到明文升级数据;
130.步骤(7)、若ecu身份认证不通过,则退出ota升级流程并告警;
131.步骤(8)、ua对明文升级数据进行哈希运算,得到哈希运算值;从传输报文中提取出哈希值,比较哈希运算值与哈希值是否一致;
132.步骤(9)、若哈希运算值与哈希值一致,则确认明文升级数据无篡改且是umc发布的,将明文升级数据写入目标ecu,以使目标ecu使用明文升级数据进行升级刷写。
133.步骤(10)、若哈希运算值与哈希值不一致,则确认明文升级数据有被篡改或者不是umc发布的,丢弃该明文升级数据,退出ota升级流程并告警。
134.在另一实施方式中,目标ecu在接收到umc传输过来的升级报文密文和传输报文后,基于该传输报文对升级报文密文进行解密。具体的解密流程与上述ua基于传输报文对
升级报文密文进行解密的流程基本相同,在此不再赘述。
135.本技术实施例提供的技术方案,通过在数据发送方(umc)和数据接收方(ua/us)增加哈希算法机制,有利于保证在整个ota升级刷写过程中升级刷写数据的完整性和真实性,并提高ota升级刷写的安全性和升级质量。
136.在一些实施例中,上述ota安全升级刷写方法,还包括:
137.若确定头部信息通过验证,且根据第一累计时间和当前系统负载状态确定不需要更换加密算法,则获取第一加密算法;
138.使用第一加密算法对原始升级数据进行加密,得到第三密文数据;
139.将第三密文数据与报文头部组装成加密报文,并传输至中转网关或目标ecu。
140.作为一示例,如果设定更换时间间隔为120秒,正常负载状态为总负载率不超过80%,若确定升级报文包括报文头部的头部信息通过验证,且第一累计时间为100秒,当前系统负载的负载率为20%(<80%),为正常负载状态,则可确定不需要更换加密算法,则获取第一加密算法(假设为key1对应的算法1)。接下来,使用算法1对原始升级数据进行加密,得到第三密文数据;然后,将第三密文数据和报文头部组装成加密报文,并将该加密报文传输至中转网关或目标ecu。
141.本技术实施例提供的技术方案,可以根据第一累计时间和当前系统负载状态动态调整当前使用的加密算法,有利于增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度,从而提高ota升级刷写的安全性。
142.图5是本技术实施例提供的另一种ota安全升级刷写方法的流程示意图。如图5所示,该ota安全升级刷写方法包括如下步骤:
143.步骤s501,组装升级报文,升级报文包括报文头部和原始升级数据;
144.步骤s502,使用第一加密算法对原始升级数据进行加密,得到第一密文数据;
145.步骤s503,确定数据传输通道,并启动计时器记录第一累计时间,实时监测数据传输通道的当前系统负载状态;
146.步骤s504,提取报文头部中的头部信息,并对头部信息进行验证;
147.步骤s505,若确定头部信息通过验证,且根据第一累计时间和当前系统负载状态,确定需要更换加密算法,则获取第一加密算法,并将第一加密算法更换为第二加密算法;
148.步骤s506,使用第二加密算法对第一密文数据进行加密,得到第二密文数据,并将第二密文数据和报文头部组装成传输报文密文;
149.步骤s507,将传输报文密文传输至中转网关,以使中转网关对传输报文密文进行解密,得到明文升级数据,并将明文升级数据写入目标ecu,以使目标ecu使用明文升级数据进行升级刷写;或者,将传输报文密文传输至目标ecu,以使目标ecu对传输报文密文进行解密,得到明文升级数据,并使用明文升级数据进行升级刷写。
150.作为一示例,假设第一加密算法为算法1(对应的key为key1),使用算法1对原始升级数据进行加密,得到第一密文数据。之后,确定数据传输通道,并启动计时器记录第一累计时间,实时监测数据传输通道的当前系统负载状态;提取报文头部中的头部信息,并对头部信息进行验证;若确定头部信息通过验证,且根据第一累计时间和当前系统负载状态,确定需要更换加密算法,则根据算法替换顺序表确定第二加密算法(假设为算法2,其对应的key为key2),并将算法1替换为算法2,也即系,此时的第一加密算法已更新为算法2。接着,
使用算法2对第一密文数据进行加密,得到第二密文数据,再将该第二密文数据和前述的报文头部组装成传输报文密文;最后,将该传输报文密文传输至中转网关或目标ecu。
151.中转网关或目标ecu在接收到umc传输过来的传输报文密文,可参照上述图4的步骤(1)~(6)对传输报文密文的头部信息进行验证,并在头部信息验证通过后,根据key2获取算法2,使用算法2对传输报文密文中的第二密文数据进行解密,得到第一解密数据;然后,再根据key1获取算法1,使用算法1对第一解密数据进行解密,得到明文升级数据。
152.本技术实施例提供的技术方案,第一方面,通过对原始升级数据进行一次加密,得到第一密文数据,可以增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度;第二方面,通过验证报文头部的头部信息是否合法,可确保待传输的报文为正常报文,有利于提高ota升级刷写的安全性;第三方面,通过在头部信息验证通过的基础上,根据第一累计时间和当前系统负载状态,确定是否需要更换加密算法,可实现定期或不定期更换加密算法,进一步增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度,从而有效提高ota升级刷写的安全性。
153.上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
154.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
155.图6是本技术实施例提供的一种ota安全升级刷写装置的示意图。如图6所示,该ota安全升级刷写装置包括:
156.组装模块601,被配置为组装升级报文,升级报文包括报文头部和原始升级数据;
157.确定模块602,被配置为确定数据传输通道,并启动计时器记录第一累计时间,实时监测数据传输通道的当前系统负载状态;
158.提取模块603,被配置为提取报文头部中的头部信息,并对头部信息进行验证;
159.更换模块604,被配置为若确定头部信息通过验证,且根据第一累计时间和当前系统负载状态,确定需要更换加密算法,则获取第一加密算法,并将第一加密算法更换为第二加密算法;
160.加密模块605,被配置为使用第二加密算法对原始升级数据进行加密,得到密文升级数据,并将密文升级数据和报文头部组装成升级报文密文;
161.传输模块606,被配置为将升级报文密文传输至中转网关,以使中转网关对升级报文密文进行解密,得到明文升级数据,并将明文升级数据写入目标ecu,以使目标ecu使用明文升级数据进行升级刷写;或者,将升级报文密文传输至目标ecu,以使目标ecu对升级报文密文进行解密,得到明文升级数据,并使用明文升级数据进行升级刷写。
162.本技术实施例提供的技术方案,在进行ota升级刷写的过程中,一方面,umc通过对报文头部的头部信息进行验证,可确保升级报文为正常报文;另一方面,在确定数据传输通道时,启动计时器记录第一累计时间,并实时监测数据传输通道的当前系统负载状态,之后在头部信息验证通过的前提下,进一步根据第一累计时间和当前系统负载状态,确定是否需要更换加密算法,从而可以实现定期或不定期更换加密算法,以增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度,从而有效提高ota升级刷写的安全性。
163.在一些实施例中,上述更换模块604,包括:
164.规则获取单元,被配置为获取与数据传输通道对应的数据过滤规则;
165.判断单元,被配置为判断头部信息是否符合数据过滤规则中的每一条过滤规则;
166.信息获取单元,被配置为若头部信息符合数据过滤规则中的每一条过滤规则,则获取目标ecu的标识信息;
167.验证单元,被配置为若标识信息通过验证,则确定头部信息通过验证。
168.在一些实施例中,上述更换模块604,包括:
169.第一确定单元,被配置为若第一累计时间达到设定更换时间间隔,且当前系统负载状态为正常负载状态,则确定需要更换加密算法;
170.第一获取单元,被配置为获取第一加密算法,并将第一加密算法更换为第二加密算法。
171.本技术实施例中,在第一累计时间达到设定更换时间间隔间隔,且当前系统负载状态为正常负载状态时,定期将第一加密算法更换为第二加密算法,可以增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度,从而有效提高ota升级刷写的安全性。
172.在另一些实施例中,上述更换模块604,包括:
173.第二确定单元,被配置为若第一累计时间未达到设定更换时间间隔,且当前系统负载状态为负载突变状态或负载异常状态;或者,若第一累计时间达到设定更换时间间隔,且当前系统负载状态为负载突变状态或负载异常状态,则确定需要更换加密算法;
174.第二获取单元,被配置为获取第一加密算法,并将第一加密算法更换为第二加密算法;
175.清除单元,被配置为清除计时器记录的第一累计时间,并重新启动计时器记录第二累计时间。
176.本技术实施例提供的技术方案,在发现当前系统负载出现突变或异常情况时(可能是由于第三方攻击系统造成的突变或异常),可无需等待第一累计时间达到设定更换时间间隔再执行更换加密算法的步骤,以增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度,从而有效提高ota升级刷写的安全性。
177.在一些实施例中,上述传输模块606,包括:
178.运算单元,被配置为对原始升级数据进行哈希运算,得到哈希值;
179.标识获取单元,被配置为获取第二加密算法的算法标识码;
180.组装单元,被配置为将哈希值和算法标识码组装成传输报文;
181.传输单元,被配置为将升级报文密文和传输报文传输至中转网关,以使中转网关基于传输报文对升级报文密文进行解密。
182.本技术实施例提供的技术方案,通过在数据发送方(umc)和数据接收方(ua/us)增加哈希算法机制,有利于保证在整个ota升级刷写过程中升级刷写数据的完整性和真实性,并提高ota升级刷写的安全性和升级质量。
183.在一些实施例中,上述ota安全升级刷写装置,还包括:
184.算法获取模块,被配置为若确定头部信息通过验证,且根据第一累计时间和当前系统负载状态确定不需要更换加密算法,则获取第一加密算法;
185.数据加密模块,被配置为使用第一加密算法对原始升级数据进行加密,得到第三密文数据;
186.报文组装模块,被配置为将第三密文数据与报文头部组装成加密报文,并传输至中转网关或目标ecu。
187.本技术实施例提供的技术方案,可以根据第一累计时间和当前系统负载状态动态调整当前使用的加密算法,有利于增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度,从而提高ota升级刷写的安全性。
188.图7是本技术实施例提供的另一种ota安全升级刷写装置的结构示意图。如图7所示,该ota安全升级刷写装置包括:
189.组装模块701,被配置为组装升级报文,升级报文包括报文头部和原始升级数据;
190.一次加密模块702,被配置为使用第一加密算法对原始升级数据进行加密,得到第一密文数据;
191.确定模块703,被配置为确定数据传输通道,并启动计时器记录第一累计时间,实时监测数据传输通道的当前系统负载状态;
192.提取模块704,被配置为提取报文头部中的头部信息,并对头部信息进行验证;
193.更换模块705,被配置为若确定头部信息通过验证,且根据第一累计时间和当前系统负载状态,确定需要更换加密算法,则获取第一加密算法,并将第一加密算法更换为第二加密算法;
194.二次加密模块706,被配置为使用第二加密算法对第一密文数据进行加密,得到第二密文数据,并将第二密文数据和报文头部组装成传输报文密文;
195.数据传输模块707,被配置为将传输报文密文传输至中转网关,以使中转网关对传输报文密文进行解密,得到明文升级数据,并将明文升级数据写入目标ecu,以使目标ecu使用明文升级数据进行升级刷写;或者,将传输报文密文传输至目标ecu,以使目标ecu对传输报文密文进行解密,得到明文升级数据,并使用明文升级数据进行升级刷写。
196.本技术实施例提供的技术方案,第一方面,通过对原始升级数据进行一次加密,得到第一密文数据,可以增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度;第二方面,通过验证报文头部的头部信息是否合法,可确保待传输的报文为正常报文,有利于提高ota升级刷写的安全性;第三方面,通过在头部信息验证通过的基础上,根据第一累计时间和当前系统负载状态,确定是否需要更换加密算法,可实现定期或不定期更换加密算法,进一步增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度,从而有效提高ota升级刷写的安全性。
197.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
198.图8是本技术实施例提供的一种vbox的结构示意图。如图8所示,该vbox,包括ota升级主控801;该ota升级主控801包括如图6所示的ota安全升级刷写装置。
199.本技术实施例提供的vbox,在进行ota升级刷写的过程中,一方面,通过对报文头部的头部信息进行验证,可确保升级报文为正常报文;另一方面,在确定数据传输通道时,启动计时器记录第一累计时间,并实时监测数据传输通道的当前系统负载状态,之后在头
部信息验证通过的前提下,进一步根据第一累计时间和当前系统负载状态,确定是否需要更换加密算法,从而可以实现定期或不定期更换加密算法,以增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度,从而有效提高ota升级刷写的安全性。
200.图9是本技术实施例提供的一种vbox的结构示意图。如图9所示,该vbox,包括ota升级主控901;该ota升级主控901包括如图7所示的ota安全升级刷写装置。
201.本技术实施例提供的vbox,第一方面,通过对原始升级数据进行一次加密,得到第一密文数据,可以增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度;第二方面,通过验证报文头部的头部信息是否合法,可确保待传输的报文为正常报文,有利于提高ota升级刷写的安全性;第三方面,通过在头部信息验证通过的基础上,根据第一累计时间和当前系统负载状态,确定是否需要更换加密算法,可实现定期或不定期更换加密算法,进一步增加在ota升级刷写的过程中升级刷写数据被第三方攻击、篡改或破解的难度,从而有效提高ota升级刷写的安全性。
202.图10是本技术实施例提供的电子设备10的示意图。如图10所示,该实施例的电子设备10包括:处理器1001、存储器1002以及存储在该存储器1002中并且可在处理器1001上运行的计算机程序1003。处理器1001执行计算机程序1003时实现上述各个方法实施例中的步骤。或者,处理器1001执行计算机程序1003时实现上述各装置实施例中各模块/单元的功能。
203.电子设备10可以是桌上型计算机、笔记本、掌上电脑及云端服务器等电子设备。电子设备10可以包括但不仅限于处理器1001和存储器1002。本领域技术人员可以理解,图10仅仅是电子设备10的示例,并不构成对电子设备10的限定,可以包括比图示更多或更少的部件,或者不同的部件。
204.处理器1001可以是中央处理单元(central processing unit,cpu),也可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
205.存储器1002可以是电子设备10的内部存储单元,例如,电子设备10的硬盘或内存。存储器1002也可以是电子设备10的外部存储设备,例如,电子设备10上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。存储器1002还可以既包括电子设备10的内部存储单元也包括外部存储设备。存储器1002用于存储计算机程序以及电子设备所需的其它程序和数据。
206.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
207.集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术实现上述实施例方法
中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-only memory,rom)、随机存取存储器(random access是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如,在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
208.以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表