一种应用程序安全保护的方法及装置与流程

文档序号:11251236阅读:317来源:国知局
一种应用程序安全保护的方法及装置与流程

本发明涉及应用程序安全管理技术,尤其涉及一种应用程序安全保护的方法及装置。



背景技术:

随着智能设备,如智能手机、平板电脑等的快速发展,使得这些智能设备的应用越来越广泛,同时,基于智能设备的应用程序的种类也越来越多,如阅读器、音乐播放器等等,为用户提供了很大便利。

然而,在将应用程序打包生成安卓安装包(apk,androidpackage)文件后,可能会遭到第三方恶意的反编译、篡改源程序代码或者在源程序代码中植入多种恶意的广告信息,此时,需要对经过反编译、篡改或植入广告信息的源程序代码进行二次打包签名以实现apk文件的发布。由于在该二次打包的过程中,文件的包名并未被修改,因此,当第三方将该经过二次打包的应用程序发布之后,很容易导致客户端下载的应用程序并非为原版本的应用程序,从而给用户造成很大困扰和经济损失,降低用户体验。

为解决上述问题,目前现有技术中有一种解决方案是采用对应用程序的核心部分进行加密,即不暴露应用程序的核心技术部分,然而,一旦应用程序核心部分的密码被不法分子攻破,则该应用程序的核心部分也是极有可能会被篡改,从而需要对应用程序进行二次打包,且当经过二次打包的应用程序被客户端下载、安装并使用时,客户端不易察觉,从而导致客户端所使用的应用程序版本并非为原版本。

此外,现有技术中还存在另外一种解决方案,即通过将客户端下载、安装的应用程序的公钥与存储在本地服务端的应用程序的公钥进行比对,判断两者是否一致,以此来确定客户端安装的应用程序是否安全。然而,该技术方案存在一些技术问题:第三方一旦通过非法手段获取到该公钥,则依然可以篡改该应用程序,只要不修改公钥,很容易逃过公钥校验这一步骤;同时,当一个应用程序被数十万或百万客户端下载时,如何将公钥告知客户端,又是一个很大问题。

因此,现有技术中亟待需要一种能够有效防止应用程序被二次打包的方法,以避免应用程序被第三方恶意篡改。



技术实现要素:

有鉴于此,本发明实施例期望提供一种应用程序安全保护的方法及装置,能够有效防止应用程序被二次打包,达到避免应用程序被第三方恶意篡改的目的,从而增强终端应用程序的安全性。

为达到上述目的,本发明实施例的技术方案是这样实现的:

本发明实施例提供一种应用程序安全保护的方法,所述方法包括:

获取客户端下载的应用程序的相关信息;

检测所述客户端下载的应用程序是否为发布者发布的原版本的应用程序;

检测到所述客户端下载的应用程序为非原版本的应用程序时,发送警告信息至客户端,并将原版本的应用程序对应的安装包的链接发送给客户端。

上述方案中,所述应用程序对应的安装包以包名和唯一标识的格式存储于服务器中。

上述方案中,所述检测客户端下载的应用程序是否为发布者发布的原版本的应用程序,包括:

判断预先存储于所述服务器中各个原版本的应用程序对应的安装包的包名和唯一标识中是否包含所述客户端下载的应用程序对应的安装包的包名和唯一标识,若是,则表明所述客户端下载的应用程序为发布者发布的原版本的应用程序,否则,表明所述客户端下载的应用程序为非原版本的应用程序。

上述方案中,所述方法还包括:接收客户端根据所述链接下载的原版本的应用程序对应的安装包,并将所述原版本的应用程序对应的安装包覆盖客户端下载的非原版本的应用程序对应的安装包。

上述方案中,在所述将原版本的应用程序对应的安装包的链接发送给客户端之后,所述方法还包括:

在预设时间段内,检测到所述客户端未下载原版本的应用程序,且一直在使用非原版本的应用程序时,终止所述非原版本的应用程序的运行。

本发明实施例还提供一种应用程序安全保护的装置,所述装置包括:获取模块、检测模块、处理模块;其中,

所述获取模块,用于获取客户端下载的应用程序的相关信息;

所述检测模块,用于检测所述客户端下载的应用程序是否为发布者发布的原版本的应用程序;

所述处理模块,用于检测到所述客户端下载的应用程序为非原版本的应用程序时,发送警告信息至客户端,并将原版本的应用程序对应的安装包的链接发送给客户端。

上述方案中,所述检测模块,具体用于:判断预先存储于所述服务器中各个原版本的应用程序对应的安装包的包名和唯一标识中是否包含所述客户端下载的应用程序对应的安装包的包名和唯一标识,若是,则表明所述客户端下载的应用程序为发布者发布的原版本的应用程序,否则,表明所述客户端下载的应用程序为非原版本的应用程序。

上述方案中,所述处理模块,还用于:接收客户端根据所述链接下载的原版本的应用程序对应的安装包,并将所述原版本的应用程序对应的安装包覆盖客户端下载的非原版本的应用程序对应的安装包,

上述方案中,所述处理模块,还用于在所述将原版本的应用程序对应的安装包的链接发送给客户端之后,在预设时间段内,检测到所述客户端未下载原版本的应用程序,且一直在使用非原版本的应用程序时,终止所述非原版本的应用程序的运行。

本发明实施例所提供的应用程序安全保护的方法及装置,获取客户端下载的应用程序的相关信息;检测所述客户端下载的应用程序是否为发布者发布的原版本的应用程序;检测到所述客户端下载的应用程序为非原版本的应用程序时,发送警告信息至客户端,并将原版本的应用程序对应的安装包的链接发送给客户端。如此,能够有效解决终端在应用程序发布后有可能遭到第三方恶意篡改的问题,避免应用程序被二次打包,增强终端应用程序的安全性,从而提升用户的使用体验。

附图说明

图1为本发明实施例应用程序安全保护的方法的流程示意图;

图2为本发明实施例计算原版本的应用程序的md5值的程序代码示意图;

图3为本发明实施例应用程序安全保护的装置的组成结构示意图。

具体实施方式

为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明。

在本发明实施例中,所述智能终端可以包括但不限于手机、平板、掌上电脑等电子设备。

如图1所示,本发明实施例中应用程序安全保护的方法的实现流程,包括以下步骤:

步骤101:获取客户端下载的应用程序的相关信息;

这里,所述客户端下载的应用程序的相关信息,既可以是完整的应用程序,也可以是应用程序的一部分,即应用程序的包名和唯一标识。

在执行本步骤之前,服务器应该接收发布者上传的原版本的应用程序,以供客户端下载完整的应用程序,或者直接获取应用程序的包名和唯一标识。

这里,在检测到客户端下载、安装完应用程序,并打开该应用程序时,可以直接获取客户端下载的应用程序的相关信息;所述客户端下载的应用程序实际上是指发布者将应用程序打包生成的安装包文件;其中,所述应用程序对应的安装包以包名和唯一标识的格式存储于服务器中,利用唯一标识可以区分安装于智能终端上的不同应用程序。

这里,可以采用各种已有的或新的获取方法获取客户端下载的应用程序,这里不做限定。

步骤102:检测所述客户端下载的应用程序是否为发布者发布的原版本的应用程序;

本步骤具体包括:判断预先存储于所述服务器中各个原版本的应用程序对应的安装包的包名和唯一标识中是否包含所述客户端下载的应用程序对应的安装包的包名和唯一标识,若是,则表明所述客户端下载的应用程序为发布者发布的原版本的应用程序;否则,表明所述客户端下载的应用程序为非原版本的应用程序。

优选地,本发明实施例中应用程序的唯一标识以应用程序的消息摘要算法第五版(md5,messagedigestalgorithm5)值表示。这样,发布者发布apk应用程序时,预先将各个原版本的应用程序对应的安装包以“包名+md5值”的格式存储于服务器中,由于md5值类似于应用程序的指纹信息,即两个不同版本的应用程序对应的安装包的md5值相同的概率几乎为零,因此,采用md5值可以很好地区分不同的应用程序,在一定程度上方便用户对服务器的管理。

这里,可通过消息摘要算法计算原版本的应用程序对应的安装包的md5值,计算过程可采用如图2所示的实现md5值计算的程序代码,该程序代码主要使用dos命令计算应用程序的md5值。消息摘要算法是计算机广泛使用的散列算法之一。

具体来说,在客户端下载、安装某应用程序后,且运行该应用程序时,首先获取该应用程序的安装路径;然后,通过消息摘要算法计算客户端下载的应用程序对应的安装包的md5值,所采用的程序代码仍然使用dos命令来计算应用程序的md5值;之后,客户端向服务器以“包名+md5值”的形式发起查询请求,服务器接收到该查询请求后,会验证客户端下载的应用程序对应的安装包的md5值是否存在于服务器中,若验证成功,则表明所述客户端下载的应用程序为发布者发布的原版本的应用程序,否则,表明所述客户端下载的应用程序为非原版本的应用程序。也就是说,当验证失败时,表明客户端下载的应用程序遭到了第三方的恶意篡改,存在安全隐患。

步骤103:检测到所述客户端下载的应用程序为非原版本的应用程序时,发送警告信息至客户端,并将原版本的应用程序对应的安装包的链接发送给客户端。

需要说明的是,用户通过点击服务器发送的原版本的应用程序对应的安装包的链接,即可直接下载该应用程序的原版本的安装包。

这里,所述方法还包括:接收客户端根据所述链接下载的原版本的应用程序对应的安装包,并将所述原版本的应用程序对应的安装包覆盖客户端下载的非原版本的应用程序对应的安装包。这样,可以有效地避免非原版本的应用程序给用户带来的干扰,同时,还可以节省智能终端的存储资源。

在所述将原版本的应用程序对应的安装包的链接发送给客户端之后,所述方法还包括:

在预设时间段内,检测到所述客户端未下载原版本的应用程序,且一直在使用非原版本的应用程序时,终止所述非原版本的应用程序的运行。

这里,对于如何检测到所述客户端未下载原版本的应用程序,同样可以采用通过消息摘要算法计算客户端当前下载的应用程序的md5值,并判断客户端当前下载的应用程序的md5值是否包含在服务器中预先存储的各个原版本的应用程序的md5值集合中,若未包含在其中,则表明检测到所述客户端未下载原版本的应用程序。

这里,在终止所述非原版本的应用程序的运行之后,所述方法还包括:直接推送所述原版本的应用程序对应的安装包给客户端,并将所述原版本的应用程序对应的安装包覆盖客户端下载的非原版本的应用程序对应的安装包。

需要说明的是,除了上述本发明实施例提供的应用程序安全保护的方法,还存在另外一种解决方案,可以仅计算应用程序对应的安装包的核心部分的md5值,同样,仅需判断服务器中存储的各个原版本应用程序对应的安装包的核心部分的md5值中是否包含计算出的客户端下载、安装的应用程序对应的安装包的核心部分的md5值,其他处理过程与上述计算整个应用程序对应的安装包的md5值并比对后的处理过程相同,在此不再一一赘述。

本发明实施例将通过消息摘要算法计算出的下载的应用程序对应的安装包的md5值,与存储在服务器中各个原版本的应用程序对应的安装包的md5值进行比对,能够快速判断出客户端下载、安装的应用程序是否为原版本的应用程序;采用本发明实施例提供的技术方案,可以有效提高识别应用程序是否被篡改的正确率,同时,阻止应用程序被二次打包,增强终端应用程序的安全性,从而提升用户的使用体验。

为实现上述方法,本发明实施例还提供了一种应用程序安全保护的装置,如图3所示,该装置包括获取模块301、检测模块302、处理模块303;其中,

所述获取模块301,用于获取客户端下载的应用程序的相关信息;

所述检测模块302,用于检测所述客户端下载的应用程序是否为发布者发布的原版本的应用程序;

所述处理模块303,用于检测到所述客户端下载的应用程序为非原版本的应用程序时,发送警告信息至客户端,并将原版本的应用程序对应的安装包的链接发送给客户端。

这里,所述处理模块303,还用于:接收客户端根据所述链接下载的原版本的应用程序对应的安装包,并将所述原版本的应用程序对应的安装包覆盖客户端下载的非原版本的应用程序对应的安装包。

这里,所述处理模块303,还用于在所述将原版本的应用程序对应的安装包的链接发送给客户端之后,在预设时间段内,检测到所述客户端未下载原版本的应用程序,且一直在使用非原版本的应用程序时,终止所述非原版本的应用程序的运行。

这里,所述处理模块303,还用于在终止所述非原版本的应用程序的运行之后,直接推送所述原版本的应用程序对应的安装包给客户端,并将所述原版本的应用程序对应的安装包覆盖客户端下载的非原版本的应用程序对应的安装包。

其中,所述应用程序对应的安装包以包名和唯一标识的格式存储于服务器中。

这里,所述检测模块302,具体用于:判断预先存储于所述服务器中各个原版本的应用程序对应的安装包的包名和唯一标识中是否包含所述客户端下载的应用程序对应的安装包的包名和唯一标识,若是,则表明所述客户端下载的应用程序为发布者发布的原版本的应用程序;否则,表明所述客户端下载的应用程序为非原版本的应用程序。

在实际应用中,所述获取模块301、检测模块302、处理模块303均可由位于智能终端上的中央处理器(cpu,centralprocessingunit)、微处理器(mpu,microprocessorunit)、数字信号处理器(dsp,digitalsignalprocessor)、或现场可编程门阵列(fpga,fieldprogrammablegatearray)等实现。

本发明实施例获取客户端下载的应用程序的相关信息;检测所述客户端下载的应用程序是否为发布者发布的原版本的应用程序;检测到所述客户端下载的应用程序为非原版本的应用程序时,发送警告信息至客户端,并将原版本的应用程序对应的安装包的链接发送给客户端。如此,能够有效解决终端在应用程序发布后有可能遭到第三方恶意篡改的问题,避免应用程序被二次打包,增强终端应用程序的安全性,从而提升用户的使用体验。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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