应用程序包的管理方法、装置、计算机设备和存储介质与流程

文档序号:26050930发布日期:2021-07-27 15:26阅读:95来源:国知局
应用程序包的管理方法、装置、计算机设备和存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种应用程序包的管理方法、装置、计算机设备和存储介质。



背景技术:

随着互联网技术的普及,终端的发展也越来越迅速,用户在终端上安装各种功能的应用程序的需求越来越大。由于网络存在风险,网络中的应用程序也会存在诸多安全问题,如应用程序被篡改或盗用,导致用户信息泄露、财产损失等。然而,应用程序存在的安全隐患是多方面的,传统方式只考虑部分方面的安全隐患,同样会给用户带来财产损失或者隐私泄露。因此,如何提高应用程序包的安全性称为目标需要解决的一个技术问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高应用程序包安全性的应用程序包的管理方法、装置、计算机设备和存储介质。

一种应用程序包的管理方法,所述方法包括:

获取待签名应用程序包;

对所述待签名应用程序包中的关键文件进行哈希值计算,得到所述待签名应用程序包对应的原始哈希值库;

获取发布方身份信息,根据所述所述发布方身份信息生成代码签名证书申请请求,将所述代码签名证书申请请求发送至签发服务器,以使所述签发服务器验证所述发布方身份信息;

接收所述签发服务器在通过身份信息验证后发送的代码签名证书;

根据所述代码签名证书以及所述原始哈希值库对所述待签名应用程序包进行代码签名,得到已签名应用程序包;

发布所述已签名应用程序包,以使用户终端在安装已发布的应用程序包时,对所述已发布的应用程序包的发布方身份信息以及完整性进行验证,在通过验证后,安装所述已发布的应用程序包,得到已安装应用程序包。

在其中一个实施例中,在所述得到已安装应用程序包之后,所述方法还包括:

通过应用管理平台监控所述用户终端中已安装应用程序包的安全性;

当监控到未通过安全性验证的应用程序包时,通过所述应用管理平台生成告警信息。

在其中一个实施例中,所述通过应用管理平台监控所述用户终端中已安装应用程序包的安全性包括:

通过已安装应用程序包中的验证包在到达预设的验证时间时,对所述用户终端中的相应应用程序包进行解析,得到所述应用程序包对应的待验证哈希值库;

通过应用管理平台将预先存储的所述应用程序包对应的原始哈希值库与所述待验证哈希值库进行比对;

当比对一致时,通过所述应用管理平台以及所述验证包对所述待验证哈希值库中关键文件的哈希值进行验证;

当存在未通过哈希值验证的关键文件时,所述应用程序包未通过安全性验证。

在其中一个实施例中,所述方法还包括:

当比对不一致时,所述应用程序包未通过安全性验证。

在其中一个实施例中,所述当监控到未通过安全性验证的应用程序包时,通过所述应用管理平台生成告警信息包括:

当所述用户终端处于离线状态且监控到未通过安全性验证的应用程序包时,通过所述应用管理平台生成告警提示信息,将所述告警提示信息发送至所述用户终端;

当所述用户终端处于在线状态且监控到未通过安全性验证的应用程序包时,通过所述应用管理平台生成告警信息,将所述告警信息进行显示。

在其中一个实施例中,所述根据所述代码签名证书以及所述原始哈希值库对所述待签名应用程序包进行代码签名,得到已签名应用程序包包括:

根据所述代码签名证书对所述原始哈希值库进行签名,得到已签名哈希值库;

将所述已签名哈希值库与所述待签名应用程序包进行封装,得到封装后的文件;

根据所述代码签名证书对所述封装后的文件进行签名,得到已签名应用程序包。

一种应用程序包的管理装置,所述装置包括:

获取模块,用于获取待签名应用程序包;

计算模块,用于对所述待签名应用程序包中的关键文件进行哈希值计算,得到所述待签名应用程序包对应的原始哈希值库;

请求模块,用于获取发布方身份信息,根据所述所述发布方身份信息生成代码签名证书申请请求,将所述代码签名证书申请请求发送至签发服务器,以使所述签发服务器验证所述发布方身份信息;

接收模块,用于接收所述签发服务器在通过身份信息验证后发送的代码签名证书;

签名模块,用于根据所述代码签名证书以及所述原始哈希值库对所述待签名应用程序包进行代码签名,得到已签名应用程序包;

发布模块,用于发布所述已签名应用程序包,以使用户终端在安装已发布的应用程序包时,对所述已发布的应用程序包的发布方身份信息以及完整性进行验证,在通过验证后,安装所述已发布的应用程序包,得到已安装应用程序包。

在其中一个实施例中,所述装置还包括:

监控模块,用于通过应用管理平台监控所述用户终端中已安装应用程序包的安全性;当监控到未通过安全性验证的应用程序包时,通过所述应用管理平台生成告警信息。

一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述各个方法实施例中的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个方法实施例中的步骤。

上述应用程序包的管理方法、装置、计算机设备和存储介质,获取待签名应用程序包,对待签名应用程序包中的关键文件进行哈希值计算,得到待签名应用程序包对应的原始哈希值库,根据发布方身份信息生成代码签名证书申请请求,发送至签发服务器,接收签发服务器在通过发布方身份信息验证后发送的代码签名证书,从而根据代码签名证书以及原始哈希值库对待签名应用程序包进行代码签名,得到已签名应用程序包,进行发布,以使用户终端在安装已发布的应用程序包时,对已发布的应用程序包的发布方身份信息以及完整性进行验证,在通过验证后,安装已发布的应用程序包,得到已安装应用程序包。由于代码签名证书是通过身份信息验证后得到的,且代码签名证书中携带有发布方身份信息,原始哈希值库中包括关键文件的哈希值,根据代码签名证书以及原始哈希值库对待签名应用程序包进行代码签名,能够在安装已发布的应用程序包时,验证发布方身份信息,确定应用程序的来源,以安装正版应用程序包,同时,验证完整性能够确保安装的应用程序包未被篡改,有效提高了应用程序包的安全性。

附图说明

图1为一个实施例中应用程序包的管理方法的应用环境图;

图2为一个实施例中应用程序包的管理方法的流程示意图;

图3为另一个实施例中应用程序包的管理方法的流程示意图;

图4为一个实施例中应用程序包的管理装置的结构框图;

图5为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的应用程序包的管理方法,可以应用于如图1所示的应用环境中,包括:应用开发终端102,与应用开发终端102相连接的应用发布终端104,与应用发布终端104连接的签发服务器106,以及与应用发布终端104相连接的用户终端108。其中,应用开发终端用于进行代码开发,生成代签名应用程序包交付至应用发布终端。应用发布终端为应用程序包的提供方,提供应用程序下载服务。签发服务器用于在应用程序的发布以及运行等管理过程中提供验证服务。应用发布终端104获取应用开发终端102发送的待签名应用程序包,对待签名应用程序包中的关键文件进行哈希值计算,得到待签名应用程序包对应的原始哈希值库,获取发布方身份信息,根据发布方身份信息生成代码签名证书申请请求,将代码签名证书申请请求发送至签发服务器106,以使签发服务器106验证发布方身份信息。应用发布终端104接收签发服务器106在通过身份信息验证后发送的代码签名证书,根据代码签名证书以及原始哈希值库对待签名应用程序包进行代码签名,得到已签名应用程序包,发布已签名应用程序包,以使用户终端108在安装已发布的应用程序包时,对已发布的应用程序包的发布方身份信息以及完整性进行验证,在通过验证后,安装已发布的应用程序包,得到已安装应用程序包。其中,应用开发终端102、应用发布终端104以及用户终端108可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。签发服务器106可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种应用程序包的管理方法,以该方法应用于图1中的应用发布终端为例进行说明,包括以下步骤:

步骤202,获取待签名应用程序包。

应用程序是指为完成某项或多项特定工作的计算机程序,具有可视的用户界面。应用程序包是指应用程序对应的代码文件。待签名应用程序包是指需要进行代码签名的应用程序包。代码签名是指对应用程序包进行数字签名来标识发布方身份信息,经过代码签名的应用程序包,能够在网络中标识该应用程序包的发布方身份信息和完整性,可以确保发布方的身份信息和应用程序包在签名之后不被非法篡改。

应用开发终端对应的开发人员在完成代码开发后,会在开发代码中集成验证包,将验证包和开发代码进行封装,得到待签名应用程序包,从而将待签名应用程序包发送至应用发布终端。验证包可以是由签发服务器提供的,用于计算应用程序包的哈希值。例如,验证包可以是验证插件,验证插件是一种遵循应用程序包的哈希值计算规范的应用程序接口编写出来的程序。签发服务器用于在应用程序的发布以及运行等管理过程中提供验证服务,具体可以提供签发代码签名证书、对发布方身份进行验证以及提供签名服务。

步骤204,对待签名应用程序包中的关键文件进行哈希值计算,得到待签名应用程序包对应的原始哈希值库。

关键文件是指对应用程序的运行存在重要作用的文件,如执行文件、脚本文件、关键配置信息等。

待签名应用程序包中可以包括应用程序对应的源代码和验证包。源代码是指未编译的文本代码。源代码可以包括多个关键文件。具体的,应用发布终端可以通过执行待签名应用程序包中的验证包,对各个关键文件逐一进行哈希值计算,得到各个关键文件对应的哈希值。其中,可以采用相同的哈希(hash)算法,如md4(messagedigest,消息摘要算法第四版)、md5(messagedigest,消息摘要算法第五版)、sha(securehashalgorithm,安全哈希算法)及国密标准的sm3算法等中的任意一种对多个关键文件进行哈希值计算。哈希算法即散列函数,是一种单向密码体制,只有加密过程,没有解密过程。在计算得到多个关键文件对应的哈希值后,应用发布终端将多个关键文件的哈希值进行汇总,得到待签名应用程序包对应的原始哈希值库。原始哈希值库中包括多个关键文件汇总得到的关键文件清单以及各个关键文件对应的哈希值。通过对关键文件相机哈希值计算,实现对各个关键文件进行加密,提高各个关键文件的安全性。

步骤206,获取发布方身份信息,根据发布方身份信息生成代码签名证书申请请求,将代码签名证书申请请求发送至签发服务器,以使签发服务器验证发布方身份信息。

代码签名证书申请请求是用于申请代码签名证书的请求。代码签名证书是指对通过身份验证的应用发布终端签发的证书。代码签名证书用于对待签名应用程序包进行代码签名,能够标识发布方身份信息,还能够验证已签名应用程序发布包在发布后是否被篡改。

应用发布终端为了解决已发布软件的发布方身份信息无法确认,导致自身业务纠纷或者用户损失的问题,应用发布终端可以向签发服务器申请代码签名证书。具体的,应用程序发布终端可以获取发布方身份信息,即获取自身的身份信息,发布方身份信息可以包括发布方标识,如发布方名称或编号。应用程序发布终端根据发布方身份信息生成代码签名证书申请请求,将代码签名证书申请请求发送至签发服务器。签发服务器在获取到代码签名证书申请请求进行解析,得到发布方身份信息。签发服务器获取预先存储的发布方身份信息,将预先存储的发布方身份信息与解析得到的发布者身份信息进行比对,若比对一致,则通过身份验证。在通过身份验证后,签发服务器根据发布方身份信息签发代码签名证书,代码签名证书中包含有相应的加解密算法,如对称加解密算法、非对称加解密算法。代码签名证书可以通过包含的加密算法对应用程序包进行加密,并在用户终端安装应用程序包时,通过解密算法对应用程序包进行解密。签发服务器将签发的代码签名证书发送至应用发布终端。

步骤208,接收签发服务器在通过身份信息验证后发送的代码签名证书。

步骤210,根据代码签名证书以及原始哈希值库对待签名应用程序包进行代码签名,得到已签名应用程序包。

应用发布终端接收到签发服务器发送的代码签名证书,代码签名证书携带有发布方身份信息,可以根据代码签名证书以及原始哈希值库对待签名应用程序进行代码签名。其中,代码签名是指对应用程序包进行数字签名来标识发布方身份信息,经过代码签名的应用程序包,能够在网络中标识该应用程序包的发布方身份信息和完整性,可以确保发布方的身份信息和应用程序包在签名之后不被非法篡改。数据签名可以通过代码签名证书中包含的对称加密算法以及非对称解码算法中的至少一种来实现。具体的,对待签名应用程序包进行代码签名可以包括对原始哈希值库进行代码签名以及对签名后的哈希值库以及待签名应用程序包形成的封装文件进行代码签名。

在其中一个实施例中,根据代码签名证书以及原始哈希值库对待签名应用程序包进行代码签名,得到已签名应用程序包包括:根据代码签名证书对原始哈希值库进行签名,得到已签名哈希值库;将已签名哈希值库与待签名应用程序包进行封装,得到封装后的文件;根据代码签名证书对封装后的文件进行签名,得到已签名应用程序包。

应用发布终端可以通过代码签名证书对原始哈希值库进行代码签名,从而将已签名后哈希值库以及待签名应用程序包封装成一个文件,即封装后的文件。签发服务器可以在发送代码签名证书的同时,将代码签名证书相应的代码签名工具发送至应用发布终端。代码签名工具用于根据代码签名证书对应用程序进行数字签名。应用发布终端根据代码签名证书,通过代码签名工具对封装后的文件进行代码签名,实现对已签名哈希值库以及待签名应用程序包进行统一签名,进而得到已签名应用程序包。已签名应用程序包中包括签名后的哈希值库、发布方身份信息、应用程序版本信息、应用程序对应的源代码和验证包等。签名后的哈希值库中包括多个关键文件汇总得到的关键文件清单以及各个关键文件对应的哈希值。

在其中一个实施例中,应用发布终端在获取到代码签名证书、代码签名工具以及待签名应用程序包中的验证包后,可以将代码签名证书、代码签名工具以及验证包部署至预先建立的应用管理平台中,应用管理平台中还可以部署有应用监控平台。应用开发终端、应用发布终端以及用户终端都可以登录应用管理平台,通过应用管理平台实现应用开发终端、应用发布终端以及用户终端之间的交互。应用管理平台用于对应用程序进行管理,具体包括在应用程序包发布之前,应用发布终端通过代码签名证书、代码签名工具以及验证包对待签名应用程序包进行代码签名,在用户终端进行应用程序包安装时,对应用程序包进行发布方身份验证以及完整性验证,以及在应用程序包发布后,通过代码签名证书、验证包以及应用监控平台监控用户终端中的已安装应用程序包的安全性,在未通过安全性验证时,进行告警,实现应用程序包发布以及应用程序包后期运行的整个过程进行完整性监控,以确保应用程序包的安全性,避免了应用开发终端、应用发布终端以及用户终端的损失。

步骤212,发布已签名应用程序包,以使用户终端在安装已发布的应用程序包时,对已发布的应用程序包的发布方身份信息以及完整性进行验证,在通过验证后,安装已发布的应用程序包,得到已安装应用程序包。

应用发布终端将已签名应用程序包进行发布,以供用户终端进行下载。用户终端在下载已发布的应用程序包后,可以得到已发布的应用程序包,此时,用户终端可以获取已发布的应用程序包的安装指令,根据安装指令对已发布的应用程序包的发布方身份信息以及完整性进行验证。具体的,用户终端可以查找已发布的应用程序包的发布方身份信息,在应用管理平台中获取已发布的应用程序包的代码签名证书,代码签名证书中携带有已发布的应用程序包的发布方身份信息。用户终端将查找得到的发布方身份信息与代码签名证书中携带的发布方身份信息进行比对,若比对一致,则通过身份验证,表明已发布的应用程序包为正版应用程序。在其中一个实施例中,若用户终端没有查找到已发布的应用程序包的发布方身份信息,表明已发布的应用程序包未被签名,则生成“未知发布方”的告警提示信息,此时,可以通过人工确认获取到的已发布的应用程序包是否为应用发布方所发布的应用程序版本。完整性验证可以是对已发布的应用程序发布包中的哈希值库进行验证,在通过哈希值库验证后,对哈希值库中各个关键文件的哈希值进行验证。若通过完整性验证,则表明已发布的应用程序包未被篡改。代码签名证书可以通过包含的加密算法对应用程序包进行加密,并在用户终端安装应用程序包时,通过解密算法对应用程序包进行解密。

用户终端可以获取代码签名证书,根据代码签名证书中的解密算法对已发布的应用程序包进行解密。解密方式与已发布应用程序包的加密方式是相对应的。用户终端从而对解密后的应用程序包进行安装,得到已安装应用程序包。例如,已安装应用程序包可以是拍照应用程序、社交应用程序或者邮件应用程序等,从而通过用户终端上安装的这些应用程序可以实现各种功能,如拍照功能、社交功能或者电子邮件管理功能等。

若哈希值库未通过验证,或者未通过完整性验证,则生成应用程序包被篡改的提示信息,并在显示界面进行显示,用于提示用户终端对应的用户重新安装该已发布的应用程序包。

在本实施例中,获取待签名应用程序包,对待签名应用程序包中的关键文件进行哈希值计算,得到待签名应用程序包对应的原始哈希值库,根据发布方身份信息生成代码签名证书申请请求,发送至签发服务器,接收签发服务器在通过发布方身份信息验证后发送的代码签名证书,从而根据代码签名证书以及原始哈希值库对待签名应用程序包进行代码签名,得到已签名应用程序包,进行发布,以使用户终端在安装已发布的应用程序包时,对已发布的应用程序包的发布方身份信息以及完整性进行验证,在通过验证后,安装已发布的应用程序包,得到已安装应用程序包。由于代码签名证书是通过身份信息验证后得到的,且代码签名证书中携带有发布方身份信息,原始哈希值库中包括关键文件的哈希值,根据代码签名证书以及原始哈希值库对待签名应用程序包进行代码签名,能够在安装已发布的应用程序包时,验证发布方身份信息,确定应用程序的来源,以安装正版应用程序包,同时,验证完整性能够确保安装的应用程序包未被篡改,有效提高了应用程序包的安全性。

在另一个实施例中,如图3所示,提供了一种应用程序包的管理方法,以该方法应用于图1中的应用发布终端为例进行说明,包括以下步骤:

步骤302,获取待签名应用程序包。

步骤304,对待签名应用程序包中的关键文件进行哈希值计算,得到待签名应用程序包对应的原始哈希值库。

步骤306,获取发布方身份信息,根据发布方身份信息生成代码签名证书申请请求,将代码签名证书申请请求发送至签发服务器,以使签发服务器验证发布方身份信息。

步骤308,接收签发服务器在通过身份信息验证后发送的代码签名证书。

步骤310,根据代码签名证书以及原始哈希值库对待签名应用程序包进行代码签名,得到已签名应用程序包。

步骤312,发布已签名应用程序包,以使用户终端在安装已发布的应用程序包时,对已发布的应用程序包的发布方身份信息以及完整性进行验证,在通过验证后,安装已发布的应用程序包,得到已安装应用程序包。

步骤314,通过应用管理平台监控用户终端中已安装应用程序包的安全性。

步骤316,当监控到未通过安全性验证的应用程序包时,通过应用管理平台生成告警信息。

应用发布终端在发布已签名应用程序包后,可供用户终端进行下载以及安装。用户终端在安装已发布的应用程序包后,得到已安装应用程序包。对于用户终端中的已安装应用程序包,当已安装应用程序包在运行过程中,应用发布终端可以通过应用管理平台对用户终端中的已安装应用程序包进行安全性监控。应用管理平台中可以包括代码签名证书、验证包以及应用监控平台。

具体的,由于已签名应用程序包在发布前,已集成验证包。应用发布终端可以通过已安装应用程序包中的验证包对已安装应用程序包进行解析,得到已安装应用程序包中的哈希值库,根据应用管理平台中应用监控平台中预先存储的已安装应用程序包对应的原始哈希值库对已安装应用程序包中的哈希值库进行验证,当未通过验证时,表明该已安装应用程序包未通过安全性验证。当通过验证时,通过应用监控平台以及验证包对待验证哈希值库中关键文件的哈希值进行验证,当通过验证时,表明该已安装应用程序包未通过安全性验证。当存在未通过安全性验证的应用程序包,生成已安装应用程序包被篡改的告警信息。

在本实施例中,根据携带有发布方身份信息的代码签名证书以及原始哈希值库对待签名应用程序包进行代码签名,能够在安装已发布的应用程序包时,验证发布方身份信息,确定应用程序的来源,以安装正版应用程序包。在安装应用程序包后,还可以对已安装应用程序包的安全性进行验证,能够在已安装应用程序包被篡改时,及时生成告警信息,从而能够有效避免被篡改的应用程序包对用户终端、应用发布终端、应用开发终端造成损失,同时,进一步提高了应用程序包的安全性。

在一个实施例中,通过应用管理平台监控用户终端中已安装应用程序包的安全性包括:通过已安装应用程序包中的验证包在到达预设的验证时间时,对用户终端中的相应应用程序包进行解析,得到应用程序包对应的待验证哈希值库;通过应用管理平台将预先存储的应用程序包对应的原始哈希值库与待验证哈希值库进行比对;当比对一致时,通过应用管理平台以及验证包对待验证哈希值库中关键文件的哈希值进行验证;当存在未通过哈希值验证的关键文件时,应用程序包未通过安全性验证。

应用管理平台中包括应用监控平台,应用监控平台中存储有已安装应用程序包对应的原始哈希值库。已签名应用程序包在发布前,已集成验证包,验证包中预先设置有验证时间。验证时间是指对验证包所在的应用程序包的验证时间。用户终端中已安装应用程序包的验证包在到达验证时间时,对相应应用程序包进行解析,得到应用程序包对应的待验证哈希值库。应用监控平台可以获取应用程序包对应的原始哈希值库,将原始哈希值库与待验证哈希值库进行比对,当哈希值库比对一致时,表明用户终端中该应用程序包中的待验证哈希值库未被篡改。验证包可以获取待验证哈希值库中的文件清单,采用对该应用程序包进行代码签名时的相同哈希算法对文件清单中的各个关键文件逐一进行哈希值计算,得到应用程序中各个关键文件对应的待验证哈希值。验证包可以将计算的应用程序包中各个关键文件对应的待验证哈希值通过预设接口发送至应用监控平台,通过应用监控平台确定预先存储的该应用程序包对应的原始哈希值库,将计算的各个关键文件对应的待验证哈希值与原始哈希值库中相应关键文件的哈希值进行比对,当关键文件的哈希值比对一致时,表明该应用程序包未被篡改。当关键文件的哈希值比对不一致时,表明该应用程序包已被篡改。

在其中一个实施例中,上述方法还包括:当哈希值库比对不一致时,应用程序包未通过安全性验证。当哈希值库比对不一致时,不需要进行后续的哈希值比对,只要哈希值库被篡改,相应的应用程序包即发生了篡改。

在本实施例中,通过已安装应用程序包中的验证包定时对相应应用程序包进行解析,通过应用管理平台将预先存储的应用程序包对应的原始哈希值库与待验证哈希值库进行比对,在比对一致时,通过应用管理平台以及验证包对待验证哈希值库中关键文件的哈希值进行验证。能够对用户终端中的已安装应用程序包进行持续安全性监控,及时发现被篡改的应用程序包,以及被篡改的关键文件,以对被篡改的应用程序包或关键文件进行相应处理。

在一个实施例中,当监控到未通过安全性验证的应用程序包时,通过验证包生成告警信息包括:当用户终端处于离线状态且监控到未通过安全性验证的应用程序包时,通过验证包生成告警提示信息,将告警提示信息发送至用户终端;当用户终端处于离线状态且监控到未通过安全性验证的应用程序包时,通过验证包生成告警信息,将告警信息进行上报。

在用户终端安装已发布应用程序包后,当用户终端处于离线状态时,应用发布终端可以通过应用管理平台对用户终端中的已安装应用程序包进行安全性监控。当监控到未通过安全性验证的应用程序包时,应用管理平台可以将生成告警提示信息,将告警提示信息发送至用户终端,用户终端通过显示界面进行显示,以使用户重新安装该未通过安全性验证的应用程序包。离线状态可以是用户终端中已安装应用程序包在运行过程中,网络中断的情况。

当用户终端处于在线状态时,即网络正常的情况下,应用发布终端同样可以通过应用管理平台对用户终端中的已安装应用程序包进行安全性监控。当监控到未通过安全性验证的应用程序包时,应用管理平台中的应用监控平台生成告警信息,并在应用监控平台显示该告警信息,以使管理人员快速定位未通过安全性验证,需要重新安装应用程序包的用户终端。

在本实施例中,能够在离线状态以及在线状态下,对用户终端中的已安装应用程序包进行安全性监控,并采取相应的告警方式提取用户或者管理人员定位需要重新安装的应用软件包,实现在不同场景下对用户终端中的已安装应用程序包进行安全性监控,有效提高了应用程序的安全性。

应该理解的是,虽然图2至3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种应用程序包的管理装置,包括:获取模块402、计算模块404、请求模块406、接收模块408、签名模块410和发布模块412,其中:

获取模块402,用于获取待签名应用程序包。

计算模块404,用于对待签名应用程序包中的关键文件进行哈希值计算,得到待签名应用程序包对应的原始哈希值库。

请求模块406,用于获取发布方身份信息,根据发布方身份信息生成代码签名证书申请请求,将代码签名证书申请请求发送至签发服务器,以使签发服务器验证发布方身份信息。

接收模块408,用于接收签发服务器在通过身份信息验证后发送的代码签名证书。

签名模块410,用于根据代码签名证书以及原始哈希值库对待签名应用程序包进行代码签名,得到已签名应用程序包。

发布模块412,用于发布已签名应用程序包,以使用户终端在安装已发布的应用程序包时,对已发布的应用程序包的发布方身份信息以及完整性进行验证,在通过验证后,安装已发布的应用程序包,得到已安装应用程序包。

在一个实施例中,上述装置还包括:监控模块,用于通过应用管理平台监控用户终端中已安装应用程序包的安全性;当监控到未通过安全性验证的应用程序包时,通过应用管理平台生成告警信息。

在一个实施例中,监控模块还用于通过已安装应用程序包中的验证包在到达预设的验证时间时,对用户终端中的相应应用程序包进行解析,得到应用程序包对应的待验证哈希值库;通过应用管理平台将预先存储的应用程序包对应的原始哈希值库与待验证哈希值库进行比对;当比对一致时,通过应用管理平台以及验证包对待验证哈希值库中关键文件的哈希值进行验证;当存在未通过哈希值验证的文件时,应用程序包未通过安全性验证。

在一个实施例中,监控模块还用于当比对不一致时,应用程序包未通过安全性验证。

在一个实施例中,监控模块还用于当用户终端处于离线状态且监控到未通过安全性验证的应用程序包时,通过应用管理平台生成告警提示信息,将告警提示信息发送至用户终端;当用户终端处于在线状态且监控到未通过安全性验证的应用程序包时,通过应用管理平台生成告警信息,将告警信息进行显示。

在一个实施例中,签名模块410还用于根据代码签名证书对原始哈希值库进行签名,得到已签名哈希值库;将已签名哈希值库与待签名应用程序包进行封装,得到封装后的文件;根据代码签名证书对封装后的文件进行签名,得到已签名应用程序包。

关于应用程序包的管理装置的具体限定可以参见上文中对于应用程序包的管理方法的限定,在此不再赘述。上述应用程序包的管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用程序包的管理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述各个实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1