CN117009992B - 升级包处理方法、装置、电子设备及存储介质 - Google Patents
升级包处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117009992B CN117009992B CN202310945083.0A CN202310945083A CN117009992B CN 117009992 B CN117009992 B CN 117009992B CN 202310945083 A CN202310945083 A CN 202310945083A CN 117009992 B CN117009992 B CN 117009992B
- Authority
- CN
- China
- Prior art keywords
- packet
- upgrade package
- upgrade
- data
- server
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 9
- 238000012795 verification Methods 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 22
- 238000000034 method Methods 0.000 claims description 45
- 230000004044 response Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000000605 extraction Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种升级包处理方法、装置、电子设备及存储介质,方法包括:从服务端发送的数据包中提取数据头信息、第一升级包以及加密升级包;若对目标签名验签成功,根据加密秘钥对加密升级包进行解密,得到解密升级包;根据解密升级包以及第一升级包,确定待验证摘要;若通过原始升级包的摘要对和待验证摘要对数据包的完整性验证成功,根据解密升级包以及第一升级包,获得目标升级包。本实施例中,在验签成功以及数据包完整性验证成功的情况下,得到目标升级包,有效的保证了加密升级包以及第一升级包的安全性和完整性,避免加密升级包以及第一升级包在传输过程中被篡改或丢失数据,大大提高了升级包的的数据安全性以及数据完整性。
Description
技术领域
本申请涉及数据管理技术领域,更具体地,涉及一种升级包处理方法、装置、电子设备及计算机可读取存储介质。
背景技术
OTA(Over The Air)是指空中下载技术,是通过无线网络对嵌入式系统进行更新的技术,这些嵌入式系统包括手机、平板电脑、汽车、物联网设备,随着软件迭代的加快,通过OTA技术可以增加新功能,快速修复产品故障,有效降低售后维护成本。
服务端通常采用对称加密算法对OTA升级包进行加密,得到加密升级包,之后将加密升级包发送至设备端,以便于设备端在对加密升级包解密后,根据解密后的结果进行升级操作。
然而,采用现有方法对升级包进行加密,升级包的安全性依旧较低。
发明内容
有鉴于此,本申请提出了一种升级包处理方法、装置、电子设备及计算机可读取存储介质,以解决上述问题。
第一方面,本申请实施例提供了一种升级包处理方法,用于设备端,方法包括:响应于接收到服务端发送的数据包,从数据包中提取数据头信息、第一升级包以及加密升级包;加密升级包通过加密秘钥对第二升级包加密后获得;第一升级包以及第二升级包是对原始升级包切片后获得;数据头信息包括目标签名、原始升级包的摘要以及加密秘钥;目标签名通过服务端的服务端私钥对待签名摘要进行签名后得到;待签名摘要根据第一升级包以及加密升级包确定;加密秘钥与服务端私钥不同;若通过对应服务端私钥的服务端公钥对目标签名验签成功,根据加密秘钥对加密升级包进行解密,得到解密升级包;根据解密升级包以及第一升级包,确定待验证摘要;若通过原始升级包的摘要和待验证摘要对数据包的完整性验证成功,根据解密升级包以及第一升级包,获得目标升级包。
第二方面,本申请实施例提供了一种升级包处理装置,用于设备端,装置包括:接收模块,用于响应于接收到服务端发送的数据包,从数据包中提取数据头信息、第一升级包以及加密升级包;加密升级包通过加密秘钥对第二升级包加密后获得;第一升级包以及第二升级包是对原始升级包切片后获得;数据头信息包括目标签名、原始升级包的摘要以及加密秘钥;目标签名通过服务端的服务端私钥对待签名摘要进行签名后得到;待签名摘要根据第一升级包以及加密升级包确定;加密秘钥与服务端私钥不同;解密模块,用于若通过对应服务端私钥的服务端公钥对目标签名验签成功,根据加密秘钥对加密升级包进行解密,得到解密升级包;摘要确定模块,用于根据解密升级包以及第一升级包,确定待验证摘要;获得模块,用于若通过原始升级包的摘要和待验证摘要对数据包的完整性验证成功,根据解密升级包以及第一升级包,获得目标升级包。
第三方面,本申请实施例提供了一种电子设备,电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于执行上述第一方面的方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,计算机可读取存储介质中存储有程序代码,程序代码可被处理器调用执行上述第一方面的方法。
本申请实施例提供一种升级包处理方法、装置、电子设备及计算机可读取存储介质,本申请中,通过对第二升级包加密,避免升级包被篡改,使得加密升级包在传输过程中不容易被篡改,提高数据安全性,同时,通过对第一升级包以及加密升级包进行签名以及验签,在验签成功的情况下确定加密升级包以及第一升级包没有被篡改,有效的保证了加密升级包以及第一升级包的安全性,进一步避免加密升级包以及第一升级包在传输过程中被篡改,另外,在通过原始升级包的摘要以及所述待验证摘要对数据包的完整性验证成功的情况下,确定加密升级包以及第一升级包完整,加密升级包以及第一升级不存在数据丢失,保证了升级包的数据完整性,从而实现了提高升级包的数据安全性以及数据完整性的目的。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了一种适用于本申请实施例所适用的应用场景的示意图。
图2示出了根据本申请一个实施例提出的一种升级包处理方法流程图。
图3示出了根据本申请又一个实施例提出的一种升级包处理方法的流程图。
图4示出了本申请实施例中一种数据包的数据格式的示意图。
图5示出了本申请实施例中一种数据包的获取过程的示意图。
图6示出了本申请实施例中一种升级包的处理流程的示意图。
图7示出了本申请一个实施例提出的一种升级包处理装置的结构框图。
图8示出了本申请一个实施例提出的一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本申请实施例所适用的应用场景包括设备端20和服务端10,设备端20和服务端10通过有线网络或者无线网络通信连接。
设备端20可以是智能手机、平板电脑、笔记本电脑、台式电脑、智能家电、车辆、车载设备端、飞行器、可穿戴设备端、虚拟现实设备以及其他可以进行页面展示的设备端设备,或者运行其他可以调用页面展示应用的其他应用(例如即时通讯应用、购物应用、搜索应用、游戏应用、论坛应用、地图交通应用等)。
服务端10可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。服务端10可以用于为设备端20运行的应用提供服务。
其中,服务端10可以对原始升级包处理,得到对应的数据包,再将数据包发送至设备端20,由设备端20继续对数据包处理,以得到最后的目标升级包。
在另一实施方式中,设备端20得到目标升级包之后,还可以根据目标升级包进行升级操作,以实现对设备端的固件升级。
参照图2,图2示出了根据本申请一个实施例提出的一种升级包处理方法流程图,方法用于电子设备,方法包括:
S110、响应于接收到服务端发送的数据包,从数据包中提取数据头信息、第一升级包以及加密升级包。
本实施例中,响应于接收到服务端发送的数据包,从所述数据包中提取数据头信息、第一升级包以及加密升级包;所述加密升级包通过加密秘钥对第二升级包加密后获得;所述第一升级包以及第二升级包是对原始升级包切片后获得;所述数据头信息包括目标签名、所述原始升级包的摘要以及加密秘钥;所述目标签名通过服务端的服务端私钥对待签名摘要进行签名后得到;所述待签名摘要根据第一升级包以及所述加密升级包确定;所述加密秘钥与所述服务端私钥不同。其中,加密秘钥可以是加密秘钥是通过对称加密算法随机生成的
服务端可以接收设备端发送的升级包获取请求,根据升级包获取请求,获取对应的原始升级包。例如,设备端为车辆,车辆确定车灯需要进行固件升级,车辆生成车灯对应的升级包获取请求,并将车灯对应的升级包获取请求发送至服务端,服务端根据车灯对应的升级包获取请求,获取用于对车灯进行固件升级的升级包作为原始升级包。
服务端可以对原始升级包进行切片,以得到两个升级包:第一升级包以及第二升级包。其中,切片规则是根据原始升级包的大小对原始升级包进行切片,或,对原始升级包进行均匀切片。
根据原始升级包的大小对原始升级包进行切片可以包括:从原始升级包的第一个数据开始,从原始升级包的预设尺寸处切分,以得到两个升级包,并将大小为预设尺寸的切片作为第二升级包,另一个切片作为第一升级包。例如,切预设尺寸为10mb,原始升级包为15mb时,将原始升级包且分为10mb的第二升级包和5mb的第一升级包。
服务端可以随机生成加密秘钥,并通过加密秘钥对第二升级包进行加密,得到加密升级包。第一升级包则不做修改。其中,服务端可以通过加密秘钥,利用对称加密算法SM4对第二升级包进行加密,得到加密升级包。
在得到加密升级包之后,还可以按照第一升级包以及第二升级包在原始升级包中的顺序信息,将加密升级包以及第一升级包进行拼接(例如原始升级包中第二升级包在第一升级包之前,则加密升级包拼接在第一升级包的前面),得到第一拼接升级包,再对第一拼接升级包进行摘要提取,得到待签名摘要。其中,可以是通过SM3算法对第一拼接升级包进行摘要提取。
得到待签名摘要之后,根据服务端生成的服务端私钥对待签名摘要进行签名,得到目标签名,签名可以是指通过服务端私钥对待签名摘要进行加密。设备端可以存储服务端发送的与服务端私钥匹配的服务端公钥,也即,服务端私钥以及服务端公钥是服务端生成的具有对应关系的公私钥密钥对。其中,服务端可以通过SM2算法生成服务端私钥以及服务端公钥,并将服务端公钥发送至设备端,将服务端私钥存储于服务端本地。
原始升级包的摘要是指根据原始升级包确定的摘要(可以是通过SM3算法提取摘要)。
服务端得到目标签名、原始升级包的摘要以及加密秘钥之后,根据目标签名、原始升级包的摘要以及加密秘钥生成数据头信息,再将数据头信息、加密升级包以及第一升级包进行拼接,得到数据包。其中,拼接数据头信息、加密升级包以及第一升级包的顺序可以是加密升级包在数据头信息之后,加密升级包在第一升级包之前。
设备端接收到数据包之后,直接对数据包进行分割,得到数据头信息、第一升级包以及加密升级包。
S120若通过对应服务端私钥的服务端公钥对目标签名验签成功,根据加密秘钥对加密升级包进行解密,得到解密升级包。
设备端截取到数据头信息之后,从数据头信息中提取目标签名,然后通过服务端公钥对目标签名验签解密,得到解密摘要。
设备端还可以按照第一升级包以及第二升级包在原始升级包中的顺序信息,将加密升级包以及第一升级包进行拼接,得到第二拼接升级包(第二拼接升级包是指设备端拼接后得到的,第一拼接升级包是指服务端拼接后得到的),再对第二拼接升级包进行摘要提取,得到待验证摘要。其中,可以是通过SM3算法对第二拼接升级包进行摘要提取。
之后,将解密摘要与待验证摘要比对,若一致,确定验签成功,若不一致,确定验签失败。
设备端可以从数据头信息信息中提取加密秘钥,并通过提取到的加密秘钥,对述加密升级包进行解密,得到解密升级包。若加密升级包未被篡改,解密升级包与前述的第二升级包完全相同,若加密升级包被篡改,解密升级包与前述的第二升级包不完全相同。其中,可以是通过称加密算法选取SM4对加密升级包进行解密。
作为一种实施方式,数据头信息中的加密秘钥是通过设备端的设备端公钥加密后的加密秘钥;数据头信息还包括加密后的加密秘钥的长度信息;加密秘钥与设备端私钥不同;方法还可以包括:确定加密后的加密秘钥在数据头信息中的顺序信息;根据加密后的加密秘钥在数据头信息中的顺序信息以及加密后的加密秘钥的长度信息,从数据头信息中提取加密后的加密秘钥;通过设备端私钥对加密后的加密秘钥进行解密,获得加密秘钥。
设备端可以从数据头信息信息中提取加密后的加密秘钥,并通过设备端私钥对加密后的加密秘钥解密,得到解密成功后的加密秘钥。
得到加密后的加密秘钥之后,通过设备端私钥对加密后的加密秘钥解密,若解密成功,则获取解密后的加密秘钥,若解密失败,则加密后的加密秘钥不是通过设备端公钥加密的,停止升级包的处理过程,并输出提示信息,以提示用户发生错误——数据包被篡改。
数据头信息中的各种信息具有各自的排列顺序,可以根据数据头信息中的各种信息各自的排列顺序确定加密后的加密秘钥在数据头信息中的顺序信息,然后,通过加密后的加密秘钥在数据头信息中的顺序信息以及加密后的加密秘钥的长度信息,从数据头信息中提取对应的数据,作为加密后的加密秘钥。
例如,数据头信息包括5种信息,加密后的加密秘钥数据头信息中的第3位,加密秘钥的长度信息为s,可以在数据头信息中确定第三种数据开始的位置,并从第三种数据开始的位置处截取长度信息为s的数据作为加密后的加密秘钥。
本实施例中,可以通过服务端预存的设备端公钥对加密秘钥进行加密,得到加密后的加密秘钥。服务端可以存储设备端发送的与设备端私钥匹配的设备端公钥,也即,设备端私钥以及设备端公钥是服务端生成的具有对应关系的公私钥密钥对。其中,设备端可以通过SM2算法生成设备端私钥以及设备端公钥,并将设备端公钥发送至服务端,将设备端私钥存储于设备端本地。
服务端得到目标签名、原始升级包的摘要以及加密后的加密秘钥之后,根据目标签名、原始升级包的摘要以及加密后的加密秘钥生成数据头信息,再将数据头信息、加密升级包以及第一升级包进行拼接,得到数据包。
S130、根据解密升级包以及第一升级包,确定待验证摘要;若通过原始升级包的摘要和待验证摘要对数据包的完整性验证成功,根据解密升级包以及第一升级包,获得目标升级包。
可以按照原始升级包中第一升级包以及第二升级包的顺序信息,对解密升级包以及第一升级包进行拼接,得到第三拼接升级包,再对第三拼接升级包进行摘要提取(可以是通过SM2算法提取摘要),得到待验证摘要。
之后,可以从数据头信息中提取原始升级包的摘要,通过原始升级包的摘要和待验证摘要对数据包的完整性验证,若原始升级包的摘要与待验证摘要相同,则数据包的完整性验证成功,若原始升级包的摘要与待验证摘要不相同,则数据包的完整性验证失败。
在通过原始升级包的摘要和待验证摘要对数据包的完整性验证成功的情况下,确定解密升级包以及第一升级包完整,根据解密升级包以及第一升级包,获得目标升级包。通过原始升级包的摘要和待验证摘要对数据包的完整性验证失败的情况下,确定解密升级包或第一升级包不完整,可以输出错误提示信息以提示用户数据包不完整。
在目标签名验签成功后,通过设备端私钥对加密后的加密秘钥进行解密得到加密秘钥,并通过加密秘钥对加密升级包进行解密,得到解密升级包,解密升级包与第一升级包拼接,得到第三拼接升级包,比对原始升级包的摘要以及第三拼接升级包提取到的待验证摘要,以实现第三拼接升级包的完整性验证:若原始升级包的摘要与待验证摘要一致,第三拼接升级包完整性验证成功,否则第三拼接升级包完整性验证失败。
在第三拼接升级包完整性成功的情况下,获取第三拼接升级作为目标升级包。在得到目标升级包之后,可以通过目标升级包进行升级操作。
本实施例中,通过对第二升级包加密,避免升级包被篡改,使得加密升级包在传输过程中不容易被篡改,提高数据安全性,同时,通过对第一升级包以及加密升级包进行签名以及验签,在验签成功的情况下确定加密升级包以及第一升级包没有被篡改,有效的保证了加密升级包以及第一升级包的安全性,进一步避免加密升级包以及第一升级包在传输过程中被篡改,另外,在通过原始升级包的摘要以及所述待验证摘要对数据包的完整性验证成功的情况下,确定加密升级包以及第一升级包完整,加密升级包以及第一升级不存在数据丢失,保证了升级包的数据完整性,从而实现了提高升级包的数据安全性以及数据完整性的目的。
通过在升级包的服务端和设备端预置公私钥对,交换自身的公钥,达到对升级包进行签名和验签的目的,有效降低升级包在传输下载过程中被篡;采用切片加密的方式对升级包进行加密处理,可以在升级包容量较大的情况下,提高升级包的加密处理速度,同时确保即使得到未加密部分也无法进行升级操作,提高了升级包的安全性和稳定性。
参照图3,图3示出了根据本申请又一个实施例提出的一种升级包处理方法流程图,方法用于电子设备,方法包括:
S210、通过非对称加密算法生成设备端私钥以及设备端公钥;将设备端公钥发送至服务端,以使服务端存储设备端公钥;接收服务端发送的服务端公钥;存储服务端公钥。
其中,服务端公钥是在通过非对称加密算法生成服务端公钥以及服务端私钥后发送的;
在本实施例中,可以是服务端先生成服务端公钥以及服务端私钥,并发送服务端公钥给设备端,由设备端存储服务端发送的服务端公钥,之后,设备端可以生成设备端私钥和设备端公钥,并将设备端公钥发送至服务端,由服务端存储设备端公钥。也可以是设备端先生成设备端公钥以及设备端私钥,并发送设备端公钥给服务端,由服务端存储设备端发送的设备端公钥,之后,服务端可以生成服务端私钥和服务端公钥,并将服务端公钥发送至设备端,由设备端存储服务端公钥。
S220、响应于接收到服务端发送的数据包,根据数据头信息的数据头格式从数据包中提取数据头信息以及数据组合包;确定加密升级包在数据组合包中的顺序信息;根据加密升级包在升级包中的顺序信息以及加密升级包的长度信息,从数据组合包中提取加密升级包以及第一升级包。
在本实施例中,定义了数据头信息的数据头格式,数据头信息的数据头格式为加密后的加密秘钥的长度信息、加密升级包的长度信息、目标签名的长度信息、原始升级包的摘要、加密后的加密秘钥以及目标签名依次排列。其中,原始升级包的摘要是指根据原始升级包确定的摘要(可以是通过SM3算法提取摘要)。
可以理解的是,目标签名、加密升级包以及加密后的加密秘钥是有限数据量的数据,因此用于数据头信息中用于指示目标签名的长度信息、加密升级包的长度信息以及加密后的加密秘钥的长度信息的数据可以是固定长度的数据,例如,目标签名的长度信息用6个字符表示、加密升级包的长度信息用10个字符表示以及加密后的加密秘钥的长度信息用4个字符表示。而针对于不同的原始升级包,得到的原始升级包的摘要、加密后的加密秘钥以及目标签名可能是不同的。
如前述,数据包的数据格式如图4所示,数据包包括加密后的加密秘钥的长度信息、加密升级包的长度信息、目标签名的长度信息、原始升级包的摘要、加密后的加密秘钥、目标签名、加密数据包以及第一升级包。
在本实施例中,服务端获取数据包的过程如图5所示,服务端获取原始升级包,并确定原始升级包对应的原始升级包的摘要;服务端对原始升级包进行切片,得到第一升级包以及第二升级包,通过随机生成的加密秘钥对第二升级包进行加密,得到加密升级包;通过设备端公钥对加密秘钥进行加密,得到加密后的加密秘钥;将加密升级包以及第一升级包进行拼接,得到第一拼接升级包,并确定第一拼接升级包的摘要,再通过服务端私钥对第一拼接升级包的摘要签名,得到目标签名;之后,根据加密后的加密秘钥的长度信息、加密升级包的长度信息、目标签名的长度信息、原始升级包的摘要、加密后的加密秘钥以及目标签名构建数据头信息,再将数据头信息、加密升级包以及第一升级包进行拼接,得到数据包。
可以根据数据头信息的数据头格式,将数据包划分为数据头信息以及数据组合包。再根据数据头信息中的加密升级包的长度信息以及加密升级包在数据组合包中的顺序信息,将数据组合包分割为加密升级包以及第一升级包。
例如图4所示,加密数据包在第一升级包之前,因此,可以根据加密数据包在第一升级包之前这个顺序信息,从数据组合包的加密升级包的长度信息处进行分割,得到加密升级包以及第一升级包。
S230、确定目标签名在数据头信息中的顺序信息;根据目标签名在数据头信息中的顺序信息以及目标签名的长度信息,从数据头信息中提取目标签名。
如前述,数据头信息中用于指示目标签名的长度信息、加密升级包的长度信息以及加密后的加密秘钥的长度信息的数据可以是固定长度的数据,且目标签名的长度信息、加密升级包的长度信息以及加密后的加密秘钥的长度信息的排列顺序是已知的(例如图4所示,目标签名的长度信息、加密升级包的长度信息以及加密后的加密秘钥的长度信息依次排列),直接根据目标签名的长度信息、加密升级包的长度信息以及加密后的加密秘钥的长度信息各自对应的固定长度以及排列顺序,在数据头信息中确定目标签名的长度信息。根据定义的数据头格式中目标签名的顺序信息,从数据头信息中获取长度为目标签名的长度信息的数据作为目标签名。
如图4所示,目标签名在数据头信息中的第6位,根据目标签名在数据头信息中的顺序信息(第6位),在数据头信息中提取长度为目标签名的长度信息的数据作为目标签名。
S240、若通过对应服务端私钥的服务端公钥对目标签名验签成功,根据加密秘钥对加密升级包进行解密,得到解密升级包。
其中,S240的描述参照上文S120-S130的描述,此处不再赘述。
S250、根据解密升级包以及第一升级包,确定待验证摘要;通过原始升级包的摘要对待验证摘要进行完整性验证;若通过原始升级包的摘要和待验证摘要对数据包的完整性验证成功,根据解密升级包以及第一升级包,获得目标升级包。
可以按照原始升级包中第一升级包以及第二升级包的顺序信息,对解密升级包以及第一升级包进行拼接,得到第三拼接升级包,再对第三拼接升级包进行摘要提取,得到待验证摘要。之后,可以从数据头信息中提取原始升级包的摘要,通过原始升级包的摘要和待验证摘要对数据包的完整性验证,若原始升级包的摘要与待验证摘要相同,则数据包的完整性验证成功,若原始升级包的摘要与待验证摘要不相同,则数据包的完整性验证失败。在通过通过原始升级包的摘要和待验证摘要对数据包的完整性验证成功的情况下,根据解密升级包以及第一升级包,获得目标升级包。
如前述,数据头信息包括加密后的加密秘钥的长度信息、加密升级包的长度信息、目标签名的长度信息、原始升级包的摘要、加密后的加密秘钥以及目标签名,当按照如前述的过程确定了加密后的加密秘钥、目标签名之后,则获取加密后的加密秘钥的长度信息、加密升级包的长度信息、目标签名的长度信息、加密后的加密秘钥以及目标签名以外的数据作为原始升级包的摘要。
本实施例中的升级包处理流程如图6所示,设备端获取到数据包,从数据包中提取数据头信息、加密数据包以及第一升级包,根据加密升级包以及第二升级包确定第二拼接升级包,并对第二拼接升级包进行摘要提取,得到待验证摘要;通过服务端公钥对目标签名进行解密,得到解密摘要,比对待验证摘要以及解密摘要,实现对根据待验证摘要对目标签名进行验签。
在目标签名验签成功后,通过设备端私钥对加密后的加密秘钥进行解密得到加密秘钥,通过加密秘钥对加密升级包进行解密,得到解密升级包,解密升级包与第一升级包拼接,得到第三拼接升级包,比对原始升级包的摘要以及第三拼接升级包提取到的待验证摘要,以实现第三拼接升级包的完整性验证:若原始升级包的摘要与待验证摘要一致,第三拼接升级包完整性验证成功,否则第三拼接升级包完整性验证失败。
在第三拼接升级包完整性成功的的情况下,获取第三拼接升级作为目标升级包。在得到目标升级包之后,可以通过目标升级包进行升级操作。
本实施例中,可以对第一升级包以及加密升级包签名以及验签还可以对得到的加密升级包以及第一升级包进行完整性验证,并验签成功以及在完整性验证成功的情况下,根据对加密升级包解密后的解密升级包以及第一升级包确定目标升级,目标升级包完整性以及安全性均较高,提高了升级包传输的安全性和完整性。
同时,采用切片加密的方式对升级包核心数据段进行加密处理,可以在升级包容量较大的情况下,提高升级包的加密处理速度,同时确保即使得到未加密部分也无法进行升级操作,进一步提高了升级包传输的安全性和完整性。
另外,动态随机生成对称加密算法的秘钥,并对秘钥使用非对称算法进行加密,有效确保加密方式无法被破解;通过在升级包的服务端和设备端预置公私钥对,交换自身的公钥,达到对升级包进行签名和验签的目的,有效降低升级包在传输下载过程中被篡改,提高了升级包的安全性。
参照图7,图7示出了本申请一个实施例提出的一种升级包处理装置的结构框图。装置700用于电子设备,装置700包括:
接收模块710,用于响应于接收到服务端发送的数据包,从所述数据包中提取数据头信息、第一升级包以及加密升级包;所述加密升级包通过加密秘钥对第二升级包加密后获得;所述第一升级包以及第二升级包是对原始升级包切片后获得;所述数据头信息包括目标签名、所述原始升级包的摘要以及加密秘钥;所述目标签名通过服务端的服务端私钥对待签名摘要进行签名后得到;所述待签名摘要根据第一升级包以及所述加密升级包确定;所述加密秘钥与所述服务端私钥不同;
解密模块720,用于若通过对应所述服务端私钥的服务端公钥对所述目标签名验签成功,根据所述加密秘钥对所述加密升级包进行解密,得到解密升级包;
摘要确定模块730,用于根据所述解密升级包以及所述第一升级包,确定待验证摘要;
获得模块740,用于若通过所述原始升级包的摘要和所述待验证摘要对所述数据包的完整性验证成功,根据所述解密升级包以及所述第一升级包,获得目标升级包。
进一步地,所述数据头信息中的加密秘钥是通过设备端的设备端公钥加密后的加密秘钥;所述数据头信息还包括所述加密后的加密秘钥的长度信息;所述加密秘钥与所述设备端公钥不同;解密模块720,还用于确定所述加密后的加密秘钥在所述数据头信息中的顺序信息;根据所述加密后的加密秘钥在所述数据头信息中的顺序信息以及所述加密后的加密秘钥的长度信息,从所述数据头信息中提取所述加密后的加密秘钥;通过所述设备端私钥对所述加密后的加密秘钥进行解密,获得所述加密秘钥。
进一步地,数据头信息还包括目标签名的长度信息;装置还包括签名获取模块,用于确定目标签名在数据头信息中的顺序信息;根据目标签名在数据头信息中的顺序信息以及目标签名的长度信息,从数据头信息中提取目标签名。
进一步地,数据头信息包括加密升级包的长度信息;接收模块710,还用于响应于接收到服务端发送的数据包,根据数据头信息的数据头格式从数据包中提取数据头信息以及数据组合包;确定加密升级包在数据组合包中的顺序信息;根据加密升级包在升级包中的顺序信息以及加密升级包的长度信息,从数据组合包中提取加密升级包以及第一升级包。
进一步地,接收模块710,还用于通过非对称加密算法生成设备端私钥以及设备端公钥;将设备端公钥发送至服务端,以使服务端存储设备端公钥。
进一步地,接收模块710,还用于接收服务端发送的服务端公钥;服务端公钥是在通过非对称加密算法生成服务端公钥以及服务端私钥后发送的;存储服务端公钥。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图8,其示出了本申请实施例提供的一种电子设备900的结构框图。电子设备例如可以是指图1中的设备端20。本申请中的电子设备900可以包括一个或多个如下部件:处理器910、存储器920以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器920中并被配置为由一个或多个处理器910执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
其中,处理器910可以包括一个或者多个处理核。处理器910利用各种接口和线路连接整个电子设备900内的各个部分,通过运行或执行存储在存储器920内的指令、程序、代码集或指令集,以及调用存储在存储器920内的数据,执行电子设备900的各种功能和处理数据。可选地,处理器910可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器910可集成中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责待显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器910中,单独通过一块通信芯片进行实现。
存储器920可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器920可用于存储指令、程序、代码、代码集或指令集。存储器920可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备900在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本申请实施例还提供的一种计算机可读存储介质。该计算机可读存储介质中存储有程序代码,该程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质包括非易失性计算机可读存储介质(non-transitory computer-readable storage medium)。计算机可读存储介质具有执行上述方法中的任何方法步骤的程序代码的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种升级包处理方法,其特征在于,用于设备端,所述方法包括:
响应于接收到服务端发送的数据包,从所述数据包中提取数据头信息、第一升级包以及加密升级包;所述加密升级包通过加密秘钥对第二升级包加密后获得;所述第一升级包以及第二升级包是对原始升级包切片后获得;所述数据头信息包括目标签名、所述原始升级包的摘要以及加密秘钥;所述目标签名通过服务端的服务端私钥对待签名摘要进行签名后得到;所述待签名摘要根据第一升级包以及所述加密升级包确定;所述加密秘钥与所述服务端私钥不同;
若通过对应所述服务端私钥的服务端公钥对所述目标签名验签成功,根据所述加密秘钥对所述加密升级包进行解密,得到解密升级包;
根据所述解密升级包以及所述第一升级包,确定待验证摘要;
若通过所述原始升级包的摘要和所述待验证摘要对所述数据包的完整性验证成功,根据所述解密升级包以及所述第一升级包,获得目标升级包。
2.根据权利要求1所述的方法,其特征在于,所述数据头信息中的加密秘钥是通过所述设备端的设备端公钥加密后的加密秘钥;所述数据头信息还包括所述加密后的加密秘钥的长度信息;所述加密秘钥与所述设备端公钥不同;
所述根据所述加密秘钥对所述加密升级包进行解密,得到解密升级包之前,所述方法还包括:
确定所述加密后的加密秘钥在所述数据头信息中的顺序信息;
根据所述加密后的加密秘钥在所述数据头信息中的顺序信息以及所述加密后的加密秘钥的长度信息,从所述数据头信息中提取所述加密后的加密秘钥;
通过设备端私钥对所述加密后的加密秘钥进行解密,获得所述加密秘钥。
3.根据权利要求1所述的方法,其特征在于,所述数据头信息还包括所述目标签名的长度信息;所述若通过对应所述服务端私钥的服务端公钥对所述目标签名验签成功,根据所述加密秘钥对所述加密升级包进行解密,得到解密升级包之前,所述方法还包括:
确定所述目标签名在所述数据头信息中的顺序信息;
根据所述目标签名在所述数据头信息中的顺序信息以及所述目标签名的长度信息,从所述数据头信息中提取所述目标签名。
4.根据权利要求1所述的方法,其特征在于,所述数据头信息包括所述加密升级包的长度信息;所述响应于接收到服务端发送的数据包,从所述数据包中提取数据头信息、第一升级包以及加密升级包,包括:
响应于接收到服务端发送的数据包,根据所述数据头信息的数据头格式从所述数据包中提取所述数据头信息以及数据组合包;
确定所述加密升级包在所述数据组合包中的顺序信息;
根据所述加密升级包在所述数据组合包中的顺序信息以及所述加密升级包的长度信息,从所述数据组合包中提取所述加密升级包以及所述第一升级包。
5.根据权利要求1所述的方法,其特征在于,所述响应于接收到服务端发送的数据包,从所述数据包中提取数据头信息、第一升级包以及加密升级包之前,所述方法还包括:
通过非对称加密算法生成设备端私钥以及设备端公钥;
将所述设备端公钥发送至服务端,以使所述服务端存储所述设备端公钥。
6.根据权利要求1所述的方法,其特征在于,所述响应于接收到服务端发送的数据包,从所述数据包中提取数据头信息、第一升级包以及加密升级包之前,所述方法还包括:
接收所述服务端发送的服务端公钥;所述服务端公钥是在通过非对称加密算法生成服务端公钥以及所述服务端私钥后发送的;
存储所述服务端公钥。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述加密秘钥是通过对称加密算法随机生成的。
8.一种升级包处理装置,其特征在于,用于设备端,所述装置包括:
接收模块,用于响应于接收到服务端发送的数据包,从所述数据包中提取数据头信息、第一升级包以及加密升级包;所述加密升级包通过加密秘钥对第二升级包加密后获得;所述第一升级包以及第二升级包是对原始升级包切片后获得;所述数据头信息包括目标签名、所述原始升级包的摘要以及加密秘钥;所述目标签名通过服务端的服务端私钥对待签名摘要进行签名后得到;所述待签名摘要根据第一升级包以及所述加密升级包确定;所述加密秘钥与所述服务端私钥不同;
解密模块,用于若通过对应所述服务端私钥的服务端公钥对所述目标签名验签成功,根据所述加密秘钥对所述加密升级包进行解密,得到解密升级包;
摘要确定模块,用于根据所述解密升级包以及所述第一升级包,确定待验证摘要;
获得模块,用于若通过所述原始升级包的摘要和所述待验证摘要对所述数据包的完整性验证成功,根据所述解密升级包以及所述第一升级包,获得目标升级包。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行如权利要求1-7任一项所述的方法。
10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310945083.0A CN117009992B (zh) | 2023-07-28 | 2023-07-28 | 升级包处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310945083.0A CN117009992B (zh) | 2023-07-28 | 2023-07-28 | 升级包处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117009992A CN117009992A (zh) | 2023-11-07 |
CN117009992B true CN117009992B (zh) | 2024-04-16 |
Family
ID=88572166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310945083.0A Active CN117009992B (zh) | 2023-07-28 | 2023-07-28 | 升级包处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117009992B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108566381A (zh) * | 2018-03-19 | 2018-09-21 | 百度在线网络技术(北京)有限公司 | 一种安全升级方法、装置、服务器、设备和介质 |
CN109495307A (zh) * | 2018-11-27 | 2019-03-19 | 北京车和家信息技术有限公司 | 系统升级方法、ota升级包加密方法、终端设备及车辆 |
CN110134424A (zh) * | 2019-05-16 | 2019-08-16 | 上海东软载波微电子有限公司 | 固件升级方法及系统、服务器、智能设备、可读存储介质 |
CN115022092A (zh) * | 2022-08-05 | 2022-09-06 | 中汽数据(天津)有限公司 | 车辆软件升级方法、设备和存储介质 |
CN115242397A (zh) * | 2022-06-14 | 2022-10-25 | 重庆长安汽车股份有限公司 | 用于车辆euc的ota升级安全验证方法及可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019083440A2 (zh) * | 2017-10-24 | 2019-05-02 | 华为国际有限公司 | 一种车载设备升级方法及相关设备 |
CN112799706A (zh) * | 2019-11-14 | 2021-05-14 | 华为技术有限公司 | 车辆升级包处理方法和装置 |
-
2023
- 2023-07-28 CN CN202310945083.0A patent/CN117009992B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108566381A (zh) * | 2018-03-19 | 2018-09-21 | 百度在线网络技术(北京)有限公司 | 一种安全升级方法、装置、服务器、设备和介质 |
CN109495307A (zh) * | 2018-11-27 | 2019-03-19 | 北京车和家信息技术有限公司 | 系统升级方法、ota升级包加密方法、终端设备及车辆 |
CN110134424A (zh) * | 2019-05-16 | 2019-08-16 | 上海东软载波微电子有限公司 | 固件升级方法及系统、服务器、智能设备、可读存储介质 |
CN115242397A (zh) * | 2022-06-14 | 2022-10-25 | 重庆长安汽车股份有限公司 | 用于车辆euc的ota升级安全验证方法及可读存储介质 |
CN115022092A (zh) * | 2022-08-05 | 2022-09-06 | 中汽数据(天津)有限公司 | 车辆软件升级方法、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
FOTA升级包安全防护;丁魏;;电子技术与软件工程(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117009992A (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108241517B (zh) | 一种软件升级方法、客户端及电子设备 | |
CN109194625B (zh) | 一种基于云端服务器的客户端应用保护方法、装置及存储介质 | |
CN109714176B (zh) | 口令认证方法、装置及存储介质 | |
CN111666564B (zh) | 应用程序安全启动方法、装置、计算机设备和存储介质 | |
CN110399717B (zh) | 密钥获取方法和装置、存储介质及电子装置 | |
EP3866004A1 (en) | Over-the-air upgrade method and related device | |
CN111130798B (zh) | 一种请求鉴权方法及相关设备 | |
CN110166489B (zh) | 一种物联网中数据传输方法、系统、设备及计算机介质 | |
CN109729000B (zh) | 一种即时通信方法及装置 | |
CN117240625B (zh) | 一种涉及防篡改的数据处理方法、装置及电子设备 | |
CN117349895B (zh) | 基于区块链的汽车金融数字档案管理方法及装置 | |
CN112291201A (zh) | 业务请求的传输方法及装置、电子设备 | |
CN112235104A (zh) | 一种数据加密传输方法、系统、终端及存储介质 | |
CN115150821A (zh) | 离线包的传输、存储方法及装置 | |
CN115603907A (zh) | 加密存储数据的方法、装置、设备和存储介质 | |
CN108418679B (zh) | 一种多数据中心下处理密钥的方法、装置及电子设备 | |
CN117009992B (zh) | 升级包处理方法、装置、电子设备及存储介质 | |
CN111400771A (zh) | 目标分区的校验方法及装置、存储介质、计算机设备 | |
CN114143098B (zh) | 数据存储方法和数据存储装置 | |
CN109408085A (zh) | 硬件钱包的升级方法、装置、系统和存储介质 | |
CN111949996A (zh) | 安全私钥的生成方法、加密方法、系统、设备及介质 | |
CN109189450A (zh) | 一种服务器固件升级的方法及装置 | |
CN113452513B (zh) | 密钥分发方法、装置和系统 | |
CN110765147B (zh) | 基于区块链加密存储的内容更新方法、用户节点及介质 | |
CN114117388A (zh) | 设备注册方法、设备注册装置、电子设备以及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |