CN109460247A - 软件包升级方法、软件客户端、存储介质及装置 - Google Patents
软件包升级方法、软件客户端、存储介质及装置 Download PDFInfo
- Publication number
- CN109460247A CN109460247A CN201811546468.5A CN201811546468A CN109460247A CN 109460247 A CN109460247 A CN 109460247A CN 201811546468 A CN201811546468 A CN 201811546468A CN 109460247 A CN109460247 A CN 109460247A
- Authority
- CN
- China
- Prior art keywords
- upgraded
- software package
- software
- data
- signed data
- 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.)
- Granted
Links
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Abstract
本发明公开了一种软件包升级方法、软件客户端、存储介质及装置,所述方法包括:对待升级软件包进行签名,获得签名数据;将签名数据发送至服务器,以使服务器对签名数据进行二次签名,获得并反馈二次签名数据;根据签名数据和二次签名数据对待升级软件包的真实性进行验证;当待升级软件包的真实性验证通过时,将签名数据和二次签名数据写入待升级软件包中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。由于签名数据的文件大小远远小于所述待升级软件包,在签名过程中仅传输签名数据和二次签名数据,提高了软件签名的效率,突破了通过网络传输完整软件包的时间瓶颈,从而实现了实时在线对软件包进行升级。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种软件包升级方法、软件客户端、存储介质及装置。
背景技术
在软件升级的过程中往往需要软件开发端、软件客户端和服务器端三方合作,软件开发端将软件输送至软件客户端,服务器端对软件客户端负有责任,因而希望对该输出的软件进行质量把控。目前,服务器端进行质量把控的主要方法是对软件签名环节的控制,这样软件开发端输出的软件都必须经过服务器端进行签名,否则无法升级到软件客户端中。
签名涉及到一个问题,就是文件传输。一般的签名过程为,软件开发端将软件升级包传输至软件客户端,客户端将该软件升级包传输至服务器端,服务器端对该软件升级包签名之后,将签名后的软件升级包回传至软件客户端。然而一个升级包至少300M,而且软件开发端、软件客户端和服务器端很可能是不同的国家,从而导致签名处理存在时效性问题,无法实时对软件升级包进行升级。
发明内容
本发明的主要目的在于提供一种软件包升级方法、软件客户端、存储介质及装置,旨在解决现有技术中无法实时对软件升级包进行升级的技术问题。
为实现上述目的,本发明提供一种软件包升级方法,所述方法包括以下步骤:
对待升级软件包进行签名,获得所述待升级软件包的签名数据;
将所述签名数据发送至服务器,以使所述服务器对所述签名数据进行二次签名,获得并反馈所述待升级软件包的二次签名数据;
根据所述签名数据和所述二次签名数据对所述待升级软件包的真实性进行验证;
当所述待升级软件包的真实性验证通过时,将所述签名数据和所述二次签名数据写入所述待升级软件包中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
优选地,所述对待升级软件包进行签名,获得所述待升级软件包的签名数据,具体包括:
通过安全散列算法计算所述待升级软件包的第一消息摘要;
通过预设非对称加密算法和第一预设私钥对所述第一消息摘要进行加密,获得所述待升级软件包的签名数据。
优选地,所述将所述签名数据发送至服务器,以使所述服务器对所述签名数据进行二次签名,获得并反馈所述待升级软件包的二次签名数据,具体包括:
将所述签名数据发送至服务器,以使所述服务器通过所述安全散列算法计算所述签名数据的第二消息摘要;通过所述预设非对称加密算法和第二预设私钥对所述第二消息摘要进行加密,获得并反馈所述待升级软件包的二次签名数据。
优选地,所述根据所述签名数据和所述二次签名数据对所述待升级软件包的真实性进行验证,具体包括:
根据所述安全散列算法和所述预设非对称加密算法对所述二次签名的真实性进行验证;
当所述二次签名数据的真实性验证通过时,根据所述安全散列算法和所述预设非对称加密算法对所述签名数据的真实性进行验证;
根据所述签名数据的验证结果对所述待升级软件包的真实性进行验证。
优选地,所述根据所述安全散列算法和所述预设非对称加密算法对所述二次签名的真实性进行验证,具体包括:
根据所述安全散列算法计算所述签名数据的第三消息摘要;
通过第二预设公钥对所述二次签名数据进行解密,获得第四消息摘要;
将所述第三消息摘要和所述第四消息摘要进行对比,根据第一对比结果对所述二次签名的真实性进行验证。
优选地,所述当所述二次签名数据的真实性验证通过时,根据所述安全散列算法和所述预设非对称加密算法对所述签名数据的真实性进行验证,具体包括:
当所述二次签名数据的真实性验证通过时,根据所述安全散列算法计算所述待升级软件包的第五消息摘要;
通过第一预设公钥对所述签名数据进行解密,获得第六消息摘要;
将所述第五消息摘要和所述第六消息摘要进行对比,并根据第二对比结果对所述签名数据的真实性进行验证。
优选地,所述当所述待升级软件包的真实性验证通过时,将所述签名数据和所述二次签名数据写入所述待升级软件包中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级,具体包括:
当所述待升级软件包的真实性验证通过时,将所述签名数据写入所述待升级软件包的第一文件注释中,并将所述二次签名数据写入所述签名数据的第二文件注释中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
此外,为实现上述目的,本发明还提供一种软件客户端,所述软件客户端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件包升级程序,所述软件包升级程序被所述处理器执行时实现如上文所述软件包升级方法的步骤。
此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有软件包升级程序,所述软件包升级程序被处理器执行时实现如上文所述软件包升级方法的步骤。
此外,为实现上述目的,本发明还提供一种软件包升级装置,所述软件包升级装置包括:
签名模块,用于软件客户端对待升级软件包进行签名,获得所述待升级软件包的签名数据;
二次签名模块,用于将所述签名数据发送至服务器,以使所述服务器对所述签名数据进行二次签名,获得并反馈所述待升级软件包的二次签名数据;
真实性验证模块,用于根据所述签名数据和所述二次签名数据对所述待升级软件包的真实性进行验证;
软件包升级模块,用于当所述待升级软件包的真实性验证通过时,将所述签名数据和所述二次签名数据写入所述待升级软件包中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
在本发明中,通过对所述待升级软件包进行签名,获得所述待升级软件包的签名数据,以使所述签名数据的真实性能够代表所述待升级软件包的真实性,并且该签名数据的文件大小远远小于所述待升级软件包的文件大小,因此,在签名过程中仅传输签名数据和二次签名数据,避免了对待升级软件包的传输,提高了软件签名的效率,突破了通过网络传输完整待升级软件包的时间瓶颈,从而实现了实时在线对软件升级包进行升级。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的软件客户端结构示意图;
图2为本发明软件包升级方法第一实施例的流程示意图;
图3为本发明软件包升级方法第二实施例的流程示意图;
图4为本发明软件包升级方法第三实施例的流程示意图;
图5为本发明软件包升级装置第一实施例的功能模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的软件客户端结构示意图。
如图1所示,所述软件客户端可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对所述软件客户端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及软件包升级程序。
在图1所示的软件客户端中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接外设;所述软件客户端通过处理器1001调用存储器1005中存储的软件包升级程序,并执行本发明实施例提供的软件包升级方法。
所述软件客户端通过处理器1001调用存储器1005中存储的软件包升级程序,并执行以下操作:
对待升级软件包进行签名,获得所述待升级软件包的签名数据;
将所述签名数据发送至服务器,以使所述服务器对所述签名数据进行二次签名,获得并反馈所述待升级软件包的二次签名数据;
根据所述签名数据和所述二次签名数据对所述待升级软件包的真实性进行验证;
当所述待升级软件包的真实性验证通过时,将所述签名数据和所述二次签名数据写入所述待升级软件包中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
进一步地,处理器1001可以调用存储器1005中存储的软件包升级程序,还执行以下操作:
通过安全散列算法计算所述待升级软件包的第一消息摘要;
通过预设非对称加密算法和第一预设私钥对所述第一消息摘要进行加密,获得所述待升级软件包的签名数据。
进一步地,处理器1001可以调用存储器1005中存储的软件包升级程序,还执行以下操作:
将所述签名数据发送至服务器,以使所述服务器通过所述安全散列算法计算所述签名数据的第二消息摘要;通过所述预设非对称加密算法和第二预设私钥对所述第二消息摘要进行加密,获得并反馈所述待升级软件包的二次签名数据。
进一步地,处理器1001可以调用存储器1005中存储的软件包升级程序,还执行以下操作:
根据所述安全散列算法和所述预设非对称加密算法对所述二次签名的真实性进行验证;
当所述二次签名数据的真实性验证通过时,根据所述安全散列算法和所述预设非对称加密算法对所述签名数据的真实性进行验证;
根据所述签名数据的验证结果对所述待升级软件包的真实性进行验证。
进一步地,处理器1001可以调用存储器1005中存储的软件包升级程序,还执行以下操作:
根据所述安全散列算法计算所述签名数据的第三消息摘要;
通过第二预设公钥对所述二次签名数据进行解密,获得第四消息摘要;
将所述第三消息摘要和所述第四消息摘要进行对比,根据第一对比结果对所述二次签名的真实性进行验证。
进一步地,处理器1001可以调用存储器1005中存储的软件包升级程序,还执行以下操作:
当所述二次签名数据的真实性验证通过时,根据所述安全散列算法计算所述待升级软件包的第五消息摘要;
通过第一预设公钥对所述签名数据进行解密,获得第六消息摘要;
将所述第五消息摘要和所述第六消息摘要进行对比,并根据第二对比结果对所述签名数据的真实性进行验证。
进一步地,处理器1001可以调用存储器1005中存储的软件包升级程序,还执行以下操作:
当所述待升级软件包的真实性验证通过时,将所述签名数据写入所述待升级软件包的第一文件注释中,并将所述二次签名数据写入所述签名数据的第二文件注释中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
在本实施例中,通过对所述待升级软件包进行签名,获得所述待升级软件包的签名数据,以使所述签名数据的真实性能够代表所述待升级软件包的真实性,并且该签名数据的文件大小远远小于所述待升级软件包的文件大小,因此,在签名过程中仅传输签名数据和二次签名数据,避免了对待升级软件包的传输,提高了软件签名的效率,突破了通过网络传输完整待升级软件包的时间瓶颈,从而实现了实时在线对软件升级包进行升级。
基于上述硬件结构,提出本发明软件包升级方法的实施例。
参照图2,图2为本发明软件包升级方法第一实施例的流程示意图。
在第一实施例中,所述软件包升级方法包括以下步骤:
步骤S10:对待升级软件包进行签名,获得所述待升级软件包的签名数据。
需要说明的是,本实施例的执行主体是软件客户端,所述软件客户端可以是个人电脑或者机顶盒等电子设备,本实施例对此不加以限制。本实施例的应用场景是,软件客户端需要对软件进行升级时,向软件开发端请求获取待升级软件包,该软件开发端根据请求将对应的待升级软件包发送至所述软件客户端,以使所述软件客户端对所述待升级软件包进行升级。
可以理解的是,数字签名是只有信息的发送者通过特定算法生成的一段数字串,他人无法伪造,这段数字串同时也是对信息的发送者发送信息真实性的有效证明,本实施例通过签名保证所述待升级软件包的真实性。所述待升级软件包的文件大小一般为数百兆,传输效率较低,软件客户端对所述待升级软件包进行签名,生成所述待升级软件包的签名数据,该签名数据的真实性能够代表所述待升级软件包的真实性,并且该签名数据的文件大小一般仅为数百字节,远远小于所述待升级软件包的文件大小,因此,为了提高数据传输效率,将通过对所述待升级软件包进行签名,获得所述待升级软件包的签名数据,以解决通过网络传输完整待升级软件包的时间瓶颈。
步骤S20:将所述签名数据发送至服务器,以使所述服务器对所述签名数据进行二次签名,获得并反馈所述待升级软件包的二次签名数据。
可以理解的是,仅将所述签名数据发送至服务器,减少了文件传输量,从而提高了传输效率,所述服务器对所述签名数据进行二次签名,从而证明所述签名数据的真实性。所述软件客户端将所述签名数据发送至所述服务器,以使所述服务器对所述签名数据进行二次签名,获得所述待升级软件包的二次签名数据,并将所述二次签名数据反馈至所述软件客户端;同样地,所述二次签名数据的文件大小远远小于所述待升级软件包的文件大小,仅将所述二次签名数据传输至所述软件客户端,避免了传输待升级软件包导致的效率低下。
步骤S30:根据所述签名数据和所述二次签名数据对所述待升级软件包的真实性进行验证。
需要说明的是,所述软件客户端在接收到所述服务器发送的二次签名数据后,将根据所述签名数据和所述二次签名数据实时对所述待升级软件包的真实性进行验证,当所述签名数据和所述二次签名数据的真实性均通过验证时,可认定所述待升级软件包的真实性通过验证。具体地,验证所述二次签名数据的真实性,在所述二次签名数据的真实性验证通过时,验证所述签名数据的真实性,在所述签名数据的真实性通过验证时,可认定所述待升级软件包的真实性通过验证。
步骤S40:当所述待升级软件包的真实性验证通过时,将所述签名数据和所述二次签名数据写入所述待升级软件包中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
可以理解的是,当所述待升级软件包的真实性验证通过时,所述软件客户端可将所述签名数据和所述二次签名数据写入所述待升级软件包中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
在本实施例中,通过对所述待升级软件包进行签名,获得所述待升级软件包的签名数据,以使所述签名数据的真实性能够代表所述待升级软件包的真实性,并且该签名数据的文件大小远远小于所述待升级软件包的文件大小,因此,在签名过程中仅传输签名数据和二次签名数据,避免了对待升级软件包的传输,提高了软件签名的效率,突破了通过网络传输完整待升级软件包的时间瓶颈,从而实现了实时在线对软件升级包进行升级。
参照图3,图3为本发明软件包升级方法第二实施例的流程示意图,基于上述图2所示的实施例,提出本发明软件包升级方法的第二实施例。
在第二实施例中,所述步骤S10,具体包括:
步骤S101:通过安全散列算法计算所述待升级软件包的第一消息摘要。
需要说明的是,数据签名技术是数字摘要技术与非对称密钥加密技术的结合,在对所述待升级软件包进行签名的过程中,将通过安全散列算法计算所述待升级软件包的第一消息摘要。安全散列算法(Secure Hash Algorithm,SHA)是一个密码散列函数家族,能计算出一个数字消息所对应到的,长度固定的消息摘要的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。
步骤S102:通过预设非对称加密算法和第一预设私钥对所述第一消息摘要进行加密,获得所述待升级软件包的签名数据。
可以理解的是,非对称加密算法是一种密钥的保密方法,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。所述预设非对称加密算法包括但不限于:RSA加密算法。
在具体实现中,所述软件客户端拥有第一预设私钥,并通过所述预设非对称加密算法和第一预设私钥对所述第一消息摘要进行加密,从而获得所述待升级软件包的签名数据,并且该签名数据仅能通过与所述第一预设私钥对应的第一预设公钥进行解密。
进一步地,所述步骤S20,具体包括:
步骤S201:将所述签名数据发送至服务器,以使所述服务器通过所述安全散列算法计算所述签名数据的第二消息摘要;通过所述预设非对称加密算法和第二预设私钥对所述第二消息摘要进行加密,获得并反馈所述待升级软件包的二次签名数据。
需要说明的是,在软件客户端将所述签名数据发送至服务器之后,所述服务器将对所述签名数据进行二次签名,具体地,所述服务器通过所述安全散列算法计算所述签名数据的第二消息摘要;通过所述预设非对称加密算法和第二预设私钥对所述第二消息摘要进行加密,获得所述待升级软件包的二次签名数据,并将所述二次签名数据反馈至所述软件客户端。其中,所述二次签名数据仅能通过与所述第二预设私钥对应的第二预设公钥进行解密。
在本实施例中,通过安全散列算法计算待升级软件包的第一消息摘要,并通过预设非对称加密算法对该第一消息摘要进行加密,从而实现对待升级软件包进行签名,以证明所述待升级软件包的真实性。
参照图4,图4为本发明软件包升级方法第三实施例的流程示意图,基于上述图3所示的实施例,提出本发明软件包升级方法的第三实施例。
在第三实施例中,所述步骤S30,具体包括:
步骤S301:根据所述安全散列算法和所述预设非对称加密算法对所述二次签名的真实性进行验证。
需要说明的是,由于软件客户端对所述待升级软件包进行签名,获得所述签名数据,所述服务器对所述签名数据进行签名,获得二次签名数据,因此,在数据的真实性验证过程中,将首先对二次签名数据的真实性进行验证。
进一步地,所述步骤S301,具体包括:
根据所述安全散列算法计算所述签名数据的第三消息摘要。
通过第二预设公钥对所述二次签名数据进行解密,获得第四消息摘要。
将所述第三消息摘要和所述第四消息摘要进行对比,根据第一对比结果对所述二次签名的真实性进行验证。
步骤S302:当所述二次签名数据的真实性验证通过时,根据所述安全散列算法和所述预设非对称加密算法对所述签名数据的真实性进行验证。
可以理解的是,若所述二次签名数据的真实性验证通过,则可对所述签名数据的真实性进行验证,若所述二次签名数据的真实性验证未通过,则认定所述二次签名数据被他人篡改,验证失败。
进一步地,所述步骤S302,具体包括:
当所述二次签名数据的真实性验证通过时,根据所述安全散列算法计算所述待升级软件包的第五消息摘要;
通过第一预设公钥对所述签名数据进行解密,获得第六消息摘要;
将所述第五消息摘要和所述第六消息摘要进行对比,并根据第二对比结果对所述签名数据的真实性进行验证。
步骤S303:根据所述签名数据的验证结果对所述待升级软件包的真实性进行验证。
需要说明的是,若所述签名数据的真实性验证通过,则可认定所述待升级软件包的真实性验证通过;若所述签名数据的真实性验证未通过,则认定所述签名数据被他人篡改,验证失败。
进一步地,所述步骤S40,具体包括:
当所述待升级软件包的真实性验证通过时,将所述签名数据写入所述待升级软件包的第一文件注释中,并将所述二次签名数据写入所述签名数据的第二文件注释中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
可以理解的是,所述第一文件注释是所述待升级软件包默认的注释字段,用于对签名数据做简要的文本描述,默认值是“signed by SignApk”,一般不做修改,在该第一文件注释中写入所述签名数据,所述待升级软件包仍然是一个标准格式文件。所述第二文件注释是所述签名数据默认的注释字段,用于对二次签名数据做简要的文本描述,默认值是“signed by Skyworth”,一般不做修改,在该第二文件注释中写入所述二次签名数据,所述待升级软件包仍然是一个标准格式文件。因此,保证了签名后的待升级软件包在数据格式上的标准性,从而顺利对签名后的待升级软件包进行升级。
在本实施例中,通过先后对二次签名数据和签名数据进行真实性验证,实现了对待升级软件包的真实性验证,并且将签名数据和二次签名数据写入对应的文件注释中,保证了待升级软件包在数据格式上的标准性。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有软件包升级程序,所述软件包升级程序被处理器执行时实现如下操作:
对待升级软件包进行签名,获得所述待升级软件包的签名数据;
将所述签名数据发送至服务器,以使所述服务器对所述签名数据进行二次签名,获得并反馈所述待升级软件包的二次签名数据;
根据所述签名数据和所述二次签名数据对所述待升级软件包的真实性进行验证;
当所述待升级软件包的真实性验证通过时,将所述签名数据和所述二次签名数据写入所述待升级软件包中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
进一步地,所述软件包升级程序被处理器执行时还实现如下操作:
通过安全散列算法计算所述待升级软件包的第一消息摘要;
通过预设非对称加密算法和第一预设私钥对所述第一消息摘要进行加密,获得所述待升级软件包的签名数据。
进一步地,所述软件包升级程序被处理器执行时还实现如下操作:
将所述签名数据发送至服务器,以使所述服务器通过所述安全散列算法计算所述签名数据的第二消息摘要;通过所述预设非对称加密算法和第二预设私钥对所述第二消息摘要进行加密,获得并反馈所述待升级软件包的二次签名数据。
进一步地,所述软件包升级程序被处理器执行时还实现如下操作:
根据所述安全散列算法和所述预设非对称加密算法对所述二次签名的真实性进行验证;
当所述二次签名数据的真实性验证通过时,根据所述安全散列算法和所述预设非对称加密算法对所述签名数据的真实性进行验证;
根据所述签名数据的验证结果对所述待升级软件包的真实性进行验证。
进一步地,所述软件包升级程序被处理器执行时还实现如下操作:
根据所述安全散列算法计算所述签名数据的第三消息摘要;
通过第二预设公钥对所述二次签名数据进行解密,获得第四消息摘要;
将所述第三消息摘要和所述第四消息摘要进行对比,根据第一对比结果对所述二次签名的真实性进行验证。
进一步地,所述软件包升级程序被处理器执行时还实现如下操作:
当所述二次签名数据的真实性验证通过时,根据所述安全散列算法计算所述待升级软件包的第五消息摘要;
通过第一预设公钥对所述签名数据进行解密,获得第六消息摘要;
将所述第五消息摘要和所述第六消息摘要进行对比,并根据第二对比结果对所述签名数据的真实性进行验证。
进一步地,所述软件包升级程序被处理器执行时还实现如下操作:
当所述待升级软件包的真实性验证通过时,将所述签名数据写入所述待升级软件包的第一文件注释中,并将所述二次签名数据写入所述签名数据的第二文件注释中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
在本实施例中,通过对所述待升级软件包进行签名,获得所述待升级软件包的签名数据,以使所述签名数据的真实性能够代表所述待升级软件包的真实性,并且该签名数据的文件大小远远小于所述待升级软件包的文件大小,因此,在签名过程中仅传输签名数据和二次签名数据,避免了对待升级软件包的传输,提高了软件签名的效率,突破了通过网络传输完整待升级软件包的时间瓶颈,从而实现了实时在线对软件升级包进行升级。
参照图5,图5为本发明软件包升级装置第一实施例的功能模块图,基于所述软件包升级方法,提出本发明软件包升级装置的第一实施例。
在本实施例中,所述软件包升级装置包括:
签名模块10,用于软件客户端对待升级软件包进行签名,获得所述待升级软件包的签名数据。
需要说明的是,本实施例的应用场景是,软件客户端需要对软件进行升级时,向软件开发端请求获取待升级软件包,该软件开发端根据请求将对应的待升级软件包发送至所述软件客户端,以使所述软件客户端对所述待升级软件包进行升级。
可以理解的是,数字签名是只有信息的发送者通过特定算法生成的一段数字串,他人无法伪造,这段数字串同时也是对信息的发送者发送信息真实性的有效证明,本实施例通过签名保证所述待升级软件包的真实性。所述待升级软件包的文件大小一般为数百兆,传输效率较低,软件客户端对所述待升级软件包进行签名,生成所述待升级软件包的签名数据,该签名数据的真实性能够代表所述待升级软件包的真实性,并且该签名数据的文件大小一般仅为数百字节,远远小于所述待升级软件包的文件大小,因此,为了提高数据传输效率,将通过对所述待升级软件包进行签名,获得所述待升级软件包的签名数据,以解决通过网络传输完整待升级软件包的时间瓶颈。
二次签名模块20,用于将所述签名数据发送至服务器,以使所述服务器对所述签名数据进行二次签名,获得并反馈所述待升级软件包的二次签名数据。
可以理解的是,仅将所述签名数据发送至服务器,减少了文件传输量,从而提高了传输效率,所述服务器对所述签名数据进行二次签名,从而证明所述签名数据的真实性。所述软件客户端将所述签名数据发送至所述服务器,以使所述服务器对所述签名数据进行二次签名,获得所述待升级软件包的二次签名数据,并将所述二次签名数据反馈至所述软件客户端;同样地,所述二次签名数据的文件大小远远小于所述待升级软件包的文件大小,仅将所述二次签名数据传输至所述软件客户端,避免了传输待升级软件包导致的效率低下。
真实性验证模块30,用于根据所述签名数据和所述二次签名数据对所述待升级软件包的真实性进行验证。
需要说明的是,所述软件客户端在接收到所述服务器发送的二次签名数据后,将根据所述签名数据和所述二次签名数据实时对所述待升级软件包的真实性进行验证,当所述签名数据和所述二次签名数据的真实性均通过验证时,可认定所述待升级软件包的真实性通过验证。具体地,验证所述二次签名数据的真实性,在所述二次签名数据的真实性验证通过时,验证所述签名数据的真实性,在所述签名数据的真实性通过验证时,可认定所述待升级软件包的真实性通过验证。
软件包升级模块40,用于当所述待升级软件包的真实性验证通过时,将所述签名数据和所述二次签名数据写入所述待升级软件包中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
可以理解的是,当所述待升级软件包的真实性验证通过时,所述软件客户端可将所述签名数据和所述二次签名数据写入所述待升级软件包中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
在本实施例中,通过对所述待升级软件包进行签名,获得所述待升级软件包的签名数据,以使所述签名数据的真实性能够代表所述待升级软件包的真实性,并且该签名数据的文件大小远远小于所述待升级软件包的文件大小,因此,在签名过程中仅传输签名数据和二次签名数据,避免了对待升级软件包的传输,提高了软件签名的效率,突破了通过网络传输完整待升级软件包的时间瓶颈,从而实现了实时在线对软件升级包进行升级。
在一实施例中,所述签名模块10,还用于通过安全散列算法计算所述待升级软件包的第一消息摘要;通过预设非对称加密算法和第一预设私钥对所述第一消息摘要进行加密,获得所述待升级软件包的签名数据。
在一实施例中,所述二次签名模块20,还用于将所述签名数据发送至服务器,以使所述服务器通过所述安全散列算法计算所述签名数据的第二消息摘要;通过所述预设非对称加密算法和第二预设私钥对所述第二消息摘要进行加密,获得并反馈所述待升级软件包的二次签名数据。
在一实施例中,所述真实性验证模块30,还用于根据所述安全散列算法和所述预设非对称加密算法对所述二次签名的真实性进行验证;当所述二次签名数据的真实性验证通过时,根据所述安全散列算法和所述预设非对称加密算法对所述签名数据的真实性进行验证;根据所述签名数据的验证结果对所述待升级软件包的真实性进行验证。
在一实施例中,所述真实性验证模块30,还用于根据所述安全散列算法计算所述签名数据的第三消息摘要;通过第二预设公钥对所述二次签名数据进行解密,获得第四消息摘要;将所述第三消息摘要和所述第四消息摘要进行对比,根据第一对比结果对所述二次签名的真实性进行验证。
在一实施例中,所述真实性验证模块30,还用于当所述二次签名数据的真实性验证通过时,根据所述安全散列算法计算所述待升级软件包的第五消息摘要;通过第一预设公钥对所述签名数据进行解密,获得第六消息摘要;将所述第五消息摘要和所述第六消息摘要进行对比,并根据第二对比结果对所述签名数据的真实性进行验证。
在一实施例中,所述软件包升级模块40,还用于当所述待升级软件包的真实性验证通过时,将所述签名数据写入所述待升级软件包的第一文件注释中,并将所述二次签名数据写入所述签名数据的第二文件注释中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
本发明所述软件包升级装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
单词第一、第二、以及第三等的使用不表示任何顺序,可将这些单词解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种软件包升级方法,其特征在于,所述软件包升级方法包括以下步骤:
对待升级软件包进行签名,获得所述待升级软件包的签名数据;
将所述签名数据发送至服务器,以使所述服务器对所述签名数据进行二次签名,获得并反馈所述待升级软件包的二次签名数据;
根据所述签名数据和所述二次签名数据对所述待升级软件包的真实性进行验证;
当所述待升级软件包的真实性验证通过时,将所述签名数据和所述二次签名数据写入所述待升级软件包中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
2.如权利要求1所述的软件包升级方法,其特征在于,所述对待升级软件包进行签名,获得所述待升级软件包的签名数据,具体包括:
通过安全散列算法计算所述待升级软件包的第一消息摘要;
通过预设非对称加密算法和第一预设私钥对所述第一消息摘要进行加密,获得所述待升级软件包的签名数据。
3.如权利要求2所述的软件包升级方法,其特征在于,所述将所述签名数据发送至服务器,以使所述服务器对所述签名数据进行二次签名,获得并反馈所述待升级软件包的二次签名数据,具体包括:
将所述签名数据发送至服务器,以使所述服务器通过所述安全散列算法计算所述签名数据的第二消息摘要;通过所述预设非对称加密算法和第二预设私钥对所述第二消息摘要进行加密,获得并反馈所述待升级软件包的二次签名数据。
4.如权利要求3所述的软件包升级方法,其特征在于,所述根据所述签名数据和所述二次签名数据对所述待升级软件包的真实性进行验证,具体包括:
根据所述安全散列算法和所述预设非对称加密算法对所述二次签名的真实性进行验证;
当所述二次签名数据的真实性验证通过时,根据所述安全散列算法和所述预设非对称加密算法对所述签名数据的真实性进行验证;
根据所述签名数据的验证结果对所述待升级软件包的真实性进行验证。
5.如权利要求4所述的软件包升级方法,其特征在于,所述根据所述安全散列算法和所述预设非对称加密算法对所述二次签名的真实性进行验证,具体包括:
根据所述安全散列算法计算所述签名数据的第三消息摘要;
通过第二预设公钥对所述二次签名数据进行解密,获得第四消息摘要;
将所述第三消息摘要和所述第四消息摘要进行对比,根据第一对比结果对所述二次签名的真实性进行验证。
6.如权利要求5所述的软件包升级方法,其特征在于,所述当所述二次签名数据的真实性验证通过时,根据所述安全散列算法和所述预设非对称加密算法对所述签名数据的真实性进行验证,具体包括:
当所述二次签名数据的真实性验证通过时,根据所述安全散列算法计算所述待升级软件包的第五消息摘要;
通过第一预设公钥对所述签名数据进行解密,获得第六消息摘要;
将所述第五消息摘要和所述第六消息摘要进行对比,并根据第二对比结果对所述签名数据的真实性进行验证。
7.如权利要求1至6中任一项所述的软件包升级方法,其特征在于,所述当所述待升级软件包的真实性验证通过时,将所述签名数据和所述二次签名数据写入所述待升级软件包中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级,具体包括:
当所述待升级软件包的真实性验证通过时,将所述签名数据写入所述待升级软件包的第一文件注释中,并将所述二次签名数据写入所述签名数据的第二文件注释中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
8.一种软件客户端,其特征在于,所述软件客户端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的软件包升级程序,所述软件包升级程序被所述处理器执行时实现如权利要求1至7中任一项所述的软件包升级方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有软件包升级程序,所述软件包升级程序被处理器执行时实现如权利要求1至7中任一项所述的软件包升级方法的步骤。
10.一种软件包升级装置,其特征在于,所述软件包升级装置包括:
签名模块,用于软件客户端对待升级软件包进行签名,获得所述待升级软件包的签名数据;
二次签名模块,用于将所述签名数据发送至服务器,以使所述服务器对所述签名数据进行二次签名,获得并反馈所述待升级软件包的二次签名数据;
真实性验证模块,用于根据所述签名数据和所述二次签名数据对所述待升级软件包的真实性进行验证;
软件包升级模块,用于当所述待升级软件包的真实性验证通过时,将所述签名数据和所述二次签名数据写入所述待升级软件包中,获得签名后的待升级软件包,并对签名后的待升级软件包进行升级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811546468.5A CN109460247B (zh) | 2018-12-17 | 2018-12-17 | 软件包升级方法、软件客户端、存储介质及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811546468.5A CN109460247B (zh) | 2018-12-17 | 2018-12-17 | 软件包升级方法、软件客户端、存储介质及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109460247A true CN109460247A (zh) | 2019-03-12 |
CN109460247B CN109460247B (zh) | 2021-08-17 |
Family
ID=65613644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811546468.5A Active CN109460247B (zh) | 2018-12-17 | 2018-12-17 | 软件包升级方法、软件客户端、存储介质及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109460247B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992286A (zh) * | 2019-04-02 | 2019-07-09 | 深圳创维数字技术有限公司 | 设备升级方法、服务器及计算机可读存储介质 |
CN110727455A (zh) * | 2019-09-12 | 2020-01-24 | 深圳市元征科技股份有限公司 | 软件远程升级方法及相关设备 |
CN112068857A (zh) * | 2019-06-10 | 2020-12-11 | 海信视像科技股份有限公司 | 一种基于双系统的ota升级方法及系统 |
CN113806749A (zh) * | 2021-09-23 | 2021-12-17 | 航天信息股份有限公司 | 一种升级方法、装置及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102082784A (zh) * | 2010-11-11 | 2011-06-01 | 广东欧珀电子工业有限公司 | 一种软件在线升级方法 |
US20140040873A1 (en) * | 2008-08-12 | 2014-02-06 | Adobe Systems Incorporated | Updating Applications Using Migration Signatures |
CN103886260A (zh) * | 2014-04-16 | 2014-06-25 | 中国科学院信息工程研究所 | 一种基于二次签名验签技术的应用程序管控方法 |
US20170115981A1 (en) * | 2015-10-21 | 2017-04-27 | Samsung Electronics Co., Ltd. | Apparatus and method for managing application |
CN106991320A (zh) * | 2017-03-30 | 2017-07-28 | 福建实达电脑设备有限公司 | 基于定制化安卓系统的应用鉴权方法 |
CN107273142A (zh) * | 2017-07-12 | 2017-10-20 | 北京潘达互娱科技有限公司 | 程序更新方法、程序运行方法及装置 |
CN107666622A (zh) * | 2017-09-28 | 2018-02-06 | 深圳市创维软件有限公司 | 机顶盒软件升级的方法、机顶盒及存储介质 |
CN107864039A (zh) * | 2017-11-08 | 2018-03-30 | 深圳市金立通信设备有限公司 | 一种应用签名方法、终端以及计算机可读存储介质 |
CN108304722A (zh) * | 2017-12-21 | 2018-07-20 | 广州小鹏汽车科技有限公司 | 一种软件安装包及其生成方法、升级方法和系统 |
CN108604263A (zh) * | 2016-02-10 | 2018-09-28 | 思科技术公司 | 用于客户提供的完整性的双重签名可执行镜像 |
-
2018
- 2018-12-17 CN CN201811546468.5A patent/CN109460247B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140040873A1 (en) * | 2008-08-12 | 2014-02-06 | Adobe Systems Incorporated | Updating Applications Using Migration Signatures |
CN102082784A (zh) * | 2010-11-11 | 2011-06-01 | 广东欧珀电子工业有限公司 | 一种软件在线升级方法 |
CN103886260A (zh) * | 2014-04-16 | 2014-06-25 | 中国科学院信息工程研究所 | 一种基于二次签名验签技术的应用程序管控方法 |
US20170115981A1 (en) * | 2015-10-21 | 2017-04-27 | Samsung Electronics Co., Ltd. | Apparatus and method for managing application |
CN108604263A (zh) * | 2016-02-10 | 2018-09-28 | 思科技术公司 | 用于客户提供的完整性的双重签名可执行镜像 |
CN106991320A (zh) * | 2017-03-30 | 2017-07-28 | 福建实达电脑设备有限公司 | 基于定制化安卓系统的应用鉴权方法 |
CN107273142A (zh) * | 2017-07-12 | 2017-10-20 | 北京潘达互娱科技有限公司 | 程序更新方法、程序运行方法及装置 |
CN107666622A (zh) * | 2017-09-28 | 2018-02-06 | 深圳市创维软件有限公司 | 机顶盒软件升级的方法、机顶盒及存储介质 |
CN107864039A (zh) * | 2017-11-08 | 2018-03-30 | 深圳市金立通信设备有限公司 | 一种应用签名方法、终端以及计算机可读存储介质 |
CN108304722A (zh) * | 2017-12-21 | 2018-07-20 | 广州小鹏汽车科技有限公司 | 一种软件安装包及其生成方法、升级方法和系统 |
Non-Patent Citations (1)
Title |
---|
王雅哲 等: "智能云电视公共安全服务平台建设", 《中国科学》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992286A (zh) * | 2019-04-02 | 2019-07-09 | 深圳创维数字技术有限公司 | 设备升级方法、服务器及计算机可读存储介质 |
CN112068857A (zh) * | 2019-06-10 | 2020-12-11 | 海信视像科技股份有限公司 | 一种基于双系统的ota升级方法及系统 |
CN110727455A (zh) * | 2019-09-12 | 2020-01-24 | 深圳市元征科技股份有限公司 | 软件远程升级方法及相关设备 |
CN113806749A (zh) * | 2021-09-23 | 2021-12-17 | 航天信息股份有限公司 | 一种升级方法、装置及存储介质 |
CN113806749B (zh) * | 2021-09-23 | 2024-04-05 | 航天信息股份有限公司 | 一种升级方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109460247B (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109460247A (zh) | 软件包升级方法、软件客户端、存储介质及装置 | |
CN108566381A (zh) | 一种安全升级方法、装置、服务器、设备和介质 | |
CN109214168A (zh) | 固件升级方法及装置 | |
CN109728902A (zh) | 密钥管理方法、设备、存储介质及装置 | |
CN108347419A (zh) | 数据传输方法和装置 | |
CN105007279A (zh) | 认证方法和认证系统 | |
CN105164968A (zh) | 由至少一个服务器执行的用于处理从第一计算装置到第二计算装置的数据分组以允许端到端加密通信的方法 | |
US10819688B2 (en) | System and method for generating and managing a key package | |
CN109302369A (zh) | 一种基于密钥验证的数据传输方法及装置 | |
CN108199847B (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN112913189B (zh) | 一种ota升级方法及装置 | |
CN116491098A (zh) | 使用后量子密码学的基于证书的安全性 | |
CN107579903B (zh) | 一种基于移动设备的图片消息安全传输方法及系统 | |
CN114143117B (zh) | 数据处理方法及设备 | |
CN109800588A (zh) | 条码动态加密方法及装置、条码动态解密方法及装置 | |
CN113742709B (zh) | 信息的处理方法、装置、可读介质和电子设备 | |
CN107222759A (zh) | 媒体文件加解密的方法、系统、设备和介质 | |
CN109361512A (zh) | 数据传输方法 | |
CN116601914A (zh) | 混合密钥导出以保护数据 | |
CN109978543B (zh) | 一种合同签署的方法、装置、电子设备及存储介质 | |
CN111416788B (zh) | 防止传输数据被篡改的方法和装置 | |
JP2009267900A (ja) | 鍵生成装置、証明書生成装置、サービス提供システム、鍵生成方法、証明書生成方法、サービス提供方法およびプログラム | |
CN114785524A (zh) | 电子印章生成方法、装置、设备和介质 | |
CN110414269B (zh) | 应用安装包的处理方法、相关装置、存储介质及系统 | |
CN111464295B (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 |