OTA数据升级方法、系统、设备及存储介质与流程
未命名
07-13
阅读:110
评论:0
ota数据升级方法、系统、设备及存储介质
技术领域
1.本技术涉及车载通信技术领域,尤其涉及一种ota数据升级方法、系统、设备及存储介质。
背景技术:
2.随着汽车新四化即“电动化、网联化、智能化、共享化”的推进,汽车的电子化程度越来越高,软件控制成为智能联网汽车的重要组成部分。车企通过搭建ota(over-the-air technology,空中下载技术)升级平台以对接入车辆进行远程升级,满足用户对车辆控制功能更新、软件故障修复的需求。但ota数据升级面临诸多安全挑战,如在ota传输过程中极易被攻击者窃取数据包或者篡改数据包,进而造成信息泄露、被植入病毒等情况发生;或ota数据升级过程发生中断,使得车辆因升级失败引起的软件故障而无法运行等安全挑战。
3.目前车企通常的方案为使用tbox(telematics box,远程信息处理箱)端作为ota终端,tbox作为车联网系统中的一部分,其与云端服务器平台进行数据交互,以进行ota数据包的传输下载,但存储在软件中的密钥有可能通过逆向分析软件分析出来,进而被利用于对车辆进行攻击。而且tbox端下载完ota数据包后,需要通过车内网络总线如can总线对ecu(electronic control unit,电子控制单元)进行刷写,但该总线容易被非法通过obd(on-board diagnostic,车载诊断系统)接口进行访问,从而越过tbox端,对ecu的固件进行恶意刷写,危害整车安全。
4.因此,如何解决车辆的ecu在软件升级时的安全挑战问题,是本领域亟待解决的技术问题。
技术实现要素:
5.本技术提供了一种ota数据升级方法、系统、设备及存储介质,解决了在软件升级时的安全挑战问题,能够有效地提升ota数据升级的安全性,而且还能在数据出错时进行回滚,有助于车辆更好地实现ota数据升级。
6.第一方面,本技术提供了一种ota数据升级方法,应用于ota终端,ota终端与服务器通信连接,该方法包括:基于预设的数据加密流程加密当前的版本信息,向所述服务器上报加密后的版本信息,并等待所述服务器反馈升级任务信息;在接收到升级任务信息后,确定是否进行升级,并在确定进行升级时向所述服务器反馈升级回复信息,以使所述服务器生成随机校验码;在接收到所述服务器加密发送的随机校验码的情况下,基于预设的数据解密流程获取解密后的随机校验码,并根据所述随机校验码生成升级密钥;基于所述数据加密流程加密所述升级密钥,向所述服务器上报加密后的升级密钥;在接收到ota数据的情况下,根据所述升级密钥解密接收到的ota数据;
基于所记录的随机校验码和所述ota数据携带的随机校验码,对解密后的所述ota数据进行校验,以选取通过校验的ota数据;存储通过校验的ota数据,并对历史数据进行备份存储,以在升级失败后进行数据回滚,所述历史数据为对应所述ota数据的前一版本的数据。
7.第二方面,本技术还提供了一种ota数据升级方法,应用于服务器,服务器与ota终端通信连接,服务器与ota终端使用相同的数据加密流程和数据解密流程,该方法包括:接收到ota终端上报的版本信息,并基于预设的数据解密流程解密版本信息以进行版本比对,确定是否反馈升级任务信息;在反馈升级任务信息后,等待ota终端反馈升级回复信息;在接收到携带升级标识的升级回复信息的情况下,根据ota终端对应的特征信息生成随机校验码,并基于数据加密流程,加密随机校验码以向ota终端发送加密后的随机校验码;当接收ota终端基于随机校验码生成的升级密钥,基于升级密钥加密ota数据,并以向ota终端发送加密后的ota数据。
8.第三方面,本技术还提供了一种ota数据升级系统,其包括:服务器,包括加解密模块、密钥管理模块、ota数据管理模块和第一网络通信模块,加解密模块用于对待发送的数据进行加密以及对接收的数据进行解密;密钥管理模块存储有用于加解密的公钥和私钥;ota数据管理模块用于存储ota数据,第一网络通信模块用于收发数据;ota终端,包括第二网络通信模块、车载网关以及包括ecu主控芯片和安全芯片的ecu模块,第二网络通信模块用于与第一网络通信模块通信连接以进行数据收发;车载网关用于提供外部网络与ecu模块之间的安全通信;ecu主控芯片用于对设备进行ota数据升级;安全芯片用于存储用于加解密的公钥和私钥以及对数据进行加解密。
9.第四方面,本技术还提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,一个或多个处理器实现如上述的ota数据升级方法。
10.第五方面,本技术还提供了一种存储介质,其存储有计算机可执行指令,计算机可执行指令在由处理器执行时用于执行如上述的ota数据升级方法。
11.本技术中ota终端与服务器进行交互,以确定是否需要升级,并在确定升级后接收随机校验码以生成升级密钥,ota终端向服务器反馈升级密钥以使服务器基于升级密钥加密ota数据,因此,ota终端能够根据升级密钥解密接收到的数据以得到ota数据,并对数据进行存储,以使得ota终端能够实现ota数据升级。服务器生成的随机校验码和ota终端生成的升级密钥均具有随机性,有效地降低信息泄露的风险,避免了第三方的攻击和数据篡改,进而提升每次ota数据升级时的安全性,而且还能在数据出错时进行回滚,有助于车辆更好地实现ota数据升级。
附图说明
12.图1为本技术一实施例提供的ota数据升级系统的结构示意图。
13.图2为本技术一实施例提供的ota数据升级方法的步骤流程图。
14.图3为本技术一实施例提供生成升级密钥的步骤流程图。
15.图4为本技术一实施例提供的数据加密的步骤流程图。
16.图5为本技术一实施例提供的数据解密的步骤流程图。
17.图6为本技术另一实施例提供的ota数据升级方法的步骤流程图。
18.图7为本技术一实施例提供的生成随机校验码的步骤流程图。
19.图8为本技术一实施例提供的电子设备的结构示意图。
具体实施方式
20.下面结合附图和实施例对本技术实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术实施例,而非对本技术实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术实施例相关的部分而非全部结构,本领域技术人员在阅读本技术说明书后,应该能够想到,只要技术特征不互相矛盾,那么技术特征的任意组合均可以构成可选的实施方式。
21.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。在本技术的描述中,“多个”表示两个及以上,“若干”表示一个及以上。
22.用户需要对车辆进行软件更新、修复等操作时,可在车辆上通过其上搭载的ota终端进行软件的远程升级。本技术提供了一种ota数据升级系统,该ota数据升级系统包括服务器和ota终端,服务器与ota终端通信连接,以进行数据传输,应当想到的是,所传输的数据不仅仅包括ota数据,还可以是服务器与ota终端之间的交互信息,如升级任务信息、升级回复信息等。
23.图1为本技术一实施例提供的ota数据升级系统的结构示意图,如图所示,图中以虚线表示ota数据升级系统中的服务器与ota终端之间的通信连接关系。服务器包括加解密模块、密钥管理模块、ota数据管理模块和第一网络通信模块。可以理解的是,加解密模块作为对数据进行加解密的模块,即其可用于对待发送的数据进行加密以及对接收的数据进行解密,而密钥管理模块中存储有用于加解密的公钥和私钥,可以想到的是,加解密模块通过调用密钥管理模块中的密钥以对数据进行加密和解密。
24.此外,第一网络通信模块则用于与ota终端进行通信连接,以实现数据的收发,具体地,第一网络通信模块与ota终端的第二网络通信模块进行通信连接。ota数据管理模块用于存储ota数据,可以想到的是,ota数据管理模块还用于控制对ota数据的加密和下发,即ota数据管理模块通过相应的接口和总线连接加解密模块、密钥管理模块以及第一网络通信模块,进而以所存储的密钥对ota数据进行加密并向ota数据发送。
25.而ota数据升级系统的ota终端包括第二网络通信模块、车载网关以及ecu模块,其中,ecu模块包括ecu主控芯片和安全芯片。ota终端是通过第二网络通信模块与第一网络通
信模块之间的通信连接实现其与服务器之间的数据交互的。车载网关用于提供外部网络与ecu模块之间的安全通信,可以理解的是,车载网关在ota终端内各模块之间信息互通中起到协调作用,即其用于协调各模块之间的信息交互以使得ecu模块能够与外部网络如服务器实现安全通信。
26.在ecu模块中,ecu主控芯片可用于对设备进行ota数据升级,可以想到的是,在车辆中,各设备如空调、音响等设备的控制软件均可通过ecu主控芯片进行升级。当然,在ecu模块中,安全芯片用于存储用于进行加解密的公钥和私钥,而且安全芯片还可以用于对数据进行加解密。应当想到的是,上述各模块所实现的功能包括但不限于上述功能。
27.由上述方案可知,ota终端能够利用安全芯片提供加解密与认证服务,并且密钥均存储在安全芯片中,增大了盗窃密钥的难度,使得数据安全性得到提升;而且服务器通过第一网络通信模块与ota终端进行数据交互,以接收ota终端生成的升级密钥,并对ota数据进行加密,确保了ota数据的安全性,有助于为用户提供更安全的ota数据升级方案。
28.对此,在ota终端中应用相应的ota数据升级方法,以实现ota终端中的软件升级。图2为本技术一实施例提供的ota数据升级方法的步骤流程图,该方法应用于ota数据升级系统中的ota终端,如图所示,本技术的ota数据升级方法还包括如下步骤:步骤s210、基于预设的数据加密流程加密当前的版本信息,向服务器上报加密后的版本信息,并等待服务器反馈升级任务信息。
29.对于ota终端来说,其通过向服务器上报版本信息以确定是否需要升级。可以想到的是,该版本信息可包括控制软件的应用程序标识符和版本号,以便于服务器判断对应的控制软件是否需要更新。例如,对比该应用程序标识符对对应的最新版本号,进而判断是否需要更新。当然,在上报版本信息之前,还可对数据基于预设的数据加密流程进行加密,从而再传输至服务器中,以避免信息的泄露。
30.在服务器经过判断处理后,会向ota终端反馈升级任务信息。因此,ota终端在发送版本信息后,即开启等待任务,以等待服务器反馈升级任务信息。
31.步骤s220、在接收到升级任务信息后,确定是否进行升级,并在确定进行升级时向服务器反馈升级回复信息,以使服务器生成随机校验码。
32.在接收到升级任务信息后,并且ota中终端确定进行升级后,则ota终端会向服务器反馈升级回复信息,以确定可以进行升级,并且升级回复信息可供服务器生成随机校验码。
33.需要说明的是,ota终端在确定是否进行升级时,可以由ota终端根据车辆的使用状态来确定是否进行升级,以在暂停使用时进行升级。当然,ota终端还可以通过车载的显示屏通知用户当前存在新版本,以便于用户确定是否进行升级。
34.步骤s230、在接收到服务器加密发送的随机校验码的情况下,基于预设的数据解密流程获取解密后的随机校验码,并根据随机校验码生成升级密钥。
35.可以想到的是,服务器在生成随机校验码后,对随机校验码进行加密后发送。当ota终端接收到该随机校验码时,ota终端会根据预设的数据解密流程解密并获取随机校验码。ota终端根据随机校验码生成升级密钥,而且该随机校验码还会存储至相应的存储位置,以便于后续进行校验。
36.步骤s240、基于数据加密流程加密升级密钥,向服务器上报加密后的升级密钥。
37.可以理解的是,对于升级密钥,ota终端需要对升级密钥进行加密,如基于预设的数据加密流程对其进行加密。需要说明的是,在发送升级密钥的过程中,则是采用非对称式加密方式。因此,方案能够更好地保护升级密钥,避免升级密钥的泄露。而且可以想到的是,在ota数据升级系统中对ota数据采用的是对称式加密方式,即在加解密的过程中使用相同的密钥(升级密钥)进行加解密,例如,采用国密sm4对称加密算法进行加解密。当然,对于所采用的对称加解密算法还可以是des(data encryption standard,数据加密标准)算法等。
38.步骤s250、在接收到ota数据的情况下,根据升级密钥解密接收到的ota数据。
39.服务器是根据升级密钥对ota数据进行加密,因此,当ota终端接收到ota数据时,同样采用升级密钥解密接收到的数据包,从而获取用于升级的ota数据。值得注意的是,与服务器通信连接的ota终端可以是多个,不同的ota终端所对应的升级密钥是不同的,即使ota终端接收到错误的ota数据,也无法解密数据包,从而有效地避免错误了数据影响ota终端更新。
40.步骤s260、基于所记录的随机校验码和ota数据携带的随机校验码,对解密后的ota数据进行校验,以选取通过校验的ota数据。
41.在ota数据中还携带有随机校验码,当ota终端接收到该数据后,对其解析得到该随机校验码,进而将该随机校验码与ota终端中记录的随机校验码进行比对,以实现对解密后的ota数据的校验。而且ota终端选取通过校验的ota数据进行存储,可以理解的是,当上述的两个随机校验码相同,可确定该ota数据通过校验。
42.步骤s270、存储通过校验的ota数据,并对历史数据进行备份存储,以在升级失败后进行数据回滚。
43.在存储ota数据后,会对历史数据进行备份存储,历史数据为对应ota数据的前一版本的数据,即该历史数据仍存储在ota终端的存储装置中并不清除处理。可以想到的是,在每次ota数据升级时,ota终端采用新的ota数据进行升级,但仍保留上一版本的数据,以便于在升级失败后,采用上一版本的数据进行数据回滚,即使得软件版本恢复为更新前的版本,确保设备不会因升级失败而宕机,有效地减少了升级失败的影响。
44.由上述方案可知,ota终端能够利用安全芯片提供加解密与认证服务,并且密钥均存储在安全芯片中,增大了盗窃密钥的难度,使得数据安全性得到提升;而且服务器通过与ota终端的数据交互,可生成具有随机性的随机校验码,而且ota终端中在接收到随机校验码后生成同样具有随机性的升级密钥,并且服务器能够基于升级密钥加密ota数据,因此,每次ota数据升级时所采用的升级密钥均不相同,有效地减少了密钥泄露的可能,进一步增强了ota数据升级的安全性。
45.图3为本技术一实施例提供生成升级密钥的步骤流程图,在一实施例中,对于升级密钥,ota终端根据接收到的随机校验码生成,如图所示,本技术的ota数据升级方法还包括如下步骤:步骤s310、在获取到解密后的随机校验码后,校验并拆分随机校验码,以获取具有相同字节数的第一随机码和第二随机码。
46.步骤s320、随机生成与第一随机码的字节数相同的随机密钥。
47.步骤s330、对随机密钥、第一随机码以及第二随机码进行异或运算,以生成升级密钥。
48.可以理解的是,当随机校验码作为一个多字节的组合,ota终端对其进行校验,进而将通过校验的随机校验码拆分为相同字节数的两个随机码,例如,按照随机校验码中各码字的排列顺序,选取前半部分码字作为第一随机码,而后半部分作为第二随机码。此外,ota终端还生成与第一随机码、第二随机码具有相同字节数的随机密钥。
49.示例性的,随机校验码h(m
flag
)为一个32byte的数据,本方案会将其拆分为两个16byte的随机码,如第一随机码ck1(h(m
flag
)
0-15
)与第二随机码ck2(h(m
flag
)
16-31
),其中0-15、16-31表示为所包括的字节;ota终端还会随机生成一个16byte的随机密钥key。
50.ota终端将key与ck1(h(m
flag
)
0-15
)、ck2(h(m
flag
)
16-31
)进行异或运算得出一个16byte的升级密钥upkey,具体如下式所示:而且,ecu模块将升级密钥upkey同步上传至服务器,后续的ota数据将使用该upkey来调用国密sm4对称加密算法加密并由服务器发送至ota终端。
51.因此,方案利用具有随机性的随机校验码生成升级密钥,使得升级密钥同样具有随机性,有效避免重复生成相同的密钥,即每次ota数据升级所采用的升级密钥均不相同,有助于降低逆向分析出密钥的可能,进一步提升了ota数据升级的安全性。
52.在一实施例中,在服务器和ota终端中均存储有公钥和私钥,以用于进行数据加密和数据解密,但两者所存储的公钥和私钥并不相同,其中,服务器的公钥与ota终端的私钥对应为第一非对称密钥对,服务器的私钥与ota终端的公钥对应为第二非对称密钥对。
53.在进行数据加密过程,设备如服务器或ota终端会采用自身存储的私钥加密数据以生成数字签名,并且还对数据采用自身存储的公钥加密数据,进而整合两次加密后的数据,并将整合后的数据包向接收端发送。具体如图4所示,图4为本技术一实施例提供的数据加密的步骤流程图,其包括如下步骤:步骤s410、根据所存储的公钥,对待加密数据进行加密,以获取密文数据。
54.步骤s420、基于sm3加密算法,对待加密数据进行哈希摘要计算,以获取摘要信息。
55.步骤s430、根据所存储的私钥,对摘要信息进行加密,以获取数字签名。
56.步骤s440、结合密文数据和数字签名,生成加密后的数据。
57.可以理解的是,待加密数据可以是升级任务信息、升级回复信息、随机校验码等,设备采用所存储的公钥并基于相应的加密算法加密,例如采用国密sm2加密算法进行加密,从而得到密文数据。而且设备还会对待加密数据进行哈希摘要计算,如基于sm3加密算法提取对应的摘要信息,此外,还对该摘要信息采用私钥对其进行加密,例如采用国密sm2加密算法进行加密,以获取数字签名。最后,整合密文数据和数字签名,并将整合后的数据作为加密数据向接收端发送。
58.例如,ota终端中存储公钥key1_pubk和私钥key2_prik,而服务器中存储公钥key2_pubk和私钥key1_prik。因此,对于ota终端来说,其在加密过程采用公钥key1_pubk对待加密数据加密生成密文数据,并采用私钥key2_prik对摘要信息生成数字签名。
59.因此对于ota终端与服务器之间的数据交互,使用预置的非对称密钥来进行加密与签名,如使用公钥加密明文以及私钥加密生成数字签名,确保了数据的安全性与对象的唯一性,以使在发送升级密钥时,基于非对称密钥,有助于ota终端实现端到端的确认,使得ota终端能够明确作为发送方的服务器,有效地避免了第三方介入的可能,提升了ota数据
升级的安全性。
60.对于数据解密的过程,其为上述的数据加密的逆过程,同样是基于上述的公钥和私钥进行解密,具体如图5所示,图5为本技术一实施例提供的数据解密的步骤流程图,其包括如下步骤:步骤s510、根据所存储的公钥,对加密后的数据中的数字签名进行解密,以获取第一摘要信息。
61.步骤s520、根据所存储的私钥,对加密后的数据中的密文数据进行解密,以获取待加密数据。
62.步骤s530、基于sm3加密算法,对待加密数据进行哈希摘要计算,以获取第二摘要信息。
63.步骤s540、根据第一摘要信息和第二摘要信息的比对结果,确定待加密数据是否可信。
64.步骤s550、若待加密数据可信,则存储待加密数据。
65.可以理解的是,ota终端采用其上存储的公钥对接收到的加密数据中的数字签名进行解密,从而获取第一摘要信息。而且ota终端还根据所存储的私钥来解密加密数据中的密文数据,从而得到原本的待加密数据,即明文数据。ota终端还对明文数据进行哈希摘要计算,进而得到第二摘要信息。
66.ota终端比对第一摘要信息和第二摘要信息,并根据比对结果,确定明文数据是否可信,如第一摘要信息和第二摘要信息相同,则数据是可信的,则存储该明文数据;而若数据是不可信的,则舍弃该数据。
67.应当想到的是,同样地,ota终端中存储公钥key1_pubk和私钥key2_prik,对于ota终端来说,其在解密过程中,可采用公钥key1_pubk解密数字签名,并采用私钥key2_prik解密密文数据。
68.因此,ota终端可通过解密数字签名和密文数据,ota终端能够明确作为发送方的服务器,实现端到端的确认,有效地避免了第三方介入的可能,提升了ota数据升级的安全性。
69.在一些实施例中,ota终端会在升级失败后进行数据回滚,即ota终端会对历史数据进行备份存储,以便于在升级失败后进行数据回滚。在ota数据的存储装置中,其存储空间包括至少两个程序空间,该程序空间用于存储ota数据。
70.在接收到ota数据后,ota终端将ota数据存储在空置的程序空间中,而对于不存在空置的程序空间的情况下,ota终端将ota数据存储在前两个版本的数据所在的程序空间,可以想到的是,该程序空间先前存储的数据均被清除,以便于存储新的ota数据。值得注意的是,另一程序空间中存储有对应接收到的ota数据的上一版本的数据,如上一版本的固件程序。
71.即每一次ota数据升级时,在程序空间中均不会清除历史数据,而是将其作为备份,因此,在每次ota数据升级完成后,两个程序空间中分别存储用当前版本的数据和上一版本的数据。当ota终端以接收到的ota数据进行升级时,若升级失败,则ota终端可以根据历时数据进行数据回滚,使得软件版本恢复为更新前的版本。
72.因此,通过上述的存储机制,方案能够在两个程序空间互为备份,以便于进行版本
回滚,降低了ecu模块出现软件故障的可能性,有效地提升了ecu模块的稳定性,使得ota数据升级更加安全、可靠。
73.图6为本技术另一实施例提供的ota数据升级方法的步骤流程图,应用于ota数据升级系统中的服务器,为了向ota终端提供ota数据,服务器还会执行相应的步骤流程,以提高ota数据的安全性。如图6所示,本技术的ota数据升级方法还包括如下步骤:步骤s610、接收到ota终端上报的版本信息,并基于预设的数据解密流程解密版本信息以进行版本比对,确定是否反馈升级任务信息。
74.在服务器接收到ota终端上报的版本信息后,服务器对其进行解密,从而获取相应的版本信息,如版本号等,进而进行版本比对,在存在新的版本时,服务器可向ota终端反馈升级任务信息。
75.可以想到的是,服务器与ota终端使用相同的数据加密流程和数据解密流程,即服务器中存储公钥key2_pubk和私钥key1_prik,对于服务器来说,其在加密过程采用公钥key2_pubk对待加密数据加密生成密文数据,并采用私钥key1_prik对摘要信息生成数字签名;而其在解密过程采用公钥key2_pubk解密数字签名,并采用私钥key1_prik解密密文数据。
76.步骤s620、在反馈升级任务信息后,等待ota终端反馈升级回复信息。
77.当然,在发送ota数据之前,还需要等待ota终端的反馈,即服务器在发送了升级任务信息后,开始等待ota终端反馈升级回复信息,以便于服务器确认是否进行升级。
78.步骤s630、在接收到携带升级标识的升级回复信息的情况下,根据ota终端对应的特征信息生成随机校验码,并基于数据加密流程,加密随机校验码以向ota终端发送加密后的随机校验码。
79.升级回复信息包括升级标识和特征信息,可以理解的是,当ota终端确定需要进行升级时,其在反馈的升级回复信息中会携带升级标识,以供服务器在接收到该升级回复信息后,获悉升级标识,进而确定进行升级。
80.在确定升级后,服务器还根据特征信息生成随机校验码,并且基于对应的数据加密流程对随机校验码进行加密,服务器再将加密后的随机校验码发送至ota端,以供ota终端生成升级密钥。
81.步骤s640、当接收ota终端基于随机校验码生成的升级密钥,基于升级密钥加密ota数据,并向ota终端发送加密后的ota数据。
82.在ota终端生成升级密钥后,其会向服务器发送升级密钥,而服务器接收到该升级密钥后,根据升级密钥对ota数据进行加密,并且服务器向ota终端发送加密后的ota数据,以供ota终端进行升级。
83.需要说明的是,对于ota数据的加密,服务器可以采用国密sm4对称加密算法进行加密,当然还可以是des算法等对称加密算法。
84.由上述方案可知,服务器随机生成的随机密钥具有随机性,降低了被第三方模仿并篡改ota数据的可能,而且使用随机生成的升级密钥加密ota数据包,加强了ota数据升级时的安全性,还可以减少系统资源的开销,提升ota数据下载速度。
85.图7为本技术一实施例提供的生成随机校验码的步骤流程图,在一实施例中,服务器需要结合ota终端上报的特征信息生成相应的随机校验码,如图所示,本技术的ota数据
升级方法还包括如下步骤:步骤s710、获取服务器标识号以及当前的时间戳。
86.步骤s720、根据车辆识别代码、芯片标识号、服务器标识号以及时间戳,组合生成目标识别码。
87.步骤s730、基于sm3加密算法,对目标识别码进行哈希摘要计算,以生成随机校验码。
88.步骤s740、根据数据加密流程,加密随机校验码并向ota终端发送加密后的随机校验码。
89.ota终端上报的特征信息包括车辆的车辆识别代码以及ota终端中安全芯片对应的芯片标识号。服务器还需要获取服务器标识号和当前的时间戳,进而根据车辆识别代码、芯片标识号、服务器标识号以及时间戳,服务器能够组合上述参数并生成目标识别码。服务器通过对目标识别码进行哈希摘要计算,从而生成随机校验码。当然,服务器还需要基于上述的数据加密流程,对随机校验码进行加密后再发送至ota终端。
90.例如,服务器根据收到的ecu模块上传的特征信息如车辆识别代码vin、安全芯片的芯片标识号uid,以及本身服务器的服务器标识号server_id、当前的时间戳unix_time,按照组合规则组合成一串具有身份标识以及时间戳的目标识别码m
flag
,本方案组合规则如下,其中||为连接符:随后服务器使用sm3加密算法对m
flag
进行哈希摘要计算出一个32byte的随机校验码h(m
flag
)。
91.需要说明的是,在一些实施例中,服务器可将随机校验码h(m
flag
)与unix_time一同加密下发至ecu模块。ecu模块中的ecu主控芯片接收到数据后调用安全芯片进行解密,从而获取到数据随机校验码h(m
flag
)与时间戳unix_time。在结合上述信息以及预置的服务器标识号后,ota终端可根据相同的组合规则组合数据m
ck
:因此,ota终端可调用安全芯片的sm3加密算法对m
ck
进行哈希摘要计算出另一个32byte的校验码h(m
ck
),进而判断h(m
flag
)与h(m
ck
)是否一致来判断ota数据的准确性与安全性。
92.因此,车辆识别代码vin与安全芯片芯片标识号uid可以使ecu模块判断本次ota数据的目标是否为自身,避免升级了错误固件导致ecu模块运行失败;服务器标识号server_id可以让ecu模块判断ota数据是否来自可信的服务器,避免被第三方非法平台发送非法固件;而时间戳unix_time可以使随机校验码具备随机性效果,增加了随机校验码的安全性,有助于提高升级密钥的随机性,更好地提升升级密钥的安全性。
93.图8为本技术一实施例提供的电子设备的结构示意图,该设备用于执行如上述实施例提供的ota数据升级方法,并具备执行方法相应的功能模块和有益效果。如图所示,其包括处理器801、存储器802、输入装置803和输出装置804。处理器801的数量可以是一个或多个,图中以一个处理器801为例;处理器801、存储器802、输入装置803和输出装置804可以通过总线或其他方式连接,图中以通过总线连接为例。存储器802作为一种计算机可读的存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本技术实施例中的ota数据
升级方法对应的程序指令/模块。处理器801通过运行存储在存储器802中的软件程序、指令以及模块,从而执行相应的各种功能应用以及数据处理,即实现上述的ota数据升级方法。
94.存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据使用过程中所记录或创建的数据等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
95.输入装置803可用于向处理器801输入相应的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入;输出装置804可用于发送或显示与设备的用户设置以及功能控制有关的键信号输出。
96.本技术实施例还提供一种存储有计算机可执行指令的存储介质,计算机可执行指令在由处理器执行时用于执行本技术任一实施例提供的ota数据升级方法中的相关操作。
97.计算机可读的存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
98.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
99.注意,上述仅为本技术的较佳实施例及所运用技术原理。本领域技术人员会理解,本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,而本技术的范围由所附的权利要求范围决定。
技术特征:
1.一种ota数据升级方法,其特征在于,应用于ota终端,所述ota终端与服务器通信连接,所述方法包括:基于预设的数据加密流程加密当前的版本信息,向所述服务器上报加密后的版本信息,并等待所述服务器反馈升级任务信息;在接收到升级任务信息后,确定是否进行升级,并在确定进行升级时向所述服务器反馈升级回复信息,以使所述服务器生成随机校验码;在接收到所述服务器加密发送的随机校验码的情况下,基于预设的数据解密流程获取解密后的随机校验码,并根据所述随机校验码生成升级密钥;基于所述数据加密流程加密所述升级密钥,向所述服务器上报加密后的升级密钥;在接收到ota数据的情况下,根据所述升级密钥解密接收到的ota数据;基于所记录的随机校验码和所述ota数据携带的随机校验码,对解密后的所述ota数据进行校验,以选取通过校验的ota数据;存储通过校验的ota数据,并对历史数据进行备份存储,以在升级失败后进行数据回滚,所述历史数据为对应所述ota数据的前一版本的数据。2.根据权利要求1所述的ota数据升级方法,其特征在于,所述在接收到所述服务器加密发送的随机校验码的情况下,基于预设的数据解密流程获取解密后的所述随机校验码,并根据所述随机校验码生成升级密钥,包括:在获取到解密后的所述随机校验码后,校验并拆分所述随机校验码,以获取具有相同字节数的第一随机码和第二随机码;随机生成与所述第一随机码的字节数相同的随机密钥;对所述随机密钥、所述第一随机码以及所述第二随机码进行异或运算,以生成所述升级密钥。3.根据权利要求1所述的ota数据升级方法,其特征在于,所述服务器和所述ota终端内均存储有公钥和私钥,且所述服务器的公钥与所述ota终端的私钥对应为第一非对称密钥对,所述服务器的私钥与所述ota终端的公钥对应为第二非对称密钥对;所述数据加密流程包括:根据所存储的公钥,对待加密数据进行加密,以获取密文数据;基于sm3加密算法,对所述待加密数据进行哈希摘要计算,以获取摘要信息;根据所存储的私钥,对所述摘要信息进行加密,以获取数字签名;结合所述密文数据和所述数字签名,生成加密后的数据。4.根据权利要求1所述的ota数据升级方法,其特征在于,所述服务器和所述ota终端内均存储有公钥和私钥,且所述服务器的公钥与所述ota终端的私钥对应为第一非对称密钥对,所述服务器的私钥与所述ota终端的公钥对应为第二非对称密钥对;所述数据解密流程包括:根据所存储的公钥,对加密后的数据中的数字签名进行解密,以获取第一摘要信息;根据所存储的私钥,对加密后的数据中的密文数据进行解密,以获取待加密数据;基于sm3加密算法,对所述待加密数据进行哈希摘要计算,以获取第二摘要信息;根据所述第一摘要信息和所述第二摘要信息的比对结果,确定所述待加密数据是否可信;
若所述待加密数据可信,则存储所述待加密数据。5.根据权利要求1所述的ota数据升级方法,其特征在于,所述ota终端的存储空间包括至少两个程序空间;所述存储通过校验的ota数据,并对历史数据进行备份存储,以在升级失败后进行数据回滚,包括:在接收到通过校验的ota数据后,将所述ota数据存储在空置的程序空间或存储有前两个版本的数据的程序空间,并在另一程序空间备份存储所述历史数据;若存在以所述ota数据进行升级且升级失败的情况,则根据所述历史数据进行数据回滚。6.一种ota数据升级方法,其特征在于,应用于服务器,所述服务器与ota终端通信连接,所述服务器与所述ota终端使用相同的数据加密流程和数据解密流程,所述方法包括:接收到所述ota终端上报的版本信息,并基于预设的数据解密流程解密所述版本信息以进行版本比对,确定是否反馈升级任务信息;在反馈所述升级任务信息后,等待所述ota终端反馈升级回复信息;在接收到携带升级标识的升级回复信息的情况下,根据所述ota终端对应的特征信息生成随机校验码,并基于所述数据加密流程,加密所述随机校验码以向所述ota终端发送加密后的随机校验码;当接收所述ota终端基于所述随机校验码生成的升级密钥,基于所述升级密钥加密ota数据,并向所述ota终端发送加密后的ota数据。7.根据权利要求6所述的ota数据升级方法,其特征在于,所述特征信息包括车辆识别代码和所述ota终端的安全芯片对应的芯片标识号;所述在接收到携带升级标识的升级回复信息的情况下,根据所述ota终端对应的特征信息生成随机校验码,并基于所述数据加密流程,加密所述随机校验码以向所述ota终端发送加密后的随机校验码,包括:获取服务器标识号以及当前的时间戳;根据所述车辆识别代码、所述芯片标识号、所述服务器标识号以及所述时间戳,组合生成目标识别码;基于sm3加密算法,对所述目标识别码进行哈希摘要计算,以生成所述随机校验码;根据所述数据加密流程,加密所述随机校验码并向所述ota终端发送加密后的随机校验码。8.一种ota数据升级系统,其特征在于,包括:服务器,包括加解密模块、密钥管理模块、ota数据管理模块和第一网络通信模块,所述加解密模块用于对待发送的数据进行加密以及对接收的数据进行解密;所述密钥管理模块存储有用于加解密的公钥和私钥;所述ota数据管理模块用于存储ota数据,所述第一网络通信模块用于收发数据;ota终端,包括第二网络通信模块、车载网关以及包括ecu主控芯片和安全芯片的ecu模块,所述第二网络通信模块用于与所述第一网络通信模块通信连接以进行数据收发;所述车载网关用于提供外部网络与所述ecu模块之间的安全通信;所述ecu主控芯片用于对设备进行ota数据升级;所述安全芯片用于存储用于加解密的公钥和私钥以及对数据进行加解
密。9.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个所述程序被一个或多个所述处理器执行,一个或多个所述处理器实现如权利要求1至7中任一项所述的ota数据升级方法。10.一种存储计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由处理器执行时用于执行如权利要求1至7中任一项所述的ota数据升级方法。
技术总结
本申请提供了一种OTA数据升级方法、系统、设备及存储介质,涉及车载通信技术领域,方案中OTA终端与服务器进行交互,以确定是否需要升级,并在接收随机校验码后生成升级密钥,OTA终端向服务器反馈升级密钥以使服务器基于升级密钥加密OTA数据,因此,OTA终端能够根据升级密钥解密接收到的数据以得到OTA数据,并对数据进行存储,以使得OTA终端能够实现OTA数据升级。服务器生成的随机校验码和OTA终端生成的升级密钥均具有随机性,有效地降低信息泄露的风险,避免了第三方的攻击和数据篡改,进而提升每次OTA数据升级时的安全性,而且还能在数据出错时进行回滚,有助于车辆更好地实现OTA数据升级。OTA数据升级。OTA数据升级。
技术研发人员:王礼宇 陈家劲 李杰 董文强
受保护的技术使用者:广州万协通信息技术有限公司
技术研发日:2023.06.09
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
