一种检测应用程序安装包是否被篡改的方法及装置制造方法

文档序号:6620684阅读:282来源:国知局
一种检测应用程序安装包是否被篡改的方法及装置制造方法
【专利摘要】本发明实施例公开了一种检测应用程序安装包是否被篡改的方法及装置,应用于移动终端的方法,包括:读取所述移动终端中的应用程序安装包的终端侧数字签名证书信息;按预设的第一算法将该应用程序安装包的终端侧数字签名证书信息转换为第一标记信息;将第一标记信息发送至服务器进行检测;接收服务器返回的检测结果;所述检测结果为服务器将获得的第二标记信息与第一标记信息进行比较后获得的;所述第二标记信息为所述服务器按所述的第一算法将该应用程序安装包的已知合法的终端侧数字签名证书信息转换后获得的;根据检测结果获知该应用程序安装包是否被篡改。应用本发明实施例,能够有效地检测应用程序安装包是否被篡改。
【专利说明】一种检测应用程序安装包是否被篡改的方法及装置

【技术领域】
[0001] 本发明涉及软件安全【技术领域】,特别涉及一种检测应用程序安装包是否被篡改的 方法及装置。

【背景技术】
[0002] 随着安卓(Android)系统的逐渐普及,Android应用程序的安装包(APK)的安全问 题日益显著。有不法破解者会对APK安装包进行篡改,以达到非法的目的。通常,不法破解 者会通过对APK安装包进行反向编译后,在原APK安装包里注入广告或者自己的代码的方 式来对APK安装包进行篡改。这样,很多用户就会在不知情的情况下,使用了被篡改的APK 安装包。
[0003] 目前,还没有有效的技术手段来检测APK安装包是否被篡改。


【发明内容】

[0004] 有鉴于此,本发明实施例的目的在于提供检测应用程序安装包是否被篡改的方法 及装置,以便确定应用程序安装包是否被篡改。
[0005] 为达到上述目的,本发明实施例公开了一种检测应用程序安装包是否被篡改的方 法,应用于移动终端,包括:
[0006] 读取所述移动终端中的应用程序安装包的终端侧数字签名证书信息;
[0007] 按预设的第一算法将该应用程序安装包的终端侧数字签名证书信息转换为该应 用程序安装包的第一标记信息;
[0008] 将所述第一标记信息发送至服务器进行检测;
[0009] 接收所述服务器返回的检测结果;所述检测结果为所述服务器将获得的第二标记 信息与第一标记信息进行比较后获得的;所述第二标记信息为所述服务器按所述第一算法 将该应用程序安装包的已知合法的终端侧数字签名证书信息转换后获得的;
[0010] 根据检测结果获知该应用程序安装包是否被篡改。
[0011] 较佳地,在按预设的第一算法将该应用程序安装包的终端侧数字签名证书信息转 换为该应用程序安装包的第一标记信息后,可以进一步对第一标记信息进行加密处理,获 得一个加密后第一标记信息;
[0012] 所述将所述第一标记信息发送至服务器进行检测,为:将所述加密后第一标记信 息发送至所述应用程序对应的服务器进行检测;
[0013] 所述检测结果为:所述服务器对所述加密后第一标记信息进行解密后,得到解密 后的第一标记信息,再将获得的第二标记信息与解密后的第一标记信息进行比较后获得 的。
[0014] 较佳的,所述对第一标记信息进行加密处理,可以包括:采用RSA加密算法或DSA 加密算法或ECC加密算法或SHA加密算法或HMAC加密算法中的一种或多种,对第一标记信 息进行加密处理,获得一个加密后第一标记信息;
[0015] 所述服务器对所述加密后第一标记信息进行解密,为:采用与加密处理对应的解 密算法对加密后第一标记信息进行解密。
[0016] 较佳的,所述检测结果可以为:第二标记信息与第一标记信息是否相同的比较结 果;所述根据检测结果获知该应用程序安装包是否被篡改为:根据比较结果,在第二标记 信息与第一标记信息不同时,确定该应用程序安装包被篡改;或,
[0017] 所述检测结果为:是否被篡改的结果;所述根据检测结果获知该应用程序安装包 是否被篡改为:读取该是否被篡改的结果,获知该应用程序安装包是否被篡改。
[0018] 较佳的,方法还可以包括:生成应用程序安装包是否被篡改的提示信息,将所述提 示信息输出给用户。
[0019] 本发明实施例还公开了一种检测应用程序安装包是否被篡改的装置,应用于移动 终端,包括:
[0020] 数字签名证书信息读取单元,读取所述移动终端中的应用程序安装包的终端侧数 字签名证书信息;
[0021] 转换单元,按预设的第一算法将该应用程序安装包的终端侧数字签名证书信息转 换为该应用程序安装包的第一标记信息;
[0022] 标记信息发送单元,将所述第一标记信息发送至服务器进行检测;
[0023] 检测结果接收单元,接收所述服务器返回的检测结果;所述检测结果为所述服务 器将获得的第二标记信息与第一标记信息进行比较后获得的;所述第二标记信息为所述服 务器按所述第一算法将该应用程序安装包的已知合法的终端侧数字签名证书信息转换后 获得的;
[0024] 获知单元,根据检测结果获知该应用程序安装包是否被篡改。
[0025] 较佳的,该装置还可以包括:加密处理单元;
[0026] 所述加密处理单元,对所述第一标记信息进行加密处理,获得一个加密后第一标 记信息;
[0027] 所述标记信息发送单元,将所述加密后第一标记信息发送至所述应用程序对应的 服务器进行检测。
[0028] 较佳的,所述的获知单元,当所述检测结果为:第二标记信息与第一标记信息是否 相同的比较结果时,可以根据比较结果,在第二标记信息与第一标记信息不同时,确定该应 用程序安装包被篡改;当所述检测结果为:是否被篡改的结果时,可以读取该是否被篡改 的结果,获知该应用程序安装包是否被篡改。
[0029] 较佳的,该装置还包括:提示信息输出单元,生成应用程序安装包是否被篡改的提 示信息,将所述提示信息输出给用户。
[0030] 本发明实施例还公开了一种检测应用程序安装包是否被篡改的方法,应用于服务 器,包括:
[0031] 接收移动终端发送的应用程序安装包的第一标记信息;所述第一标记信息为:移 动终端按预设的第一算法将该应用程序安装包的数字签名证书信息转换获得的;
[0032] 对所述第一标记信息进行检测,包括:获得第二标记信息,将第二标记信息与第一 标记信息进行比较后获得检测结果;所述第二标记信息为按所述第一算法将该应用程序安 装包的已知合法的终端侧数字签名证书信息转换后获得的;
[0033] 向移动终端返回检测结果,使得移动终端根据检测结果获知该应用程序安装包是 否被篡改。
[0034] 较佳的,所述移动终端发送的应用程序安装包的第一标记信息可以为经加密处理 后的加密后第一标记信息;
[0035] 所述对所述第一标记信息进行检测前,先对收到的加密后第一标记信息进行解 密,得到解密后的第一标记信息;
[0036] 所述将第二标记信息与第一标记信息进行比较后获得检测结果,为:将第二标记 信息与解密后的第一标记信息进行比较后获得检测结果。
[0037] 较佳的,当所述对所述第一标记信息进行检测的服务器为所述应用程序对应的服 务器时,
[0038] 所述获得第二标记信息,包括:获得自身存储的该应用程序安装包的已知合法的 终端侧数字签名证书信息;按所述的第一算法将该应用程序安装包的已知合法的终端侧数 字签名证书信息转换后,获得第二标记信息;
[0039] 当所述对所述第一标记信息进行检测的服务器非所述应用程序对应的服务器时,
[0040] 所述获得第二标记信息,包括:预先存储自身提供的所有应用程序的安装包的已 知合法的终端侧数字签名证书信息;并将已存储的所有应用程序的安装包的已知合法的终 端侧数字签名证书信息转换为第二标记信息存储;
[0041] 所述将第二标记信息与第一标记信息进行比较,为:将存储的所有的第二标记信 息中与第一标记信息进行比较,确定是否有第二标记信息与第一标记信息相同。
[0042] 较佳的,所述检测结果可以为:第二标记信息与第一标记信息是否相同的比较结 果;所述移动终端根据检测结果获知该应用程序安装包是否被篡改为:根据比较结果,在 第二标记信息与第一标记信息不同时,确定该应用程序安装包被篡改;或,
[0043] 所述检测结果为:是否被篡改的结果;所述移动终端根据检测结果获知该应用程 序安装包是否被篡改为:读取该是否被篡改的结果,获知该应用程序安装包是否被篡改。
[0044] 较佳的,该方法还包括:生成应用程序安装包是否被篡改的提示信息,将所述提示 信息输出给应用程序提供方用户。
[0045] 本发明实施例还公开了一种检测应用程序安装包是否被篡改的装置,应用于服务 器,包括:
[0046] 第一标记信息接收单元,接收移动终端发送的应用程序安装包的第一标记信息; 所述第一标记信息为:移动终端按预设的第一算法该应用程序安装包的终端侧数字签名证 书信息转换获得的;
[0047] 检测单元,对所述第一标记信息进行检测,包括:获得第二标记信息,将第二标记 信息与第一标记信息进行比较后获得检测结果;所述第二标记信息为按所述第一算法将该 应用程序安装包的已知合法的终端侧数字签名证书信息转换后获得的;
[0048] 检测结果返回单元,向移动终端返回检测结果,使得移动终端根据检测结果获知 该应用程序安装包是否被篡改。
[0049] 较佳的,该装置还包括:解密单元;
[0050] 所述第一标记信息接收单元,接收移动终端发送的应用程序安装包的经加密处理 的加密后第一标记信息;
[0051] 所述解密单元,对收到的加密后第一标记信息进行解密,得到解密后的第一标记 信息;
[0052] 所述检测单元,将第二标记信息与解密后的第一标记信息进行比较后获得检测结 果。
[0053] 较佳的,所述检测单元可以包括第二标记获得子单元和比较子单元;
[0054] 所述的第二标记获得子单元,当所述对所述第一标记信息进行检测的服务器为所 述应用程序对应的服务器时,获得自身存储的该应用程序安装包的已知合法的终端侧数字 签名证书信息;按所述的第一算法将该应用程序安装包的已知合法的终端侧数字签名证书 信息转换后,获得第二标记信息;当所述对所述第一标记信息进行检测的服务器非所述应 用程序对应的服务器时,预先存储自身提供的所有应用程序的安装包的已知合法的终端侧 数字签名证书信息;并将已存储的所有应用程序的安装包的已知合法的终端侧数字签名证 书信息转换为第二标记信息存储;
[0055] 所述的比较子单元,当所述对所述第一标记信息进行检测的服务器为所述应用程 序对应的服务器时,将获得的第二标记信息与第一标记信息进行比较获得检测结果;当所 述对所述第一标记信息进行检测的服务器非所述应用程序对应的服务器时,将存储的所有 的第二标记信息中与第一标记信息进行比较,确定是否有第二标记信息与第一标记信息相 同,获得检测结果。
[0056] 较佳的,所述装置还可以包括:提示信息输出单元,生成应用程序安装包是否被篡 改的提示信息,将所述提示信息输出给应用程序提供方用户。
[0057] 由上述的技术方案可见,本发明实施例提供的检测应用程序安装包是否被篡改的 方法及装置,移动终端将由应用程序安装包的终端侧数字签名证书信息转换的第一标记信 息发送给服务器,服务器用该应用程序安装包的已知合法的终端侧数字签名证书信息转换 的第二标记信息对第一标记信息进行检测,将检测结果返回给移动终端,从而使得移动终 端能够根据检测结果获知应用程序安装包是否被篡改。
[0058] 因此,应用本发明实施例的检测应用程序安装包是否被篡改的方法及装置,能够 有效地检测APK安装包是否被篡改。进而,用户可以针对被篡改的APK安装包进行删除等 处理,应用程序提供方则可以进行升级等处理,以提高APK安装包的安全性。
[0059] 实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

【专利附图】

【附图说明】
[0060] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0061] 图1为本发明实施例提供的检测应用程序安装包是否被篡改的方法的一种流程 图;
[0062] 图2为本发明实施例提供的检测应用程序安装包是否被篡改的方法的另一种流 程图;
[0063] 图3为本发明实施例提供的检测应用程序安装包是否被篡改的方法的再一种流 程图;
[0064] 图4为本发明实施例提供的检测应用程序安装包是否被篡改的方法的又一种流 程图;
[0065] 图5为本发明实施例提供的检测应用程序安装包是否被篡改的装置的一种结构 图;
[0066] 图6为本发明实施例提供的检测应用程序安装包是否被篡改的装置的另一种结 构图;
[0067] 图7为本发明实施例提供的检测应用程序安装包是否被篡改的装置的再一种结 构图;
[0068] 图8为本发明实施例提供的检测应用程序安装包是否被篡改的装置的又一种结 构图。

【具体实施方式】
[0069] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0070] 本发明实施例提供了两种检测应用程序安装包是否被篡改的方法,分别应用于移 动终端和服务器。以下分别进行详细说明。
[0071] 参见图1,本实施例为应用于移动终端的一种应用程序安装包是否被篡改的方法, 该流程包括以下步骤:
[0072] 步骤101,读取移动终端中的应用程序安装包的终端侧数字签名证书信息。
[0073] 本发明实施例是利用终端侧数字签名证书信息,来实现对应用程序的安装包的检 测。举例,对于APK安装包来说,每一个APK安装包,都是需要有Android数字签名证书,也 就是终端侧数字签名证书才能被安装。该数字签名证书用于标识应用程序开发者和在应用 程序之间建立信任关系,被嵌入在APK安装包中。
[0074] Android数字签名证书包含主要以下几个要点:
[0075] (1)所有的应用程序都必须有数字签名证书,Android系统不会安装一个没有数 字签名证书的应用程序。
[0076] (2) Android程序包使用的数字签名证书可以是自签名的,不需要一个权威的数字 签名证书机构签名认证
[0077] (3)数字签名证书都是有效期的,Android只是在应用程序安装的时候才会检查 证书的有效期。如果应用程序已经安装在系统中,即使证书过期也不会影响程序的正常功 能。如果APK安装包被篡改,则其数字签名证书就会失效。
[0078] 本发明实施例是利用了数字签名证书在APK安装包被篡改后就失效的原理来检 测APK安装包是否被篡改。
[0079] 实际应用中,可以在任何时刻来读取该应用程序的安装包的终端侧数字签名证书 信息,开始进行检测,都能够获知应用程序安装包是否被篡改。较佳地,在应用程序首次运 行时,执行本步骤,能够最及时地获知应用程序安装包是否被篡改。
[0080] 步骤102,按预设的第一算法将该应用程序安装包的终端侧数字签名证书信息转 换为该应用程序安装包的第一标记信息。
[0081] 由于数字签名证书信息用于标识应用程序开发者和在应用程序之间建立信任关 系,如果以明文方式直接发送至服务器,一旦被截获,很容易被非法利用。因此,本发明实施 例中,不是以明文的方式将读取的数字签名证书信息直接发送给服务器进行检测,而是将 数字签名证书信息转换后,再发送给服务器进行检测,以保证发送的安全性。
[0082] 本发明实施例中,对如何将终端侧数字签名证书转换为第一标记信息预设的第一 算法没有限定。实际应用中,所述预设的第一算法可以选择任意的算法来实现,例如:最常 见的可以为MD5算法。
[0083] 步骤103,将所述第一标记信息发送至服务器进行检测。
[0084] 本步骤中,第一标记信息可以发送至所述应用程序对应的服务器进行检测,也可 以发送至提供多个应用程序的服务器进行检测。所述应用程序对应的服务器是指该应用程 序的开发者服务器,该服务器通常与该应用程序一一对应,存储有该应用程序安装包的已 知合法的终端侧数字签名证书。
[0085] 提供多个应用程序的服务器,可以从各个应用程序的开发者服务器获得各个应用 程序安装包的已知合法的终端侧数字签名证书。例如:可以与各个应用程序的开发者服务 器进行连接,请求各个应用程序的开发者服务器将各个应用程序安装包的已知合法的终端 侧数字签名证书发送给提供多个应用程序的服务器;或者通过人工的方式从各个应用程序 的开发者服务器获得各个应用程序安装包的已知合法的终端侧数字签名证书。
[0086] 在实际应用中,为了进一步保证第一标记信息传输的安全性,可以对第一标记信 息进行加密处理,把经加密处理后的加密后第一标记信息发送给对应的服务器。
[0087] 步骤104,接收所述服务器返回的检测结果。所述检测结果为所述服务器将获得的 第二标记信息与第一标记信息进行比较后获得的;所述第二标记信息为按所述的第一算法 将该应用程序安装包的已知合法的终端侧数字签名证书信息转换后获得的。
[0088] 本步骤中,如果第一标记信息发送至应用程序对应的服务器,该服务器可以有两 种方式获得第二标记信息:
[0089] 第一种,预先用预设的第一算法,将该应用程序安装包的已知合法的终端侧数字 签名证书信息转换为第二标记信息并存储,检测时直接读取即可。
[0090] 第二种,在每次收到一个第一标记信息后,将该应用程序安装包的已知合法的终 端侧数字签名证书信息转换为第二标记信息。
[0091] 这样,应用程序对应的服务器可以直接将获得的第二标记信息与所述第一标记信 息进行比较,通过判断是否相同,获得检测结果。
[0092] 如果第一标记信息发送至提供多个应用程序的服务器,该服务器预先存储了自身 提供的所有应用程序的安装包的已知合法的终端侧数字签名证书信息;并将已存储的所有 应用程序的安装包的已知合法的终端侧数字签名证书信息转换为第二标记信息存储。
[0093] 这样,提供多个应用程序的服务器,可以将存储的所有的第二标记信息中与第一 标记信息进行比较,确定是否有第二标记信息与第一标记信息相同,获得检测结果。
[0094] 另外,如果收到的第一标记信息是经加密处理的加密后第一标记信息,则需要在 检测前,先对加密后第一标记信息进行解密;用解密后的第一标记信息进行检测。
[0095] 由于服务器也采用了预设的第一算法将该应用程序安装包的已知合法的终端侧 数字签名证书信息转换为第二标记信息,如果APK安装包未被篡改,则其数字签名证书信 息用预设的第一算法进行转换后的第一标记信息,必然能与服务器第二标记信息相同。如 果APK安装包被篡改,则其数字签名证书信息必然不是该应用程序开发者的已知合法的数 字签名证书信息,则其数字签名证书信息用预设的第一算法进行转换后的第一标记信息, 必然无法与服务器的第二标记信息相同,从而检测出应用程序安装包被篡改。
[0096] 本步骤中,服务器返回的检测结果可以有两种情况:
[0097] -、所述检测结果为:第二标记信息与第一标记信息是否相同的比较结果。服务器 在将第二标记信息与第一标记信息进行比较后,可以直接将相同或不相同的比较结果发送 给移动终端。
[0098] 二、所述检测结果为:是否被篡改的结果。服务器在将第二标记信息与第一标记信 息进行比较后,如果相同,确定该应用程序安装包未被篡改,如果不同,确定应用程序安装 包被篡改;然后将是否被篡改的结果发送给移动终端。
[0099] 步骤105,根据检测结果获知该应用程序安装包是否被篡改。
[0100] 实际应用中,相应的,本步骤也可以有两种实现方式:
[0101] 一、当所述检测结果为:第二标记信息与第一标记信息是否相同的比较结果时,本 步骤可以为:根据比较结果,在第二标记信息与第一标记信息不同时,确定该应用程序安装 包被篡改,在第二标记信息与第一标记信息相同时,确定该应用程序安装包未被篡改。
[0102] 二、当所述检测结果为:是否被篡改的结果时,本步骤可以为:直接读取该是否被 篡改的结果,获知该应用程序安装包是否被篡改。
[0103] 实际应用中,为了使用户能够及时获知应用程序安装包是否被篡改,本发明实施 例还可以生成应用程序安装包是否被篡改的提示信息,将所述提示信息输出给用户。
[0104] 参见图2,本实施例也为应用于移动终端的一种应用程序安装包是否被篡改的方 法,该流程包括以下步骤:
[0105] 步骤201,在应用程序首次运行时,读取移动终端中的应用程序安装包的终端侧数 字签名证书信息。
[0106] 步骤202,按预设的第一算法将该应用程序安装包的终端侧数字签名证书信息转 换为该应用程序安装包的第一标记信息。
[0107] 步骤203,对所述第一标记信息进行加密处理,获得一个加密后第一标记信息。
[0108] 本实施例中,可以采用RSA加密算法或DSA加密算法或ECC加密算法或SHA加密 算法或HMAC加密算法中的一种或多种,对第一标记信息进行加密处理。例如,可以采用多 种加密算法对第一标记信息进行嵌套加密。具体的,可以先用DSA加密算法对第一标记信 息进行加密,获得第一加密结果;再对第一加密结果用ECC加密算法进行加密,获得第二加 密结果;再对第二加密结果采用SHA加密算法进行加密,获得一个加密后第一标记信息。当 然,实际应用时不限于这几种加密算法,也不限于所述的嵌套加密方法。
[0109] 步骤204,将加密后第一标记信息发送至服务器进行检测。
[0110] 本步骤可以与图1所示实施例步骤103相同,第一标记信息可以发送至所述应用 程序对应的服务器进行检测,也可以发送至提供多个应用程序的服务器进行检测。这里不 再重复。
[0111] 步骤205,接收所述服务器返回的检测结果;所述检测结果为所述服务器对加密 后第一标记信息解密后,得到解密后的第一标记信息,再将获得的第二标记信息与解密后 的第一标记信息进行比较后获得的。
[0112] 所述第二标记信息为所述服务器按所述的第一算法将该应用程序安装包的已知 合法的终端侧数字签名证书信息转换后获得的。
[0113] 本步骤可以与图1所示实施例步骤104相同,这里不再重复。
[0114] 本步骤中,服务器采用与加密处理对应的解密算法对加密后第一标记信息进行解 Γ t I ο
[0115] 步骤206,根据检测结果获知该应用程序安装包是否被篡改。
[0116] 步骤207,生成应用程序安装包是否被篡改的提示信息,将所述提示信息输出给用 户。
[0117] 举例来说,所述将所述提示信息输出给用户可以为:生成弹出对话框,在该对话框 中显示所述提示信息;或在客户端显示屏预设位置显示所述提示信息;或输出语音提示信 息等等。
[0118] 本实施例在图1所示实施例的基础上的一个更优实施例,在应用程序首次运行 时,读取该应用程序的安装包的终端侧数字签名证书信息,能够最及时地获知应用程序安 装包是否被篡改。而且,本实施例增加了对第一标记信息进行加密处理的步骤,相应的,月艮 务器对加密后第一标记信息进行解密后,获得解密后的第一标记信息,对解密后的第一标 记信息进行检测。这样,进一步提高了第一标记信息传输的安全性。
[0119] 参见图3,本实施例为应用于服务器的应用程序安装包是否被篡改的一种方法,该 流程可以与图1所示移动终端的流程相对应,包括以下步骤:
[0120] 步骤301,接收移动终端发送的应用程序安装包的第一标记信息;所述第一标记 信息为:移动终端按预设的第一算法将该应用程序安装包的终端侧数字签名证书信息转换 获得的。
[0121] 步骤302,对所述第一标记信息进行检测,包括:获得第二标记信息,将第二标记 信息与第一标记信息进行比较后获得检测结果;所述第二标记信息为按所述的第一算法将 该应用程序安装包的已知合法的终端侧数字签名证书信息转换后获得的。
[0122] 具体检测的过程,已在前述步骤104中详细描述,这里不再重复。
[0123] 步骤303,向移动终端返回检测结果,使得移动终端根据检测结果获知该应用程序 安装包是否被篡改。
[0124] 实际应用中,为了使服务器使用者,也就是应用程序提供方用户,能够及时获知应 用程序安装包是否被篡改,本发明实施例还可以包括步骤:生成应用程序安装包是否被篡 改的提示信息,将所述提示信息输出给应用程序提供方用户。本实施例所称应用程序提供 方用户,包括应用程序开发者用户和提供多种应用程序的提供商用户。
[0125] 参见图4,本实施例为应用于服务器的应用程序安装包是否被篡改的另一种方法, 该流程可以与图2所示移动终端的流程相对应,包括以下步骤:
[0126] 步骤401,接收移动终端发送的经加密处理的应用程序安装包的第一标记信息; 所述第一标记信息为:移动终端在应用程序首次运行时,按预设的第一算法将该应用程序 安装包的终端侧数字签名证书信息转换获得的。
[0127] 步骤402,对收到的加密后第一标记信息进行解密,得到解密后的第一标记信息。
[0128] 步骤403,对所述第一标记信息进行检测,包括:获得第二标记信息,将第二标记 信息与解密后的第一标记信息进行比较后获得检测结果;所述第二标记信息为按所述的第 一算法将该应用程序安装包的已知合法的终端侧数字签名证书信息转换后获得的。
[0129] 实际应用中,移动终端进行加密处理的算法和服务器进行解密的算法是对应的, 都是预设设置好的。
[0130] 步骤404,向移动终端返回检测结果,使得移动终端根据检测结果获知该应用程序 安装包是否被篡改。
[0131] 步骤405,生成应用程序安装包是否被篡改的提示信息,将所述提示信息输出给应 用程序提供方用户。
[0132] 举例来说,所述将所述提示信息输出给应用程序提供方用户可以为,生成弹出对 话框,在该对话框中显示所述提示信息;或在服务器显示屏预设位置显示所述提示信息; 或输出语首提不?目息等等。
[0133] 由上述的实施例可见,本发明实施例提供的检测应用程序安装包是否被篡改的方 法,能够有效的检测ΑΡΚ安装包是否被篡改。进而,客户端用户可以针对被篡改的ΑΡΚ安装 包进行删除等处理;且应用程序提供方用户也可以对ΑΡΚ安装包进行升级等处理,以提高 ΑΡΚ安装包的安全性。
[0134] 本发明实施例还提供了两种检测应用程序安装包是否被篡改的装置,分别应用于 移动终端和服务器,并与前述本发明实施例提供的两种检测应用程序安装包是否被篡改的 方法一一对应。以下分别进行详细说明。
[0135] 参见图5,本实施例为应用于移动终端的应用程序安装包是否被篡改的一种装置, 该装置与图1所示的流程相对应,包括:数字签名证书信息读取单元501、转换单元502、标 记信息发送单元503、检测结果接收单元504和获知单元505,其中:
[0136] 数字签名证书信息读取单元501,读取应用程序的安装包的终端侧数字签名证书 信息。
[0137] 转换单元502,按预设的第一算法将该应用程序安装包的终端侧数字签名证书信 息转换为该应用程序安装包的第一标记信息。
[0138] 标记信息发送单元503,将所述第一标记信息发送至服务器进行检测。
[0139] 检测结果接收单元504,接收所述服务器返回的检测结果。所述检测结果为所述服 务器将获得的第二标记信息与第一标记信息进行比较后获得的;所述第二标记信息为按所 述的第一算法将该应用程序安装包的已知合法的终端侧数字签名证书信息转换后获得的。
[0140] 获知单元505,根据检测结果获知该应用程序安装包是否被篡改。具体的获知过程 已在步骤105中详细说明,这里不再重复。
[0141] 参见图6,本实施例为应用于移动终端的应用程序安装包是否被篡改的另一种装 置,该装置与图2所示的流程相对应,包括:数字签名证书信息读取单元601、转换单元602、 加密处理单元603、标记信息发送单元604、检测结果接收单元605、获知单元606和提示信 息输出单元607,其中:
[0142] 所述数字签名证书信息读取单元601、转换单元602和获知单元606都可以与图5 所示数字签名证书信息读取单元501、转换单元502和获知单元505完全相同,这里不再重 复。
[0143] 所述加密处理单元603,对所述第一标记信息进行加密处理,获得一个加密后第一 标记信息。
[0144] 所述标记信息发送单元604,将所述加密后第一标记信息发送至服务器进行检测。
[0145] 所述检测结果接收单元605,接收所述服务器返回的检测结果。所述检测结果为所 述服务器将获得的第二标记信息与解密后的第一标记信息进行比较后获得的;所述第二标 记信息为按所述的第一算法将该应用程序安装包的已知合法的终端侧数字签名证书信息 转换后获得的。
[0146] 所述提示信息输出单元607,生成应用程序安装包是否被篡改的提示信息,将所述 提示信息输出给用户。
[0147] 举例来说,所述将所述提示信息输出单元可以与获知单元相连,生成弹出对话框, 在该对话框中显示所述提示信息;或在客户端显示屏预设位置显示所述提示信息;或输出 语首提[目息等等。
[0148] 参见图7,本实施例为应用于服务器的应用程序安装包是否被篡改的一种装置,该 流程可以与图3所示服务器的流程相对应,包括:第一标记信息接收单元701、检测单元702 和检测结果返回单元703,其中:
[0149] 第一标记信息接收单元701,接收移动终端发送的应用程序安装包的第一标记信 息;所述第一标记信息为:移动终端按预设的第一算法将该应用程序安装包的终端侧数字 签名证书信息转换获得的。
[0150] 检测单元702,对所述第一标记信息进行检测,包括:获得第二标记信息,将第二 标记信息与第一标记信息进行比较后获得检测结果;所述第二标记信息为按所述的第一算 法将该应用程序安装包的已知合法的终端侧数字签名证书信息转换后获得的。
[0151] 具体检测的过程,已在前述步骤104中详细描述,这里不再重复。
[0152] 检测结果返回单元703,向移动终端返回检测结果,使得移动终端根据检测结果获 知该应用程序安装包是否被篡改。
[0153] 参见图8,本实施例为应用于服务器的应用程序安装包是否被篡改的另一种装置, 该流程可以与图4所示服务器的流程相对应,包括:第一标记信息接收单元801、解密单元 802、检测单元803、检测结果返回单元806和提示信息输出单元807,其中:
[0154] 第一标记信息接收单元801,接收移动终端发送的应用程序安装包的加密后第一 标记信息。
[0155] 解密单元802,对收到的加密后第一标记信息进行解密,得到解密后的第一标记信 息。
[0156] 检测单元803,包括:第二标记信息获得子单元804和比较子单元805。所述第二 标记获得子单元804,获得按所述的第一算法将该应用程序安装包的已知合法的终端侧数 字签名证书信息转换的第二标记信息。所述比较子单元805,将第二标记信息与解密后的第 一标记信息进行比较后获得检测结果。
[0157] 具体检测的过程,已在前述步骤104中详细描述,这里不再重复。
[0158] 检测结果返回单元806,向移动终端返回检测结果,使得移动终端根据检测结果获 知该应用程序安装包是否被篡改。
[0159] 提示信息输出单元807,生成应用程序安装包是否被篡改的提示信息,将所述提示 信息输出给应用程序提供方用户。
[0160] 本实施例中,为了使服务器使用者,也就是应用程序提供方用户,能够及时获知应 用程序安装包是否被篡改,本发明实施例还包括了提示信息输出单元,生成应用程序安装 包是否被篡改的提示信息,将所述提示信息输出给应用程序开发用户。
[0161] 举例来说,所述将所述提示信息输出单元可以生成弹出对话框,在该对话框中显 示所述提示信息;或在服务器显示屏预设位置显示所述提示信息;或输出语音提示信息等 等。
[0162] 由上述的实施例可见,本发明实施例提供的检测应用程序安装包是否被篡改的装 置,能够有效的检测APK安装包是否被篡改。进而,客户端用户可以针对被篡改的APK安装 包进行删除等处理;且应用程序提供方用户也可以对APK安装包进行升级等处理,以提高 APK安装包使用的安全性。
[0163] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实 体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存 在任何这种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要 素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备 所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除 在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0164] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部 分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实 施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例 的部分说明即可。
[0165] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在 本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围 内。
【权利要求】
1. 一种检测应用程序安装包是否被篡改的方法,应用于移动终端,其特征在于,包括: 读取所述移动终端中的应用程序安装包的终端侧数字签名证书信息; 按预设的第一算法将该应用程序安装包的终端侧数字签名证书信息转换为该应用程 序安装包的第一标记信息; 将所述第一标记信息发送至服务器进行检测; 接收所述服务器返回的检测结果;所述检测结果为所述服务器将获得的第二标记信息 与第一标记信息进行比较后获得的;所述第二标记信息为所述服务器按所述第一算法将该 应用程序安装包的已知合法的终端侧数字签名证书信息转换后获得的; 根据检测结果获知该应用程序安装包是否被篡改。
2. 根据权利要求1所述的方法,其特征在于: 在按预设的第一算法将该应用程序安装包的终端侧数字签名证书信息转换为该应用 程序安装包的第一标记信息后,进一步对第一标记信息进行加密处理,获得一个加密后第 一标记信息; 所述将所述第一标记信息发送至服务器进行检测,为:将所述加密后第一标记信息发 送至所述应用程序对应的服务器进行检测; 所述检测结果为:所述服务器对所述加密后第一标记信息进行解密后,得到解密后的 第一标记信息,再将获得的第二标记信息与解密后的第一标记信息进行比较后获得的。
3. 根据权利要求2所述的方法,其特征在于: 所述对第一标记信息进行加密处理,包括:采用RSA加密算法或DSA加密算法或ECC加 密算法或SHA加密算法或HMAC加密算法中的一种或多种,对第一标记信息进行加密处理, 获得一个加密后第一标记信息; 所述服务器对所述加密后第一标记信息进行解密,为:采用与加密处理对应的解密算 法对加密后第一标记信息进行解密。
4. 根据权利要求1-3任意一项所述的方法,其特征在于, 所述检测结果为:第二标记信息与第一标记信息是否相同的比较结果;所述根据检测 结果获知该应用程序安装包是否被篡改为:根据比较结果,在第二标记信息与第一标记信 息不同时,确定该应用程序安装包被篡改;或, 所述检测结果为:是否被篡改的结果;所述根据检测结果获知该应用程序安装包是否 被篡改为:读取该是否被篡改的结果,获知该应用程序安装包是否被篡改。
5. 根据权利要求1-3任意一项所述的方法,其特征在于,还包括:生成应用程序安装包 是否被篡改的提示信息,将所述提示信息输出给用户。
6. -种检测应用程序安装包是否被篡改的装置,应用于移动终端,其特征在于,包括: 数字签名证书信息读取单元,读取所述移动终端中的应用程序安装包的终端侧数字签 名证书信息; 转换单元,按预设的第一算法将该应用程序安装包的终端侧数字签名证书信息转换为 该应用程序安装包的第一标记信息; 标记信息发送单元,将所述第一标记信息发送至服务器进行检测; 检测结果接收单元,接收所述服务器返回的检测结果;所述检测结果为所述服务器将 获得的第二标记信息与第一标记信息进行比较后获得的;所述第二标记信息为所述服务器 按所述第一算法将该应用程序安装包的已知合法的终端侧数字签名证书信息转换后获得 的; 获知单元,根据检测结果获知该应用程序安装包是否被篡改。
7. 根据权利要求6所述的装置,其特征在于,该装置还包括:加密处理单元; 所述加密处理单元,对所述第一标记信息进行加密处理,获得一个加密后第一标记信 息; 所述标记信息发送单元,将所述加密后第一标记信息发送至所述应用程序对应的服务 器进行检测。
8. 根据权利要求6或7所述的装置,其特征在于, 所述的获知单元,当所述检测结果为:第二标记信息与第一标记信息是否相同的比较 结果时,根据比较结果,在第二标记信息与第一标记信息不同时,确定该应用程序安装包被 篡改;当所述检测结果为:是否被篡改的结果时,读取该是否被篡改的结果,获知该应用程 序安装包是否被篡改。
9. 根据权利要求6或7所述的装置,其特征在于,还包括: 提示信息输出单元,生成应用程序安装包是否被篡改的提示信息,将所述提示信息输 出给用户。
10. -种检测应用程序安装包是否被篡改的方法,应用于服务器,其特征在于,包括: 接收移动终端发送的应用程序安装包的第一标记信息;所述第一标记信息为:移动终 端按预设的第一算法将该应用程序安装包的数字签名证书信息转换获得的; 对所述第一标记信息进行检测,包括:获得第二标记信息,将第二标记信息与第一标记 信息进行比较后获得检测结果;所述第二标记信息为按所述第一算法将该应用程序安装包 的已知合法的终端侧数字签名证书信息转换后获得的; 向移动终端返回检测结果,使得移动终端根据检测结果获知该应用程序安装包是否被 篡改。
11. 根据权利要求10所述的方法,其特征在于:所述移动终端发送的应用程序安装包 的第一标记信息为经加密处理后的加密后第一标记信息; 所述对所述第一标记信息进行检测前,先对收到的加密后第一标记信息进行解密,得 到解密后的第一标记信息; 所述将第二标记信息与第一标记信息进行比较后获得检测结果,为:将第二标记信息 与解密后的第一标记信息进行比较后获得检测结果。
12. 根据权利要求10所述的方法,其特征在于, 当所述对所述第一标记信息进行检测的服务器为所述应用程序对应的服务器时, 所述获得第二标记信息,包括:获得自身存储的该应用程序安装包的已知合法的终端 侧数字签名证书信息;按所述第一算法将该应用程序安装包的已知合法的终端侧数字签名 证书信息转换后,获得第二标记信息; 当所述对所述第一标记信息进行检测的服务器非所述应用程序对应的服务器时, 所述获得第二标记信息,包括:预先存储自身提供的所有应用程序的安装包的已知合 法的终端侧数字签名证书信息;并将已存储的所有应用程序的安装包的已知合法的终端侧 数字签名证书信息转换为第二标记信息存储; 所述将第二标记信息与第一标记信息进行比较,为:将存储的所有的第二标记信息中 与第一标记信息进行比较,确定是否有第二标记信息与第一标记信息相同。
13. 根据权利要求10、11或12所述的方法,其特征在于, 所述检测结果为:第二标记信息与第一标记信息是否相同的比较结果;所述移动终端 根据检测结果获知该应用程序安装包是否被篡改为:根据比较结果,在第二标记信息与第 一标记信息不同时,确定该应用程序安装包被篡改;或, 所述检测结果为:是否被篡改的结果;所述移动终端根据检测结果获知该应用程序安 装包是否被篡改为:读取该是否被篡改的结果,获知该应用程序安装包是否被篡改。
14. 根据权利要求10、11或12所述的方法,其特征在于,还包括:生成应用程序安装包 是否被篡改的提示信息,将所述提示信息输出给应用程序提供方用户。
15. -种检测应用程序安装包是否被篡改的装置,应用于服务器,其特征在于,包括: 第一标记信息接收单元,接收移动终端发送的应用程序安装包的第一标记信息;所述 第一标记信息为:移动终端按预设的第一算法该应用程序安装包的终端侧数字签名证书信 息转换获得的; 检测单元,对所述第一标记信息进行检测,包括:获得第二标记信息,将第二标记信息 与第一标记信息进行比较后获得检测结果;所述第二标记信息为按所述第一算法将该应用 程序安装包的已知合法的终端侧数字签名证书信息转换后获得的; 检测结果返回单元,向移动终端返回检测结果,使得移动终端根据检测结果获知该应 用程序安装包是否被篡改。
16. 根据权利要求15所述的装置,其特征在于,还包括:解密单元; 所述第一标记信息接收单元,接收移动终端发送的应用程序安装包的经加密处理的加 密后第一标记信息; 所述解密单元,对收到的加密后第一标记信息进行解密,得到解密后的第一标记信 息; 所述检测单元,将第二标记信息与解密后的第一标记信息进行比较后获得检测结果。
17. 根据权利要求15所述的装置,其特征在于,所述检测单元包括第二标记获得子单 元和比较子单元; 所述的第二标记获得子单元,当所述对所述第一标记信息进行检测的服务器为所述应 用程序对应的服务器时,获得自身存储的该应用程序安装包的已知合法的终端侧数字签名 证书信息;按所述的第一算法将该应用程序安装包的已知合法的终端侧数字签名证书信息 转换后,获得第二标记信息;当所述对所述第一标记信息进行检测的服务器非所述应用程 序对应的服务器时,预先存储自身提供的所有应用程序的安装包的已知合法的终端侧数字 签名证书信息;并将已存储的所有应用程序的安装包的已知合法的终端侧数字签名证书信 息转换为第二标记信息存储; 所述的比较子单元,当所述对所述第一标记信息进行检测的服务器为所述应用程序对 应的服务器时,将获得的第二标记信息与第一标记信息进行比较获得检测结果;当所述对 所述第一标记信息进行检测的服务器非所述应用程序对应的服务器时,将存储的所有的第 二标记信息中与第一标记信息进行比较,确定是否有第二标记信息与第一标记信息相同, 获得检测结果。
18.根据权利要求15、16或17所述的装置,其特征在于,还包括: 提示信息输出单元,生成应用程序安装包是否被篡改的提示信息,将所述提示信息输 出给应用程序提供方用户。
【文档编号】G06F21/51GK104123491SQ201410344643
【公开日】2014年10月29日 申请日期:2014年7月18日 优先权日:2014年7月18日
【发明者】邝锐强 申请人:广州金山网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1