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

车辆固件的升级任务发布方法、装置、服务器及存储介质与流程

2022-07-13 12:46:22 来源:中国专利 TAG:


1.本技术涉及车辆技术领域,特别涉及一种车辆固件的升级任务发布方法、装置、服务器及存储介质。


背景技术:

2.随着车联网的快速发展,ota(over the air,在线升级)功能逐渐成为车辆的必要功能之一,使得接入互联网的网联车辆可以利用ota功能对车载固件、车载应用程序以及车载系统配置等进行更新,提升更新的便捷性。其中,更新的过程为:网联车辆发送升级请求至服务器,云端通过互联网接口或者usb接口将升级包传输至网联汽车内。
3.然而,车辆固件升级时,云端通常采用固定的公私钥密码签名下发ota任务到车辆的ota客户端,由于密码不能随时更新或者定期更新,且仅有一组密码,因此密码容易泄露,同时在线密码容易被攻击,大大降低车辆固件升级的安全性。由于汽车ecu固件大部分都是oem供应商提供,有一些oem供应商保护隐私数据,而需要用自身的ota固件发布系统。因此有必要设计一套安全的ota升级策略,满足不同供应商的需求。


技术实现要素:

4.本技术提供一种车辆固件的升级任务发布方法、装置、服务器及存储介质,以解决相关技术中用于车辆固件升级任务的密码为固定密码,导致密码容易泄露,任务发布的方式单一且安全性较差,降低车辆固件升级的便捷性和安全性等问题。
5.本技术第一方面实施例提供一种车辆固件的升级任务发布方法,包括以下步骤:获取车辆的固件升级请求;根据所述固件升级请求中的密码库版本号匹配以及固件升级请求中的固件版本版本号来构造所述车辆的升级版本元数据文件;通过至少一个密码库元文件中的在线私钥对所述升级版本文件进行签名,将签名数据写入密码元文件中,并利用至少一个离线私钥对所密码元文件进行签名,并将签名数据写入密码元文件,同时根据升级请求中的固件版本号生成目标升级元描述文件,将该描述文件用至少一个以上的上述密码元文件中的密码对进行签名固件元数据和目标升级元文件;将签名加密后的目标升级元文件和新版本的密码本元文件链接下发至车辆,使得所述车辆下载密码本元文件,对升级目标任务进行校验,校验成功,下载升级固件包,并用升级目标文件中的签名数据和固件包进行签名验证,验证成功后以进行固件升级。
6.进一步地,所述通过至少一个密码本中的密钥对,采用在线方式对所述目标升级版本文件进行签名并对升级的ecu固件文件的元描述数据进行签名,将签名数据写入目标升级文件;包括:计算所述升级版本文件的散列值,并将所述升级版本文件的散列值写入所述目标升级任务发布文件的target任务节点中;升级目标元数据文件中描述的ecu固件版本的散列数据也会由在线密钥对进行签名。
7.进一步地,通过低版本的密码本对高版本的密码本进行验签的方式来分发密钥;包括:通过一个root的角色的一个或者一组密码对更高版本的密码本进行验签;其中,密码
本版本中的零版本作为基础版本,并具有自我验签功能。
8.进一步地,将签名后的所述目标升级任务发布文件发送至车辆之前,还包括:利用所述密码本中的至少一个在线私钥对目标升级任务的描述元数据进行签名,其中,签名阈值由密码本密码属性确定;计算所述描述性元数据的散列值、使用签名的算法名、签名值以及使用的签名密码标识,均写入目标升级描述元文件中描述性元数据的签名元素中。
9.进一步地,将签名后的所述升级任务发布文件发送至车辆之前,还包括:当所述目标升级版本文件包含原始设备制造商oem提供的升级描述元数据,在密码本云数据中获取所述oem的密钥对对该oem数据块进行签名,并写入该oem数据块的标识区内。
10.进一步,如果车辆密码本元数据版本升级到新的版本,车辆需要用上一版本的密码元数据对新版本进行认证。
11.本技术第二方面实施例提供一种车辆固件的升级任务发布装置,包括:获取模块,用于获取车辆的固件升级请求;匹配模块,用于根据所述固件升级请求匹配所述车辆的目标升级描述性元文件和密码本元文件;发布模块,用于通过至少一个在线私钥和至少一个离线私钥对所述密码本元文件进行签名,利用所述密码本元文件中对应的密码对所述目标升级描述元文件中的数据块进行签名;将签名后的目标升级任务发布文件发送至车辆,使得所述车辆依次验签所述密码本元文件以及使用所述密码本元文件对所述目标升级任务发布文件和下载的固件文件的散列进行签名验证,以进行固件升级。
12.进一步地,所述发布模块进一步用于通过一个root的角色的一个或者一组密码对更高版本的密码本进行验签;其中,密码本版本中的零版本作为基础版本,并具有自我验签功能。
13.进一步地,还包括:签名模块,用于将签名后的所述目标升级任务发布文件发送至车辆之前,利用所述密码本中的至少一个在线私钥对目标升级任务的描述元数据进行签名,其中,签名阈值由密码本密码属性确定;计算所述描述性元数据的散列值、使用签名的算法名、签名值以及使用的签名密码标识,均写入目标升级描述元文件中描述性元数据的签名元素中。
14.进一步地,将签名后的所述目标升级任务发布文件发送至车辆之前,当所述目标升级描述性元文件包括原始设备制造商oem提供的升级描述元数据时,所述描述元数据的验签密码标识来自密码本,且所述验签密码由所述oem提供。
15.进一步地,所述目标发布任务中包含多个数据区,ecu固件元数描述区,oem发布元数据描述区,目标发布任务签名区。其中,各个区中都有相应的密码元数据在线进行签名。
16.本技术第三方面实施例提供一种服务器,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如上述实施例所述的车辆固件的升级任务发布方法。
17.本技术第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于实现如上述实施例所述的车辆固件的升级任务发布方法。
18.由此,本技术至少具有如下有益效果:
19.使用离线钥匙和在线钥匙混合使用签名,离线钥匙泄露的可能性更低,使得被签名的ota任务更安全,同时采用多级别信任体系来对ota下发的任务进行签名,多人签名的安全性比一人签名的安全性更高,从而可以有效避免密码泄露,在线签名可以有助于提升
任务发布的便捷化,方便提高任务发布的效率;通过在线和离线同时进行任务发布的模式提高安全性和车辆固件升级的安全性;同时,在发布任务中给出oem升级描述区并用oem密码对进行签名,使得oem可以自主管控所属的ecu单元升级。由此,解决了用于车辆固件升级任务的密码固定密码,密码容易泄露,任务发布的安全性可扩展性较差,降低车辆固件升级的安全性等技术问题。
20.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
21.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
22.图1为根据本技术实施例提供的车辆固件的升级任务发布方法的流程示意图;
23.图2为根据本技术实施例提供的密码本验签流程图;
24.图3为根据本技术一个实施例提供的目标升级描述性元数据文件的生成流程图;
25.图4为根据本技术实施例提供的ota客户端解析目标文件的流程图;
26.图5为根据本技术实施例提供的车辆固件的升级任务发布装置的示例图;
27.图6为根据本技术实施例提供的服务器的结构示意图。
具体实施方式
28.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
29.目前,fota(车辆固件升级)通常采用固定的对称或者非对称证书,在车辆和云端之间认证,由于证书通常具有时效性,因此在证书失效或证书丢失时,均无法有效保证ota任务的安全性。另外,在oem(original equipment manufacturer,原始设备制造商)维护自己的ota升级包,往往需要主机厂提供私钥,利用该私钥签名之后才能完成升级包的维护,不仅升级维护十分不便,而且容易导致私钥泄露,降低升级的安全性,因此,目前无法提供oem供应商便捷的方式来发布自己的版本,降低发布的便捷性。
30.因此,为了解决车辆固件升级时,如何保证发布的ota任务的安全性和完整性,以及多层次供应商发布任务的完整性和安全性等问题,本技术实施例提供一套柔性可扩充多层次的ota任务发布方案,主机厂能够随时更新签名加密的密钥,oem也以用自己的密钥对对自己的升级包进行签名发布;同时为了保证钥匙的安全性,主机厂有多把钥匙,对任务进行签名;核心钥匙采用离线方式保存,有效保证钥匙库的安全性。
31.下面将参考附图描述本技术实施例的车辆固件的升级任务发布方法、装置、服务器及存储介质。具体而言,图1为本技术实施所提供的一种车辆固件的升级任务发布方法的流程示意图。
32.如图1所示,该车辆固件的升级任务发布方法包括以下步骤:
33.在步骤s101中,获取车辆的固件升级请求。
34.需要说明的是,本技术实施例的车辆固件的升级任务发布方法的执行主体为服务
器,其中你,服务器可以为ota云端等设备,对此不作具体限定。在以下实施例中,服务器以ota云端为例进行阐述。
35.可以理解的是,当车辆需要升级,例如车辆固件需要升级时,车辆的ota客户端可以发送升级请求至ota云端,以使得ota云端可以根据升级请求下发升级任务至车辆。
36.在步骤s102中,根据固件升级请求匹配车辆的目标升级描述性元文件和密码本元文件。
37.可以理解的是,ota云端可以根据固件升级请求从数据库中匹配对应的目标升级描述性元文件和密码本元文件。
38.在步骤s103中,通过至少一个在线私钥和至少一个离线私钥对密码本元文件进行签名,利用密码本元文件中对应的密码对目标升级描述元文件中的数据块进行签名;将签名后的目标升级任务发布文件发送至车辆,使得车辆依次验签密码本元文件以及使用密码本元文件对目标升级任务发布文件和下载的固件文件的散列进行签名验证,以进行固件升级。
39.其中,在线钥匙由ota云端针对一个车辆或者一组车辆通过在线的方式产生,在线钥匙可以为一组或多组,可以根据实际情况具体设置,对此不作具体限定。离线钥匙可以由ota主机通过离线方式生成,可以作为核心钥匙,由于离线钥匙泄露的可能性低,因此可以提升ota任务发布的安全性。
40.需要说明的是,本技术实施例可以利用私钥签名和公钥验签,其中,公钥和私钥成对出现,使用私钥对一段文字产生固定长度的签名;使用公钥对用私钥签名后的文字,进行解密和验证。
41.可以理解的是,本技术实施例可以通过离线主机生产一个离线钥匙,同时通过在线或者离线方式生产一组钥匙,并分别授权给几个管理员角色来对任务包进行签名,将签名之后的任务包下发给车辆的ota客户端,从而利用上述生成的几个钥匙对升级任务进行签名,有效保证通过网络下发给车辆的ota客户端的数据完整性和安全性,同时采用在线和离线多把钥匙,进一步保证ota发布的安全性,有效提升ota升级的安全性和可扩展性。
42.具体而言,本技术实施例可以通过至少一个在线私钥对升级任务密码本元文件进行签名,并将签名数据写入升级任务密码本元文件中,并利用至少一个离线私钥对升级任务密码本元文件进行签名,将签名数据写入升级任务密码本元文件;同时ota云端根据发布的密码本元数据对该车辆需要升级固件的描述数据进行签名生成目标任务文件,该目标任务文件包含上述的密码本元数据下载链接和目标任务元数据;车辆得到上述任务文件,依次下载密码本元文件以及目标任务中的可升级固件数据,并利用密码本数据对目标任务进行校验,同时对下载的ecu升级包和目标任务中的ecu描述数据进行校验,完全匹配后车端则进行ecu固件升级。
43.在本技术实施例中,将签名后的升级任务发布文件发送至车辆之前,还包括:利用至少一个在线私钥对密码本文件进行签名,并将签名写入密钥本文件的文件头中,其中,密码本文件头中包括至少一个在线公钥和至少一个离线公钥;目标升级任务发布文件对应着需要的密码本文件版本。
44.可以理解的是,ota云端生成一系列的钥匙对,将公钥赋予不同的角色用于做不同的验签任务;root角色的公钥用来验签验密钥本中其它角色;target角色的密码用来验签
目标升级文件;oem角色用来签名目标升级文件中的oem元数据;ecu角色用来签名目标升级文件中的ecu段中的元素;time角色用来验签时间服务器中的时间元素。每个密码元数据按hash编号、该密码的发布时间、过期时间、使用该密码签名时要求的最低签名次数等,其中,ota服务器必须为车端提供精准时间,通过time角色的私钥签名,车端ota client用time角色的验签公钥来验证time服务器发布的时间合法性;
45.ota 服务端会存储一个零版本的密码本,此版本为壹版本的密码本做验签;ota
46.服务端目标任务发布版本中的最低依赖密码版本从壹开始;车端ota client必须要规范下载相应的密码本并对新的密码本验签;
47.在本技术实施例中,密码本文件需要通过至少一个离线私钥签名;用该密码本中的角色对目标升级文件进行签名;一个密码本版本对应多个目标升级文件,在有必要更换密码本时,生成新的密码本,并用离线和在线公钥对密码本进行签名;同时新版本的密码本必须用上一个版本的root角色的密码验签;
48.可以理解的是,ota云端可以根据车辆已经安装的版本,从ota仓库中找到可以更新的镜像文件、该镜像经过密码本中的钥匙对签名的散列数据、该镜像的签名方法和生存周期以及目标ecu版本信息等,将这些镜像属性写入目标任务文件中的ecus数据区,ecus的属性包括用户自定义数据和通用属性,通用属性包括目标下载地址、目标文件hash、目标文件归属设备号等。其中,ecus是指目标升级任务区,ecu是指目标任务eucs区中的一个任务节点。
49.在本技术实施例中,将签名后的升级任务发布文件发送至车辆之前,还包括:当目标升级版本中包括原始设备制造商oem提供的升级版本描述信息,用密码本中来自oem供应商的oem角色的签名密码对oem升级段进行签名,使得oem升级描述任务不具有抵赖性。
50.可以理解的是,本技术实施例的安全策略可以嵌套发布车辆升级,让oem自己安全发布自己的升级包,具体地:如果有oem供应商固件需要升级,则在这个目标升级文件中包含oem段,oem段中有oem供应商要更新的地址,以及oem目标文件的签名,以及用到的签名公钥的标识码。
51.在本技术实施例中,ota客户端从ota云端下发的任务中,取出密码本中的公钥,来验签ota升级任务,且ota云端发布的每一个ota任务都有版本号,ota客户端通过云端下发的ota任务的版本和本地版本比较,确定升级内容是最新版本,预防升级任务被回退。
52.ota云端需要提供精准日期服务,并用密码本中的一个或者几个time角色的密码对进行签名;车端通过精确时间服务器来获得时钟,并用密码本密码校验,通过精确时间可以有效预防目标升级中的升级元素过期;
53.需要说明的是,车辆和车辆升级可以用到4g、5g等无线通讯,车上用uds协议或者doip等刷写协议发送固件包数据到相应的ecu,由该ecu写固件数据到相应的存储区。
54.下面将通过一个具体实施对车辆固件的升级任务发布方法进行阐述,以下实施例中包括生成密码本与目标升级文件的具体过程,如图2、图3和图4所示,具体包括以下步骤:
55.1)ota云端采生成一系列的钥匙对,将这些钥匙的公钥按照其本身的散列数据进行编号;同时从oem供应商获取公钥放入密码本中;将这些钥匙对分配至不同的验签任务;将上述的密码对私钥分成两部分:即一部分离线存储、另一部分在线存储;用上述的在线私钥和离线钥匙对密码本文件进行签名,并将签名数据写入密码本中。
56.2)密码有自身的属性,过期日期和生产日期,密码类型,验签阈值
57.3)从oem供应商处取到的一个或者多个公钥只用于密码本中的oem校色,只对oem的发布任务元数据进行签名;
58.4)ota云端根据车辆上报的已经安装的版本号,生成一个目标任务升级文件,如果oem供应商有需要升级版本,则在目标文件中写入oem标签属性和该oem升级的描述数据。
59.5)oem供应商按同样的方法生成自己的密码本和目标升级文件。
60.6)车辆的ota客户端上报自己安装的版本信息给ota云端并且附带递增的上报序列号,预防回滚攻击。
61.7)车辆的ota客户端从ota云端收到密码本下载描述文件和目标升级任务文件;
62.8)车辆的ota客户端如需要则下载密码本文件,并用上一个密码本对新密码本进行验签;
63.9)车辆的ota客户端用密码本中的密码对目前升级文件验签,并从下载地址中下载相应的固件,根据散列算法对固件进行计算获得散列数据并将该数据和描述文件中的散列进行比较;ecu升级描述元数据中有该任务的过期时间,ota车端则需要获得精准时间来校验是否过期;
64.10)ecu升级描述元数据有用户自定义数据,车辆ota客户端这些用户自定义数据进行校验,比如升级的前置条件,升级协议等。
65.11)车辆的ota客户端根据升级前置条件进行ecu升级;
66.12)车辆的ota客户端需要对目标文件的oem属性进行解析,从而嵌套下载安装
67.13)车辆的ota客户端将升级报告上报到ota服务云端。
68.综上,本技术实施例对ecu升级描述元数据和目标升级文件签名的钥匙不限于2把,由签名阈值来确定;验签时如果签名数量不满足阈值要求,则验签失败。
69.根据本技术实施例提出的车辆固件的升级任务发布方法,使用离线钥匙和在线钥匙混合使用签名,离线钥匙泄露的可能性更低,使得被签名的ota任务更安全,同时采用多级别信任体系来对ota下发的任务进行签名,多人签名的安全性比一人签名的安全性更高,从而可以有效避免密码泄露,提升任务发布的安全性,提升车辆固件升级的安全性。
70.其次参照附图描述根据本技术实施例提出的车辆固件的升级任务发布装置。
71.图5是本技术实施例的车辆固件的升级任务发布装置的方框示意图。
72.如图5所示,该车辆固件的升级任务发布装置10包括:获取模块100、匹配模块200和发布模块300。
73.其中,获取模块100用于获取车辆的固件升级请求;匹配模块200用于根据固件升级请求匹配车辆的目标升级描述性元文件和密码本元文件;发布模块300用于通过至少一个在线私钥和至少一个离线私钥对密码本元文件进行签名,利用密码本元文件中对应的密码对目标升级描述元文件中的数据块进行签名;将签名后的目标升级任务发布文件发送至车辆,使得车辆依次验签密码本元文件以及使用密码本元文件对目标升级任务发布文件和下载的固件文件的散列进行签名验证,以进行固件升级。
74.在本技术实施例中,发布模块300进一步用于通过一个root的角色的一个或者一组密码对更高版本的密码本进行验签;其中,密码本版本中的零版本作为基础版本,并具有自我验签功能。
75.在本技术实施例中,本技术实施例的装置10还包括:签名模块。其中,签名模块用于将签名后的目标升级任务发布文件发送至车辆之前,利用密码本中的至少一个在线私钥对目标升级任务的描述元数据进行签名,其中,签名阈值由密码本密码属性确定;计算描述性元数据的散列值、使用签名的算法名、签名值以及使用的签名密码标识,均写入目标升级描述元文件中描述性元数据的签名元素中。
76.在本技术实施例中,将签名后的目标升级任务发布文件发送至车辆之前,当目标升级描述性元文件包括原始设备制造商oem提供的升级描述元数据时,描述元数据的验签密码标识来自密码本,且验签密码由oem提供。
77.在本技术实施例中,目标发布任务中包含多个数据区,ecu固件元数描述区,oem发布元数据描述区,目标发布任务签名区。其中,各个区中都有相应的密码元数据在线进行签名
78.需要说明的是,前述对车辆固件的升级任务发布方法实施例的解释说明也适用于该实施例的车辆固件的升级任务发布装置,此处不再赘述。
79.根据本技术实施例提出的车辆固件的升级任务发布装置,使用离线钥匙和在线钥匙混合使用签名,离线钥匙泄露的可能性更低,使得被签名的ota任务更安全,同时采用多级别信任体系来对ota下发的任务进行签名,多人签名的安全性比一人签名的安全性更高,从而可以有效避免密码泄露,提升任务发布的安全性,提升车辆固件升级的安全性。
80.图6为本技术实施例提供的服务器的结构示意图。该车辆可以包括:
81.存储器601、处理器602及存储在存储器601上并可在处理器602上运行的计算机程序。
82.处理器602执行程序时实现上述实施例中提供的车辆固件的升级任务发布方法。
83.进一步地,服务器还包括:
84.通信接口603,用于存储器601和处理器602之间的通信。
85.存储器601,用于存放可在处理器602上运行的计算机程序。
86.存储器601可能包含高速ram(random access memory,随机存取存储器)存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
87.如果存储器601、处理器602和通信接口603独立实现,则通信接口603、存储器601和处理器602可以通过总线相互连接并完成相互间的通信。总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component,外部设备互连)总线或eisa(extended industry standard architecture,扩展工业标准体系结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
88.可选的,在具体实现上,如果存储器601、处理器602及通信接口603,集成在一块芯片上实现,则存储器601、处理器602及通信接口603可以通过内部接口完成相互间的通信。
89.处理器602可能是一个cpu(central processing unit,中央处理器),或者是asic(application specific integrated circuit,特定集成电路),或者是被配置成实施本技术实施例的一个或多个集成电路。
90.本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上的车辆固件的升级任务发布方法。
91.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
92.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
93.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
94.应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列,现场可编程门阵列等。
95.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献