CN115828324A - 一种软件包检验方法、装置及电子设备 - Google Patents

一种软件包检验方法、装置及电子设备 Download PDF

Info

Publication number
CN115828324A
CN115828324A CN202211534255.7A CN202211534255A CN115828324A CN 115828324 A CN115828324 A CN 115828324A CN 202211534255 A CN202211534255 A CN 202211534255A CN 115828324 A CN115828324 A CN 115828324A
Authority
CN
China
Prior art keywords
software package
integrity
metric value
controller
calculating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211534255.7A
Other languages
English (en)
Inventor
张琳
黄正瑜
刘平
窦笑月
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Changan Automobile Co Ltd
Original Assignee
Chongqing Changan Automobile Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chongqing Changan Automobile Co Ltd filed Critical Chongqing Changan Automobile Co Ltd
Priority to CN202211534255.7A priority Critical patent/CN115828324A/zh
Publication of CN115828324A publication Critical patent/CN115828324A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及确保或维持可信任的计算机平台技术领域,具体提供一种软件包检验方法、装置及电子设备,方法包括以下步骤:基于哈希算法计算第一软件包的第一完整性度量值;基于哈希算法计算由第一软件包经预处理后得到的第二软件包的第二完整性度量值;将第一完整性度量值和第二完整性度量值写入第一软件包的文件头;基于文件头分别对第一软件包和第二软件包的第一完整性解析度量值和第二完整性解析度量值进行检验。本申请中OTA云端服务器不需要集成用于计算软件包完整性度量值和签名的杂凑密码算法和非对称算法。OTA车端宿主控制器或被升级控制器不需要集成用于验签的非对称算法和安全存储公钥证书、根证书,节省相应的存储空间和复杂计算。

Description

一种软件包检验方法、装置及电子设备
技术领域
本发明属于确保或维持可信任的计算机平台技术领域,具体涉及一种软件包检验方法、装置及电子设备。
背景技术
根据国家法规要求,车辆进行OTA升级活动必须校验被升级软件包来源合法性和数据完整性,以保证升级过程中信息安全。
CN201910587994.4公开了一种汽车车载系统的升级方法、升级系统、服务器及车载终端,该方法包括:服务器确定与本次升级业务的业务类型对应的密钥集类型;从属于密钥集类型的密钥集中选取出第一私钥和第一密码;利用第一私钥和第一密码对原始升级包进行签名和加密,以得到安全升级包,并将所用证书和密码的标识信息附加在安全升级包中;将安全升级包传输至目标车辆的车载终端;车载终端从安全升级包中还原出所用证书和密码的标识信息,从而得到并利用与第一私钥对应的第一公钥以及与第一密码对应的第二密码对安全升级包进行验签和解密,以利用还原出的原始升级包对车载系统进行升级,从而实现业务层面的密钥分离,密钥可随时更换,以降低密钥泄露的可能和危害程度。
CN201910917694.8提供一种汽车在线升级方法、系统、设备及可读存储介质,方法包括:云端服务器接收通过合法性校验和完整性校验的升级包,生成与升级包对应的升级信息;当车辆需要对内部的设备进行升级时,车辆携带需要升级的设备的当前版本信息通过车端TBOX访问云端服务器;当车辆通过合法性校验且设备及设备的当前版本信息通过合法性校验和完整性校验后,若云端服务器内存在与设备对应的升级包,则将升级包的版本信息发送至车辆;车辆根据版本信息下载升级包,并利用升级包对设备进行升级。
上述验证方法的缺点:
1、OTA云端服务器需要集成SM3、SHA256等杂凑密码算法,用于计算软件包完整性度量值,或称Hash值;同时需要集成RSA、SM2等非对称算法,用于对完整性度量值签名。
2、OTA车端宿主控制器或者被升级控制器之一,也对应需要集成SM3、SHA256等杂凑密码算法,用于计算完整性度量值,验证软件包完整性;集成RSA、SM2等非对称算法,用于验签,验证软件包来源合法性。同时需要安全存储公钥证书、根证书。
3、对于存储空间有限(存储公钥证书、根证书、算法)、计算能力有限的宿主控制器或被刷控制器来说,上述会占用不少空间和计算能力。
发明内容
本发明的目的是:旨在提供一种软件包检验方法、装置及电子设备,用来解决现有的软件包验证需要占用较多空间和计算能力的问题
为实现上述技术目的,本发明采用的技术方案如下:
第一方面,本申请提供一种软件包检验方法,包括以下步骤:
S110:基于哈希算法计算第一软件包的第一完整性度量值;
S120:基于哈希算法计算由所述第一软件包经预处理后得到的第二软件包的第二完整性度量值;
S130:将所述第一完整性度量值和所述第二完整性度量值写入所述第一软件包的文件头;
S140:基于所述文件头分别对所述第一软件包和所述第二软件包的第一完整性解析度量值和第二完整性解析度量值进行检验。
结合第一方面,在一些可选的实施方式中,所述预处理在于,将预设的固定长度字符串拼接到所述第一软件包尾端或将预设的固定长度字符串插入所述第一软件包内。
结合第一方面,在一些可选的实施方式中,当所述第一完整性解析度量值与所述第一完整性度量值不一致和/或当所述第二完整性解析度量值与所述第二完整性度量值不一致时,判断所述第一软件包被篡改,当所述第一完整性解析度量值与所述第一完整性度量值一致且当所述第二完整性解析度量值与所述第二完整性度量值一致时,判断所述第一软件包未被篡改。
结合第一方面,在一些可选的实施方式中,所述方法还包括:基于所述预处理对所述检验的过程进行调整。
第二方面,本申请提供一种软件包检验装置,所述检验装置包括:
第一计算单元:基于哈希算法计算第一软件包的第一完整性度量值;
第二计算单元:基于哈希算法计算由所述第一软件包经预处理后得到的第二软件包的第二完整性度量值;
文件头编辑单元:将所述第一完整性度量值和所述第二完整性度量值写入所述第一软件包的文件头;
检验单元:基于所述文件头分别对所述第一软件包和所述第二软件包的第一完整性解析度量值和第二完整性解析度量值进行检验。
结合第二方面,在一些可选的实施方式中,所述检验装置还包括第一控制器和第二控制器,所述第一控制器和所述第二控制器通讯连接,所述第一计算单元、所述第二计算单元和所述文件头编辑单元耦合至所述第一控制器,所述检验单元耦合至所述第二控制器。
第三方面,本申请还提供一种电子设备,所述电子设备包括储存器和上述的检验装置,所述储存器内储存有计算机程序,当所述计算机程序被所述检验装置执行时,使得所述检验装置能够执行上述的方法。
采用上述技术方案的发明,具有如下优点:
通过被升级软件包正式释放时将完整性度量值写入文件头,可省去OTA云端服务器对应的计算。并且,文件头写入两个完整性度量值,其中第一个是对软件包数据的SHA256计算值,第二个是软件包数据拼接车厂、被升级控制器生产厂家双方约定的固定长度字符串后的SHA256计算值。用第二次SHA256计算替代现常用技术中签名步骤的非对称算法计算。进一步地,本申请中OTA云端服务器不需要集成用于计算软件包完整性度量值和签名的杂凑密码算法和非对称算法。OTA车端宿主控制器或被升级控制器不需要集成用于验签的非对称算法和安全存储公钥证书、根证书,节省相应的存储空间和复杂计算(验签、根证书验证公钥证书)。
附图说明
本发明可以通过附图给出的非限定性实施例进一步说明;
图1为现有软件包检验方法的流程示意图;
图2为本申请软件包检验方法的流程示意图;
图3为本申请检验装置的电子元件示意图;
图4为本申请软件包检验方法的步骤示意图
主要元件符号说明如下:
100:第一计算单元;200:第二计算单元;300:头文件编辑单元;400:检验单元;500:第一控制器;600:第二控制器;
具体实施方式
以下将结合附图和具体实施例对本发明进行详细说明,需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号,附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,实施例中提到的方向用语,例如“上”、“下”、“顶”、“底”、“左”、“右”、“前”、“后”等,仅是参考附图的方向,并非用来限制本发明的保护范围。
如图1所示,现各车厂采用的一种常用技术方法如下,
第一步,OTA云端服务器采用SM3、SHA256等杂凑密码算法,计算待升级软件包完整性度量值,记为完整性度量值2;再采用RSA、SM2等非对称算法,用私钥对完整性度量值进行签名;最后将软件包和签名一起通过安全通道传递到车端。
第二步,OTA车端宿主控制器或者被升级控制器接收软件包后,先采用与OTA云端相同的杂凑密码算法,计算收到的软件包完整性度量值,记为完整性度量值1;再采用与OTA云端相同的非对称算法用对应的公钥验签,解出云端传递的完整性度量值2;最后比较完整性度量值1与完整性度量值2是否相同,若相同,则证明软件包来源合法且完整。
参考附图2-3,本发明的一种软件包检验方法,包括:
S110:基于哈希算法计算第一软件包的第一完整性度量值;
S120:基于哈希算法计算由所述第一软件包经预处理后得到的第二软件包的第二完整性度量值;
S130:将所述第一完整性度量值和所述第二完整性度量值写入所述第一软件包的文件头;
S140:基于所述文件头分别对所述第一软件包和所述第二软件包的第一完整性解析度量值和第二完整性解析度量值进行检验。
结合附图2和附图4,在步骤S110中,基于哈希算法计算第一软件包的第一完整性度量值。第一控制器500所在的生产厂家控制器在对车厂的第二控制器600提供第一软件包(待升级控制器软件包)时会附带增加头文件hash1和hash2,将第一软件包定义为txt1。运用哈希算法计算第一软件包的第一完整性度量值。将该度量值定义为hash1。哈希算法又称摘要算法,它的作用是:对任一组输入数据进行计算,得到一个固定长度的输出摘要。其最重要的特点在于:相同的输入一定得到相同的输出;不同的输入大概率得到不同的输出。具体的,使用SHA256计算软件包的第一完整性度量值hash1。SHA256能够将任何字符、数字文件,经计算后产生一个固定长度的256bit的二进制表达式即第一完整性度量值。
在步骤S120中:基于哈希算法计算由所述第一软件包经预处理后得到的第二软件包的第二完整性度量值。预处理步骤在于,将预设的固定长度字符串txt2拼接到第一软件包尾端。优选地,为进一步提高第一软件包的安全性,还可将固定长度字符串txt2以不同的拼接方式组合到第一软件包txt1内。例如,在第一软件包txt1内第xx字节后开始插入固定长度字符串txt2。固定长度字符串txt2的长度可以通过预设的方式进行更改,其中,固定长度字符串txt2的字符串长度越长,第一软件包txt1的安全性越高。在完成预处理后,同样使用SHA256计算经预处理得到的第二软件包的第二完整性度量值hash2。
在步骤S130中,将所述第一完整性度量值和所述第二完整性度量值写入所述第一软件包的文件头。第一软件包txt1在经第一控制器500(生成厂家控制器)远程发送至第二控制器600(车厂控制器:OTA车端宿主控制器或被升级控制器之一)之前,将得出的第一完整性度量值hash1和第二完整性度量值hash2写入第一软件包txt1的文件头。具体的文件头编辑方式属于本领域的常规设置,此处不再过多赘述。
在步骤S140中,基于所述文件头分别对所述第一软件包和所述第二软件包的第一完整性解析度量值和第二完整性解析度量值进行检验。当第一软件包txt1从OTA云端传递到OTA车端宿主控制器或被升级控制器之一后,第二控制器600先解析出文件头中储存的hash1和hash2数据,然后对接收到的第一软件包txt1进行SHA256计算,得到第一完整性解析度量值hash1’,然后将储存在第二控制器600的固定长度字符串txt2基于与预处理相同的方式拼接到第一软件包txt1内,对预处理后的软件包进行哈希计算得出对应的hash2’。值得注意的是,车厂和控制器生产厂家双方各自的控制器内都储存有相同的固定长度字符串txt2,车厂的车端控制器包括宿主控制器或被升级控制器之一。
第二控制器600在对收到的第一软件包txt1进行检验时输出以下结果。第一结果:hash1=hash1’且hash2=hash2’和第二结果:hash1≠hash1’或hash2≠hash2’。第一结果表示第一软件包未被篡改,则检验成功。此时第二控制器600会对第一软件包进行处理以便于完成第一软件包的安装和系统的升级。第二结果则表示第一软件包已经被篡改,则检验失败,此时,第二控制器600会阻止第一软件包txt1的安装解析并向使用者以视频、音频等方式发送提示信息。
在第二结果中,若第一软件包txt1在第二控制器600进行数据验证前被篡改,篡改后的软件包数据定义为txt_E,通过SHA256计算得出对应hash_E。若篡改后截获者仍在文件头写入原hash1、hash2,则校验时计算hash1’≠hash1,从而校验失败;若截获者在文件头写入hash_E,由于截获者无法得知固定长度字符串txt2和拼接规则,就无法伪造出hash2_E,使txt2拼接到txt_E后hash2_E’=hash2_E,从而校验失败。由此可保证原软件包的完整性和来源合法性。
第二控制器600的检验方式可以根据第一控制器500的预处理方式进行调整,使得检验过程始终与预处理过程匹配,如此,第二控制器600检验得出的哈希值在第一软件包txt1未被篡改的条件下能够始终与第一控制器500中得出的哈希值保持一致。第二控制器600的检验方式和第二控制器500的预处理方式可以是由人工进行调整从而匹配统一,也可通过将第一控制器500和第二控制器600连接至第三方控制器以分别完成二者的匹配统一。
本申请软件包检验方法还可扩展应用于控制器安全启动环节,即在控制器启动时,用该方法对软件的真实性和完整性进行校验,以确定其是否被恶意篡改。如果校验失败,说明ECU软件已经处于一种不可信的状态,应禁止运行。进一步地,该软件包校验方法还可扩展应用于其他升级通道,比如通过车载OBD工具升级时的软件包校验环节。
本方法中,通过被升级软件包正式释放时将完整性度量值写入文件头,可省去OTA云端服务器对应的计算。
并且,文件头写入两个完整性度量值,其中第一个是对软件包数据的SHA256计算值,第二个是软件包数据拼接车厂、被升级控制器生产厂家双方约定的固定长度字符串后的SHA256计算值。用第二次SHA256计算替代现常用技术中签名步骤的非对称算法计算。
此方案OTA云端服务器不需要集成用于计算软件包完整性度量值和签名的杂凑密码算法和非对称算法。OTA车端宿主控制器或被升级控制器不需要集成用于验签的非对称算法和安全存储公钥证书、根证书,节省相应的存储空间和复杂计算(验签、根证书验证公钥证书)。
根据一种优选的实施方式,如图3,本申请还提供一种软件包检验装置,包括第一计算单元100、第二计算单元200、文件头编辑单元300和检验单元400。各部件具有的功能如下:
第一计算单元100:基于哈希算法计算第一软件包的第一完整性度量值;
第二计算单元200:基于哈希算法计算由所述第一软件包经预处理后得到的第二软件包的第二完整性度量值;
文件头编辑单元300:将所述第一完整性度量值和所述第二完整性度量值写入所述第一软件包的文件头;
检验单元400:基于所述文件头分别对所述第一软件包和所述第二软件包的第一完整性解析度量值和第二完整性解析度量值进行检验。
第一计算单元100、第二计算单元200、文件头编辑单元300分别耦合至第一控制器500,用于完成第一软件包发出前的上述计算和编辑过程。检验单元400耦合至第二控制器600,用于完成第一软件包的检验过程。优选地,第二控制器600上还可以耦合有完成哈希值计算的计算单元,此处不再过多描述。各单元的计算、检验和编辑过程可参考上述的方法,此处也不再重复说明。
一种电子设备,电子设备包括存储器和上述的检验装置。储存器内储存有计算机程序,当该计算机程序被检验装置执行时,检验装置能够执行上述的软件包检验方法。
在本申请所提供的实施例中,应该理解到,所揭露的装置、系统和方法,也可以通过其它的方式实现。以上所描述的装置、系统和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上对本发明提供的一种软件包检验方法、装置和电子设备进行了详细介绍。具体实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (7)

1.一种软件包检验方法,其特征在于,包括以下步骤:
S110:基于哈希算法计算第一软件包的第一完整性度量值;
S120:基于哈希算法计算由所述第一软件包经预处理后得到的第二软件包的第二完整性度量值;
S130:将所述第一完整性度量值和所述第二完整性度量值写入所述第一软件包的文件头;
S140:基于所述文件头分别对所述第一软件包和所述第二软件包的第一完整性解析度量值和第二完整性解析度量值进行检验。
2.根据权利要求1所述的软件包检验方法,其特征在于,所述预处理在于,将预设的固定长度字符串拼接到所述第一软件包尾端或将预设的固定长度字符串插入所述第一软件包内。
3.根据权利要求1或2所述的软件包检验方法,其特征在于,当所述第一完整性解析度量值与所述第一完整性度量值不一致和/或当所述第二完整性解析度量值与所述第二完整性度量值不一致时,判断所述第一软件包被篡改,当所述第一完整性解析度量值与所述第一完整性度量值一致且当所述第二完整性解析度量值与所述第二完整性度量值一致时,判断所述第一软件包未被篡改。
4.根据权利要求3所述的软件包检验方法,其特征在于,所述方法还包括:基于所述预处理对所述检验的过程进行调整。
5.一种软件包检验装置,其特征在于,所述检验装置包括:
第一计算单元(100):基于哈希算法计算第一软件包的第一完整性度量值;
第二计算单元(200):基于哈希算法计算由所述第一软件包经预处理后得到的第二软件包的第二完整性度量值;
文件头编辑单元(300):将所述第一完整性度量值和所述第二完整性度量值写入所述第一软件包的文件头;
检验单元(400):基于所述文件头分别对所述第一软件包和所述第二软件包的第一完整性解析度量值和第二完整性解析度量值进行检验。
6.根据权利要求5所述的检验装置,其特征在于,所述检验装置还包括第一控制器(500)和第二控制器(600),所述第一控制器(500)和所述第二控制器(600)通讯连接,所述第一计算单元(100)、所述第二计算单元(200)和所述文件头编辑单元(300)耦合至所述第一控制器(500),所述检验单元(400)耦合至所述第二控制器(600)。
7.一种电子设备,所述电子设备包括储存器和如权利要求5所述的检验装置,所述储存器内储存有计算机程序,当所述计算机程序被所述检验装置执行时,使得所述检验装置能够执行如权利要求1-4中任一项所述的方法。
CN202211534255.7A 2022-11-29 2022-11-29 一种软件包检验方法、装置及电子设备 Pending CN115828324A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211534255.7A CN115828324A (zh) 2022-11-29 2022-11-29 一种软件包检验方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211534255.7A CN115828324A (zh) 2022-11-29 2022-11-29 一种软件包检验方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN115828324A true CN115828324A (zh) 2023-03-21

Family

ID=85544832

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211534255.7A Pending CN115828324A (zh) 2022-11-29 2022-11-29 一种软件包检验方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN115828324A (zh)

Similar Documents

Publication Publication Date Title
EP3690643B1 (en) Vehicle-mounted device upgrading method and related device
US10423401B2 (en) Method for updating software of a control device of a vehicle
JP6712538B2 (ja) 改竄検知システム
CN111934861A (zh) 一种诊断刷写过程数据合法性验证方法及其系统
CN109756340B (zh) 一种数字验签方法、装置和存储介质
CN114115965A (zh) 一种ota系统动态差分升级方法
CN112883382A (zh) 一种车辆刷写的方法、车联网盒、车辆及存储介质
CN111565182A (zh) 一种车辆诊断方法、装置及存储介质
CN112560017A (zh) 一种使用三级证书认证实现apk统一签名的方法
CN114513310A (zh) 一种车辆诊断设备的认证方法、装置、电子设备及介质
CN116451238A (zh) 一种ecu固件升级方法、装置、设备及可读存储介质
CN115795513A (zh) 文件加密和文件解密方法、装置以及设备
CN116707758A (zh) 可信计算设备的认证方法、设备和服务器
CN115828324A (zh) 一种软件包检验方法、装置及电子设备
CN108337234B (zh) 车载程序文件加密方法和装置
CN114764347B (zh) 一种多核控制器的程序校验系统、校验方法及存储介质
CN116149706A (zh) 一种车辆设备升级方法、装置、车辆和可读存储介质
CN116346398A (zh) 安全汽车系统
CN112702374B (zh) 一种车辆信息的处理方法、装置及车辆
CN118283031B (zh) 车载控制器的升级方法、装置、设备及介质
CN113239410B (zh) 终端证书更新方法、终端及计算机可读存储介质
CN113504931B (zh) 一种控制器测试方法、装置、设备及存储介质
CN117850846B (zh) 目标电子控制单元的升级方法、装置、设备及存储介质
CN114327657B (zh) 一种基于Fastboot的大镜像分割下载验签方法及其存储介质
CN116594803B (zh) 基于处理芯片的MacOS修复方法、装置及相关介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination