CN108958771B - 应用程序的更新方法、装置、服务器及存储介质 - Google Patents

应用程序的更新方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN108958771B
CN108958771B CN201810718893.1A CN201810718893A CN108958771B CN 108958771 B CN108958771 B CN 108958771B CN 201810718893 A CN201810718893 A CN 201810718893A CN 108958771 B CN108958771 B CN 108958771B
Authority
CN
China
Prior art keywords
application program
current application
update
file
client
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
Application number
CN201810718893.1A
Other languages
English (en)
Other versions
CN108958771A (zh
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.)
Baidu Online Network Technology Beijing Co Ltd
Original Assignee
Baidu Online Network Technology Beijing 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 Baidu Online Network Technology Beijing Co Ltd filed Critical Baidu Online Network Technology Beijing Co Ltd
Priority to CN201810718893.1A priority Critical patent/CN108958771B/zh
Publication of CN108958771A publication Critical patent/CN108958771A/zh
Application granted granted Critical
Publication of CN108958771B publication Critical patent/CN108958771B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种应用程序的更新方法、装置、服务器及存储介质。所述方法包括:接收客户端发送的当前应用程序对应的应用更新请求;其中,所述应用更新请求中携带所述当前应用程序对应的公钥;响应于所述应用更新请求使用所述当前应用程序对应的公钥和预先保存的所述当前应用程序对应的私钥对所述当前应用程序进行认证;若对所述当前应用程序认证通过,则向所述客户端发送所述当前应用程序对应的更新代码包,以使所述客户端使用所述当前应用程序对应的更新代码包更新所述当前应用程序。不仅可以保证应用程序的更新安全,而且还可以保证应用程序的更新性能。

Description

应用程序的更新方法、装置、服务器及存储介质
技术领域
本发明实施例涉及互联网技术领域,尤其涉及应用程序的更新方法、装置、服务器及存储介质。
背景技术
客户端应用是指安装在用户手机、电脑等终端设备上的,用于与服务器通信并展示内容的应用程序。移动互联网中的手机应用App是客户端应用的一种典型场景。客户端应用一般需要通过用户下载一个体积较大的代码包来完成更新过程,如果客户端应用安装规模较大,安装和升级这个过程会十分缓慢。
现有的应用程序的更新方法包括以下三种:第一、通过内嵌线上网页来完成应用程序的更新。内嵌线上网页是指应用在打开指定界面时,不通过客户端技术完成界面渲染,而是采用Webview打开指定的URL完成界面渲染。第二、通过内嵌HTML代码包来完成应用程序的更新。内嵌HTML代码包是指应用内置(或者在打开时下载)一组HTML文件以及其使用到的Javascript、CSS和图片等静态资源,在应用打开指定界面时,使用这组HTML文件完成页面渲染。客户端会按照预定周期请求服务器,查询HTML文件是否有更新,在客户端需要更新时,下载新的代码包,并通过校验代码包的HASH来确定代码包的合法性。第三、通过下发自定义格式的数据结构来完成应用程序的更新。下发自定义的数据结构是指通过服务器下发一个私有的,客户端可识别的数据结构(一般是XML或者JSON)来控制客户端完成渲染。当客户端需要更新时,服务器只需下发新的数据结构即可。
在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:
在现有的第一种应用程序的更新方法中,更新时间较长,性能较差;在现有的第二种应用程序的更新方法中,MTML代码包可能会被中间人攻击替换,安全性较差;在现有的第三种应用程序的更新方法中,下发自定义的数据结构同样会存在中间人攻击替换,安全性也较差。
发明内容
有鉴于此,本发明实施例提供一种应用程序的更新方法、装置、服务器及存储介质,不仅可以保证应用程序的更新安全,而且还可以保证应用程序的更新性能。
第一方面,本发明实施例提供了一种应用程序的更新方法,所述方法包括:
接收客户端发送的当前应用程序对应的应用更新请求;其中,所述应用更新请求中携带所述当前应用程序对应的公钥;
响应于所述应用更新请求使用所述当前应用程序对应的公钥和预先保存的所述当前应用程序对应的私钥对所述当前应用程序进行认证;
若对所述当前应用程序认证通过,则向所述客户端发送所述当前应用程序对应的更新代码包,以使所述客户端使用所述当前应用程序对应的更新代码包更新所述当前应用程序。
在上述实施例中,所述向所述客户端发送所述当前应用程序对应的更新代码包,以使所述客户端根据所述当前应用程序对应的更新代码包更新所述当前应用程序,包括:
将所述当前应用程序对应的更新代码包进行加密,生成所述当前应用程序对应的加密后的更新代码包;
向所述客户端发送所述当前应用程序对应的加密后的更新代码包,以使所述客户端使用所述当前应用程序对应的公钥对所述当前应用程序对应的加密后的更新代码包进行解密,使用所述当前应用程序对应的解密后的更新代码包更新所述当前应用程序。
在上述实施例中,所述将所述当前应用程序对应的更新代码包进行加密,生成所述当前应用程序对应的加密后的更新代码包,包括:
按照预先确定的第一数据结构从所述当前应用程序对应的更新代码包中提取所述当前应用程序对应的更新文件;
生成与所述更新文件对应的头文件和索引区文件;
按照预先确定的第二数据结构将所述当前应用程序对应的更新文件以及所述更新文件对应的头文件和索引区文件封装为所述当前应用程序对应的加密后的更新代码包。
在上述实施例中,所述第二数据结构包括:头结构、索引区结构和文件结构;其中,所述头结构用于封装所述更新文件对应的头文件;所述索引区结构用于封装所述更新文件对应的索引区文件;所述文件结构用于封装所述当前应用程序对应的更新文件。
在上述实施例中,在所述接收客户端发送的当前应用程序对应的应用更新请求之前,所述方法还包括:
按照预设周期接收所述客户端发送的所述当前应用程序对应的密钥更新请求;
响应于所述密钥更新请求对所述当前应用程序对应的公钥进行更新;
向所述客户端发送所述当前应用程序对应的更新后的公钥。
第二方面,本发明实施例提供了一种应用程序的更新装置,所述装置包括:接收模块、认证模块和发送模块;其中,
所述接收模块,用于接收客户端发送的当前应用程序对应的应用更新请求;其中,所述应用更新请求中携带所述当前应用程序对应的公钥;
所述认证模块,用于响应于所述应用更新请求使用所述当前应用程序对应的公钥和预先保存的所述当前应用程序对应的私钥对所述当前应用程序进行认证;
所述发送模块,用于若对所述当前应用程序认证通过,则向所述客户端发送所述当前应用程序对应的更新代码包,以使所述客户端使用所述当前应用程序对应的更新代码包更新所述当前应用程序。
在上述实施例中,所述发送模块包括:加密子模块和发送子模块;其中,
所述加密子模块,用于将所述当前应用程序对应的更新代码包进行加密,生成所述当前应用程序对应的加密后的更新代码包;
所述发送子模块,用于向所述客户端发送所述当前应用程序对应的加密后的更新代码包,以使所述客户端使用所述当前应用程序对应的公钥对所述当前应用程序对应的加密后的更新代码包进行解密,使用所述当前应用程序对应的解密后的更新代码包更新所述当前应用程序。
在上述实施例中,所述加密子模块,具体用于按照预先确定的第一数据结构从所述当前应用程序对应的更新代码包中提取所述当前应用程序对应的更新文件;生成与所述更新文件对应的头文件和索引区文件;按照预先确定的第二数据结构将所述当前应用程序对应的更新文件以及所述更新文件对应的头文件和索引区文件封装为所述当前应用程序对应的加密后的更新代码包。
在上述实施例中,所述第二数据结构包括:头结构、索引区结构和文件结构;其中,所述头结构用于封装所述更新文件对应的头文件;所述索引区结构用于封装所述更新文件对应的索引区文件;所述文件结构用于封装所述当前应用程序对应的更新文件。
在上述实施例中,其特征在于,所述装置还包括:更新模块;其中,
所述接收模块,还用于按照预设周期接收所述客户端发送的所述当前应用程序对应的密钥更新请求;
所述更新模块,用于响应于所述密钥更新请求对所述当前应用程序对应的公钥进行更新;
所述发送模块,还用于向所述客户端发送所述当前应用程序对应的更新后的公钥。
第三方面,本发明实施例提供了一种服务器,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的应用程序的更新方法。
第四方面,本发明实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的应用程序的更新方法。
本发明实施例提出了一种应用程序的更新方法、装置、服务器及存储介质,先接收客户端发送的当前应用程序对应的应用更新请求;其中,应用更新请求中携带预先保存的当前应用程序对应的公钥;然后响应于当前应用程序对应的应用更新请求使用当前应用程序对应的公钥和预先保存的当前应用程序对应的私钥对当前应用程序进行认证;若对当前应用程序认证通过,则将当前应用程序对应的更新代码包发送至客户端,以使所述客户端使用当前应用程序对应的更新代码包更新当前应用程序。也就是说,在本发明的技术方案中,可以使用当前应用程序对应的公钥和当前应用程序对应的私钥对当前应用程序进行认证。而在现有的第一种应用程序的更新方法中,更新时间较长,性能较差;在现有的第二种应用程序的更新方法中,MTML代码包可能会被中间人攻击替换,安全性较差;在现有的第三种应用程序的更新方法中,下发自定义的数据结构同样会存在中间人攻击替换,安全性也较差。因此,和现有技术相比,本发明实施例提出的应用程序的更新方法、装置、服务器及存储介质,不仅可以保证应用程序的更新安全,而且还可以保证应用程序的更新性能;并且,本发明实施例的技术方案实现简单方便、便于普及,适用范围更广。
附图说明
图1为本发明实施例一提供的应用程序的更新方法的流程示意图;
图2为本发明实施例二提供的应用程序的更新方法的流程示意图;
图3为本发明实施例三提供的应用程序的更新方法的流程示意图;
图4为本发明实施例四提供的应用程序的更新装置的第一结构示意图;
图5为本发明实施例四提供的应用程序的更新装置的第二结构示意图;
图6为本发明实施例五提供的服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
图1为本发明实施例一提供的应用程序的更新方法的流程示意图。如图1所示,应用程序的更新方法可以包括以下步骤:
S101、接收客户端发送的当前应用程序对应的应用更新请求;其中,应用更新请求中携带当前应用程序对应的公钥。
在本发明的具体实施例中,服务器可以接收客户端发送的当前应用程序对应的应用更新请求;其中,应用更新请求中携带当前应用程序对应的公钥。具体地,应用更新请求中携带的当前应用对应的公钥是在客户端中预先保存的,而不信任任何外部公钥,这样可以防止中间人攻击替换。
S102、响应于应用更新请求使用当前应用程序对应的公钥和预先保存的当前应用程序对应的私钥对当前应用程序进行认证。
在本发明的具体实施例中,服务器在接收到客户端发送的当前应用程序对应的应用更新请求之后,服务器可以响应于应用更新请求使用当前应用程序对应的公钥和预先保存的当前应用程序对应的私钥对当前应用程序进行认证。具体地,服务器可以先使用RSA算法生成一对公钥私钥对;服务器持有私钥,线下将公钥传给客户端;客户端将这个公钥硬编码到本地,这样在HTTPS建立时与服务器返回的证书比对私钥一致性,进而识别出中间人攻击后可以直接在客户端侧中止连接。
S103、若对当前应用程序认证通过,则向客户端发送当前应用程序对应的更新代码包,以使客户端使用当前应用程序对应的更新代码包更新当前应用程序。
在本发明的具体实施例中,若服务器对当前应用程序认证通过,则服务器向客户端发送当前应用程序对应的更新代码包,以使客户端使用当前应用程序对应的更新代码包更新当前应用程序。具体地,若服务器对当前应用程序认证通过,服务器可以将当前应用程序对应的更新代码包进行加密,生成当前应用程序对应的加密后的更新代码包;向客户端发送当前应用程序对应的加密后的更新代码包,以使客户端使用当前应用程序对应的公钥对当前应用程序对应的加密后的更新代码包进行解密,使用当前应用程序对应的解密后的更新代码包更新当前应用程序。
本发明实施例提出的应用程序的更新方法,先接收客户端发送的当前应用程序对应的应用更新请求;其中,应用更新请求中携带预先保存的当前应用程序对应的公钥;然后响应于当前应用程序对应的应用更新请求使用当前应用程序对应的公钥和预先保存的当前应用程序对应的私钥对当前应用程序进行认证;若对当前应用程序认证通过,则将当前应用程序对应的更新代码包发送至客户端,以使客户端使用当前应用程序对应的更新代码包更新当前应用程序。也就是说,在本发明的技术方案中,可以使用当前应用程序对应的公钥和当前应用程序对应的私钥对当前应用程序进行认证。而在现有的第一种应用程序的更新方法中,更新时间较长,性能较差;在现有的第二种应用程序的更新方法中,MTML代码包可能会被中间人攻击替换,安全性较差;在现有的第三种应用程序的更新方法中,下发自定义的数据结构同样会存在中间人攻击替换,安全性也较差。因此,和现有技术相比,本发明实施例提出的应用程序的更新方法,不仅可以保证应用程序的更新安全,而且还可以保证应用程序的更新性能;并且,本发明实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例二
图2为本发明实施例二提供的应用程序的更新方法的流程示意图。如图2所示,应用程序的更新方法可以包括以下步骤:
S201、接收客户端发送的当前应用程序对应的应用更新请求;其中,应用更新请求中携带当前应用程序对应的公钥。
在本发明的具体实施例中,服务器可以接收客户端发送的当前应用程序对应的应用更新请求;其中,应用更新请求中携带当前应用程序对应的公钥。具体地,应用更新请求中携带的当前应用对应的公钥是在客户端中预先保存的,而不信任任何外部公钥,这样可以防止中间人攻击替换。
S202、响应于应用更新请求使用当前应用程序对应的公钥和预先保存的当前应用程序对应的私钥对当前应用程序进行认证。
在本发明的具体实施例中,服务器在接收到客户端发送的当前应用程序对应的应用更新请求之后,服务器可以响应于应用更新请求使用当前应用程序对应的公钥和预先保存的当前应用程序对应的私钥对当前应用程序进行认证。具体地,服务器可以先使用RSA算法生成一对公钥私钥对;服务器持有私钥,线下将公钥传给客户端;客户端将这个公钥硬编码到本地,这样在HTTPS建立时与服务器返回的证书比对私钥一致性,进而识别出中间人攻击后可以直接在客户端侧中止连接。
S203、若对当前应用程序认证通过,将当前应用程序对应的更新代码包进行加密,生成当前应用程序对应的加密后的更新代码包。
在本发明的具体实施例中,若服务器对当前应用程序认证通过,服务器可以将当前应用程序对应的更新代码包进行加密,生成当前应用程序对应的加密后的更新代码包。具体地,服务器可以按照预先确定的第一数据结构从当前应用程序对应的更新代码包中提取当前应用程序对应的更新文件;然后生成与更新文件对应的头文件和索引区文件;再按照预先确定的第二数据结构将当前应用程序对应的更新文件以及更新文件对应的头文件和索引区文件封装为当前应用程序对应的加密后的更新代码包。
较佳地,在本发明的具体实施例中,第二数据结构可以包括:头结构、索引区结构和文件结构;其中,头结构用于封装更新文件对应的头文件;索引区结构用于封装更新文件对应的索引区文件;文件结构用于封装当前应用程序对应的更新文件。
S204、向客户端发送当前应用程序对应的加密后的更新代码包,以使客户端使用当前应用程序对应的公钥对当前应用程序对应的加密后的更新代码包进行解密,使用当前应用程序对应的解密后的更新代码包更新当前应用程序。
在本发明的具体实施例中,服务器可以向客户端发送当前应用程序对应的加密后的更新代码包,以使客户端使用当前应用程序对应的公钥对当前应用程序对应的加密后的更新代码包进行解密,使用当前应用程序对应的解密后的更新代码包更新当前应用程序。具体地,客户端在接收到服务器发送的当前应用程序对应的加密后的更新代码包之后,客户端可以使用对应的公钥对当前应用程序对应的加密后的更新代码包进行解密,然后客户端可以使用当前应用程序对应的解密后的更新代码包更新当前应用程序。
较佳地,在本发明的具体实施例中,服务器还可以按照预设周期接收客户端发送的当前应用程序对应的密钥更新请求;然后响应于密钥更新请求对当前应用程序对应的公钥进行更新;向客户端发送当前应用程序对应的更新后的公钥。
本发明实施例提出的应用程序的更新方法,先接收客户端发送的当前应用程序对应的应用更新请求;其中,应用更新请求中携带预先保存的当前应用程序对应的公钥;然后响应于当前应用程序对应的应用更新请求使用当前应用程序对应的公钥和预先保存的当前应用程序对应的私钥对当前应用程序进行认证;若对当前应用程序认证通过,则将当前应用程序对应的更新代码包发送至客户端,以使客户端使用当前应用程序对应的更新代码包更新当前应用程序。也就是说,在本发明的技术方案中,可以使用当前应用程序对应的公钥和当前应用程序对应的私钥对当前应用程序进行认证。而在现有的第一种应用程序的更新方法中,更新时间较长,性能较差;在现有的第二种应用程序的更新方法中,MTML代码包可能会被中间人攻击替换,安全性较差;在现有的第三种应用程序的更新方法中,下发自定义的数据结构同样会存在中间人攻击替换,安全性也较差。因此,和现有技术相比,本发明实施例提出的应用程序的更新方法,不仅可以保证应用程序的更新安全,而且还可以保证应用程序的更新性能;并且,本发明实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例三
图3为本发明实施例三提供的应用程序的更新方法的流程示意图。如图3所示,应用程序的更新方法可以包括以下步骤:
S301、接收客户端发送的当前应用程序对应的应用更新请求;其中,应用更新请求中携带当前应用程序对应的公钥。
在本发明的具体实施例中,服务器可以接收客户端发送的当前应用程序对应的应用更新请求;其中,应用更新请求中携带当前应用程序对应的公钥。具体地,应用更新请求中携带的当前应用对应的公钥是在客户端中预先保存的,而不信任任何外部公钥,这样可以防止中间人攻击替换。
S302、响应于应用更新请求使用当前应用程序对应的公钥和预先保存的当前应用程序对应的私钥对当前应用程序进行认证。
在本发明的具体实施例中,服务器在接收到客户端发送的当前应用程序对应的应用更新请求之后,服务器可以响应于应用更新请求使用当前应用程序对应的公钥和预先保存的当前应用程序对应的私钥对当前应用程序进行认证。具体地,服务器可以先使用RSA算法生成一对公钥私钥对;服务器持有私钥,线下将公钥传给客户端;客户端将这个公钥硬编码到本地,这样在HTTPS建立时与服务器返回的证书比对私钥一致性,进而识别出中间人攻击后可以直接在客户端侧中止连接。
S303、若对当前应用程序认证通过,按照预先确定的第一数据结构从当前应用程序对应的更新代码包中提取当前应用程序对应的更新文件。
在本发明的具体实施例中,若服务器对当前应用程序认证通过,服务器可以按照预先确定的第一数据结构从当前应用程序对应的更新代码包中提取当前应用程序对应的更新文件。
S304、生成与更新文件对应的头文件和索引区文件。
在本发明的具体实施例中,服务器可以生成与更新文件对应的头文件和索引区文件。具体地,当前应用程序对应的更新文件可以包括:更新文件1、更新文件2、…、更新文件N;其中,N为大于等于1的自然数。在本步骤中,服务器可以生成与更新文件1、更新文件2、…、更新文件N对应的头文件和索引区文件。
在本发明的具体实施例中,头文件可以包括:固定常量,长度为4字节或者8字节,用于表示更新代码包的加密方式;版本号,长度为4字节或者8字节,用于表示当前应用程序是否需要更新;更新文件数量,长度为4字节或者8字节,用于表示当前应用程序对应的更新文件的数量;索引区文件长度,长度为4字节或者8字节,用于表示索引区文件的内容长度;更新文件长度,长度为8字节或者16字节,用于表示当前应用程序对应的更新文件的内容长度;界面信息,长度为8字节或者16字节,用于表示当前应用程序的界面信息;索引区解密信息,长度为32字节或者64字节,用于解密索引区文件的加密数据。
在本发明的具体实施例中,索引区文件可以包括:全部更新文件的索引标识,长度为4字节或者8字节,用于表示当前应用程序对应的全部更新文件的存储位置;更新文件的大小,长度为4字节或者8字节,用于表示当前应用程序对应的全部更新文件的大小;更新文件的字符串长度,长度为2字节或者4字节,用于表示当前应用程序对应的全部更新文件的字符串长度;各个更新文件的索引标识,用于表示当前应用程序对应的各个更新文件的存储位置。
S305、按照预先确定的第二数据结构将当前应用程序对应的更新文件以及更新文件对应的头文件和索引区文件封装为当前应用程序对应的加密后的更新代码包。
在本发明的具体实施例中,服务器可以按照预先确定的第二数据结构将当前应用程序对应的更新文件以及更新文件对应的头文件和索引区文件封装为当前应用程序对应的加密后的更新代码包。具体地,第二数据结构可以包括:头结构、索引区结构和文件结构。服务器可以将更新文件对应的头文件封装在第二存储结构的头结构中;服务器还可以将更新文件对应的索引区文件封装在第二存储结构的索引区结构中;服务器还可以将当前应用程序对应的更新文件封装在第二存储结构的文件结构中。
S306、向客户端发送当前应用程序对应的加密后的更新代码包,以使客户端使用当前应用程序对应的公钥对当前应用程序对应的加密后的更新代码包进行解密,使用当前应用程序对应的解密后的更新代码包更新当前应用程序。
在本发明的具体实施例中,服务器可以向客户端发送当前应用程序对应的加密后的更新代码包,以使客户端使用当前应用程序对应的公钥对当前应用程序对应的加密后的更新代码包进行解密,使用当前应用程序对应的解密后的更新代码包更新当前应用程序。具体地,客户端在接收到服务器发送的当前应用程序对应的加密后的更新代码包之后,客户端可以使用对应的公钥对当前应用程序对应的加密后的更新代码包进行解密,然后客户端可以使用当前应用程序对应的解密后的更新代码包更新当前应用程序。
具体地,在本发明的具体实施例中,客户端可以使用当前应用程序对应的公钥对头文件中的索引区解密信息进行解密,得到32字节的解密数据;该解密数据包括:Key和IV;然后客户端可以使用Key和IV对索引区文件进行解密,可以得到更新文件对应的索引区文件;再根据该索引区文件获取到当前应用程序对应的解密后的更新代码包。
本发明实施例提出的应用程序的更新方法,先接收客户端发送的当前应用程序对应的应用更新请求;其中,应用更新请求中携带预先保存的当前应用程序对应的公钥;然后响应于当前应用程序对应的应用更新请求使用当前应用程序对应的公钥和预先保存的当前应用程序对应的私钥对当前应用程序进行认证;若对当前应用程序认证通过,则将当前应用程序对应的更新代码包发送至客户端,以使客户端使用当前应用程序对应的更新代码包更新当前应用程序。也就是说,在本发明的技术方案中,可以使用当前应用程序对应的公钥和当前应用程序对应的私钥对当前应用程序进行认证。而在现有的第一种应用程序的更新方法中,更新时间较长,性能较差;在现有的第二种应用程序的更新方法中,MTML代码包可能会被中间人攻击替换,安全性较差;在现有的第三种应用程序的更新方法中,下发自定义的数据结构同样会存在中间人攻击替换,安全性也较差。因此,和现有技术相比,本发明实施例提出的应用程序的更新方法,不仅可以保证应用程序的更新安全,而且还可以保证应用程序的更新性能;并且,本发明实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例四
图4为本发明实施例四提供的应用程序的更新装置的第一结构示意图。如图4所示,本发明实施例所述的应用程序的更新装置可以包括:接收模块401、认证模块402和发送模块403;其中,
所述接收模块401,用于接收客户端发送的当前应用程序对应的应用更新请求;其中,所述应用更新请求中携带所述当前应用程序对应的公钥;
所述认证模块402,用于响应于所述应用更新请求使用所述当前应用程序对应的公钥和预先保存的所述当前应用程序对应的私钥对所述当前应用程序进行认证;
所述发送模块403,用于若对所述当前应用程序认证通过,则向所述客户端发送所述当前应用程序对应的更新代码包,以使所述客户端使用所述当前应用程序对应的更新代码包更新所述当前应用程序。
图5为本发明实施例四提供的应用程序的更新装置的第二结构示意图。如图5所示,所述发送模块403包括:加密子模块4031和发送子模块4032;其中,
所述加密子模块4031,用于将所述当前应用程序对应的更新代码包进行加密,生成所述当前应用程序对应的加密后的更新代码包;
所述发送子模块4032,用于向所述客户端发送所述当前应用程序对应的加密后的更新代码包,以使所述客户端使用所述当前应用程序对应的公钥对所述当前应用程序对应的加密后的更新代码包进行解密,使用所述当前应用程序对应的解密后的更新代码包更新所述当前应用程序。
进一步的,所述加密子模块4031,具体用于按照预先确定的第一数据结构从所述当前应用程序对应的更新代码包中提取所述当前应用程序对应的更新文件;生成与所述更新文件对应的头文件和索引区文件;按照预先确定的第二数据结构将所述当前应用程序对应的更新文件以及所述更新文件对应的头文件和索引区文件封装为所述当前应用程序对应的加密后的更新代码包。
进一步的,所述第二数据结构包括:头结构、索引区结构和文件结构;其中,所述头结构用于封装所述更新文件对应的头文件;所述索引区结构用于封装所述更新文件对应的索引区文件;所述文件结构用于封装所述当前应用程序对应的更新文件。
进一步的,所述装置还包括:更新模块404(图中未示出);其中,
所述接收模块401,还用于按照预设周期接收所述客户端发送的所述当前应用程序对应的密钥更新请求;
所述更新模块404,用于响应于所述密钥更新请求对所述当前应用程序对应的公钥进行更新;
所述发送模块403,还用于向所述客户端发送所述当前应用程序对应的更新后的公钥。
上述应用程序的更新装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的应用程序的更新方法。
实施例五
图6为本发明实施例五提供的服务器的结构示意图。图6示出了适于用来实现本发明实施方式的示例性服务器的框图。图6显示的服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,服务器12以通用计算设备的形式表现。服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个小程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该服务器12交互的设备通信,和/或与使得该服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的应用程序的更新方法。
实施例六
本发明实施例六提供了一种计算机存储介质。
本发明实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (12)

1.一种应用程序的更新方法,其特征在于,所述方法包括:
接收客户端发送的当前应用程序对应的应用更新请求;其中,所述应用更新请求中携带所述当前应用程序对应的公钥;所述当前应用程序对应的公钥是在所述客户端中预先保存的;
响应于所述应用更新请求使用所述当前应用程序对应的公钥和预先保存的所述当前应用程序对应的私钥对所述当前应用程序进行认证;所述当前应用程序对应的公钥和所述当前应用程序对应的私钥组成一对公钥私钥对;所述公钥私钥对预先由RSA算法生成;
若对所述当前应用程序认证通过,则向所述客户端发送所述当前应用程序对应的更新代码包,以使所述客户端使用所述当前应用程序对应的更新代码包更新所述当前应用程序。
2.根据权利要求1所述的方法,其特征在于,所述向所述客户端发送所述当前应用程序对应的更新代码包,以使所述客户端根据所述当前应用程序对应的更新代码包更新所述当前应用程序,包括:
将所述当前应用程序对应的更新代码包进行加密,生成所述当前应用程序对应的加密后的更新代码包;
向所述客户端发送所述当前应用程序对应的加密后的更新代码包,以使所述客户端使用所述当前应用程序对应的公钥对所述当前应用程序对应的加密后的更新代码包进行解密,使用所述当前应用程序对应的解密后的更新代码包更新所述当前应用程序。
3.根据权利要求2所述的方法,其特征在于,所述将所述当前应用程序对应的更新代码包进行加密,生成所述当前应用程序对应的加密后的更新代码包,包括:
按照预先确定的第一数据结构从所述当前应用程序对应的更新代码包中提取所述当前应用程序对应的更新文件;
生成与所述更新文件对应的头文件和索引区文件;
按照预先确定的第二数据结构将所述当前应用程序对应的更新文件以及所述更新文件对应的头文件和索引区文件封装为所述当前应用程序对应的加密后的更新代码包。
4.根据权利要求3所述的方法,其特征在于,所述第二数据结构包括:头结构、索引区结构和文件结构;其中,所述头结构用于封装所述更新文件对应的头文件;所述索引区结构用于封装所述更新文件对应的索引区文件;所述文件结构用于封装所述当前应用程序对应的更新文件。
5.根据权利要求1所述的方法,其特征在于,在所述接收客户端发送的当前应用程序对应的应用更新请求之前,所述方法还包括:
按照预设周期接收所述客户端发送的所述当前应用程序对应的密钥更新请求;
响应于所述密钥更新请求对所述当前应用程序对应的公钥进行更新;
向所述客户端发送所述当前应用程序对应的更新后的公钥。
6.一种应用程序的更新装置,其特征在于,所述装置包括:接收模块、认证模块和发送模块;其中,
所述接收模块,用于接收客户端发送的当前应用程序对应的应用更新请求;其中,所述应用更新请求中携带所述当前应用程序对应的公钥;所述当前应用程序对应的公钥是在所述客户端中预先保存的;
所述认证模块,用于响应于所述应用更新请求使用所述当前应用程序对应的公钥和预先保存的所述当前应用程序对应的私钥对所述当前应用程序进行认证;所述当前应用程序对应的公钥和所述当前应用程序对应的私钥组成一对公钥私钥对;所述公钥私钥对预先由RSA算法生成;
所述发送模块,用于若对所述当前应用程序认证通过,则向所述客户端发送所述当前应用程序对应的更新代码包,以使所述客户端使用所述当前应用程序对应的更新代码包更新所述当前应用程序。
7.根据权利要求6所述的装置,其特征在于,所述发送模块包括:加密子模块和发送子模块;其中,
所述加密子模块,用于将所述当前应用程序对应的更新代码包进行加密,生成所述当前应用程序对应的加密后的更新代码包;
所述发送子模块,用于向所述客户端发送所述当前应用程序对应的加密后的更新代码包,以使所述客户端使用所述当前应用程序对应的公钥对所述当前应用程序对应的加密后的更新代码包进行解密,使用所述当前应用程序对应的解密后的更新代码包更新所述当前应用程序。
8.根据权利要求7所述的装置,其特征在于:
所述加密子模块,具体用于按照预先确定的第一数据结构从所述当前应用程序对应的更新代码包中提取所述当前应用程序对应的更新文件;生成与所述更新文件对应的头文件和索引区文件;按照预先确定的第二数据结构将所述当前应用程序对应的更新文件以及所述更新文件对应的头文件和索引区文件封装为所述当前应用程序对应的加密后的更新代码包。
9.根据权利要求8所述的装置,其特征在于,所述第二数据结构包括:头结构、索引区结构和文件结构;其中,所述头结构用于封装所述更新文件对应的头文件;所述索引区结构用于封装所述更新文件对应的索引区文件;所述文件结构用于封装所述当前应用程序对应的更新文件。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:更新模块;其中,
所述接收模块,还用于按照预设周期接收所述客户端发送的所述当前应用程序对应的密钥更新请求;
所述更新模块,用于响应于所述密钥更新请求对所述当前应用程序对应的公钥进行更新;
所述发送模块,还用于向所述客户端发送所述当前应用程序对应的更新后的公钥。
11.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至5中任一项所述的应用程序的更新方法。
12.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5中任一项所述的应用程序的更新方法。
CN201810718893.1A 2018-07-03 2018-07-03 应用程序的更新方法、装置、服务器及存储介质 Active CN108958771B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810718893.1A CN108958771B (zh) 2018-07-03 2018-07-03 应用程序的更新方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810718893.1A CN108958771B (zh) 2018-07-03 2018-07-03 应用程序的更新方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN108958771A CN108958771A (zh) 2018-12-07
CN108958771B true CN108958771B (zh) 2022-05-20

Family

ID=64485337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810718893.1A Active CN108958771B (zh) 2018-07-03 2018-07-03 应用程序的更新方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN108958771B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992286A (zh) * 2019-04-02 2019-07-09 深圳创维数字技术有限公司 设备升级方法、服务器及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103412767A (zh) * 2013-06-09 2013-11-27 百度国际科技(深圳)有限公司 一种应用版本的识别与升级方法以及系统
CN104077160A (zh) * 2014-05-12 2014-10-01 联动优势电子商务有限公司 一种升级安卓软件的方法、设备和系统
CN105893093A (zh) * 2016-03-31 2016-08-24 北京奇艺世纪科技有限公司 一种应用程序升级方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445109B2 (en) * 2016-06-30 2019-10-15 Digicert, Inc. Automated propagation of server configuration on a server cluster
CN108021379B (zh) * 2017-11-09 2021-03-16 维沃移动通信有限公司 一种应用程序的升级方法、移动终端及服务器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103412767A (zh) * 2013-06-09 2013-11-27 百度国际科技(深圳)有限公司 一种应用版本的识别与升级方法以及系统
CN104077160A (zh) * 2014-05-12 2014-10-01 联动优势电子商务有限公司 一种升级安卓软件的方法、设备和系统
CN105893093A (zh) * 2016-03-31 2016-08-24 北京奇艺世纪科技有限公司 一种应用程序升级方法及装置

Also Published As

Publication number Publication date
CN108958771A (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
CN108322461B (zh) 应用程序自动登录的方法、系统、装置、设备和介质
US11283778B2 (en) Data exchange system, method and device
CN111683103B (zh) 信息交互方法及装置
CN106454528A (zh) 基于可信执行环境的业务处理方法和客户端
CN110401677B (zh) 数字版权密钥的获取方法、装置、存储介质及电子设备
US20140059341A1 (en) Creating and accessing encrypted web based content in hybrid applications
CN111193725B (zh) 一种基于配置的联合登录方法、装置和计算机设备
KR101472346B1 (ko) 암호화된 웹 어플리케이션 제공 방법, 이를 지원하는 단말, 및 이를 위한 기록매체
CN111400760B (zh) web应用访问数据库的方法、装置、服务器和存储介质
CN114500054A (zh) 服务访问方法、服务访问装置、电子设备以及存储介质
CN109711178B (zh) 一种键值对的存储方法、装置、设备及存储介质
CN113630412B (zh) 资源下载方法、资源下载装置、电子设备以及存储介质
US10218505B1 (en) Server based settings for client software with asymmetric signing
CN108958771B (zh) 应用程序的更新方法、装置、服务器及存储介质
KR20180090060A (ko) 사물 인터넷 보안 모듈
KR101797571B1 (ko) 전자 서명 값의 생성이 가능한 클라이언트 단말 장치 및 상기 클라이언트 단말 장치의 전자 서명 값 생성 방법, 컴퓨터 판독 가능 기록 매체 및 저장매체에 저장된 컴퓨터 프로그램
KR20140089703A (ko) 모바일 데이터 보안 장치 및 방법
CN116633582A (zh) 安全通信方法、装置、电子设备及存储介质
JP2017183930A (ja) サーバ管理システム、サーバ装置、サーバ管理方法、及びプログラム
CN106657028B (zh) 一种安卓手机数据加密导出技术的实现方法
CN109408085A (zh) 硬件钱包的升级方法、装置、系统和存储介质
CN115589316A (zh) 一种数据加密传输方法、装置、电子设备及存储介质
CN110618967B (zh) 应用程序运行方法、安装包生成方法、装置、设备及介质
CN109358875B (zh) 基于Ubuntu系统的硬件钱包离线升级装置和方法
CN111625850A (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