《安卓应用程序的安全验证方法及装置.pdf》由会员分享,可在线阅读,更多相关《安卓应用程序的安全验证方法及装置.pdf(8页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104049973A43申请公布日20140917CN104049973A21申请号201410291357X22申请日20140625G06F9/4420060171申请人北京思特奇信息技术股份有限公司地址100086北京市海淀区中关村南大街6号中电信息大厦16层72发明人李首坤吕麟毛蔚74专利代理机构北京轻创知识产权代理有限公司11212代理人杨立54发明名称安卓应用程序的安全验证方法及装置57摘要本发明涉及一种安卓应用程序的安全验证方法及装置。安卓应用程序的安全验证方法包括步骤一,从签名后的安卓应用程序安装文件中提取出公钥保存到服务接入端,将该从签名后的APK文件中取出。
2、的公钥记为第一公钥;步骤二,在已签名安卓应用程序初始化时,服务接入端获取该已签名安卓应用程序的公钥,将该已签名安卓应用程序的公钥记为第二公钥;步骤三,服务接入端将第二公钥与第一公钥进行比较,根据比较结果判断已签名安卓应用程序是否安全。本发明安卓应用程序的安全验证方法及装置,有效的阻止了不法分子通过仿造APK身份去恶意攻击平台的行为,有效防止被恶意篡改过的ANDROID应用程序带来的安全风险,增强了平台的安全性。51INTCL权利要求书1页说明书4页附图2页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书4页附图2页10申请公布号CN104049973ACN104049973。
3、A1/1页21一种安卓应用程序的安全验证方法,其特征在于,包括步骤一,从签名后的安卓应用程序安装文件即APK文件中提取出公钥保存到服务接入端,将该从签名后的APK文件中取出的公钥记为第一公钥,所述服务接入端是指安卓应用程序的下载端,所述公钥包含在签名后的APK文件中,其中,为所述APK文件签名的签名文件由开发者生成;步骤二,在已签名安卓应用程序初始化时,所述服务接入端获取该已签名安卓应用程序的公钥,将该已签名安卓应用程序的公钥记为第二公钥,所述已签名安卓应用程序是指用所述签名文件签名后的安卓应用程序;步骤三,服务接入端将所述第二公钥与所述第一公钥进行比较,根据比较结果判断所述已签名安卓应用程序。
4、是否安全。2根据权利要求1所述的安卓应用程序的安全验证方法,其特征在于,所述步骤三包括若所述比较结果为所述第二公钥与所述第一公钥一致,则判定所述已签名安卓应用程序安全,若所述比较结果为所述第二公钥与所述第一公钥不一致,则判定所述已签名安卓应用程序不安全。3根据权利要求1所述的安卓应用程序的安全验证方法,其特征在于,所述步骤三之后还包括步骤四,若判断结果为所述已签名安卓应用程序安全,则所述服务接入端向所述已签名安卓应用程序返回相关数据。4一种安卓应用程序的安全验证装置,其特征在于,包括顺次相连的保存模块、获取模块和验证模块,其中保存模块,用于从签名后的安卓应用程序安装文件即APK文件中提取出公钥。
5、保存到服务接入端,将该从签名后的APK文件中取出的公钥记为第一公钥,所述服务接入端是指安卓应用程序的下载端,所述公钥包含在签名后的APK文件中,其中,为所述APK文件签名的签名文件由开发者生成;获取模块,用于在已签名安卓应用程序初始化时,所述服务接入端获取该已签名安卓应用程序的公钥,将该已签名安卓应用程序的公钥记为第二公钥,所述已签名安卓应用程序是指用所述签名文件签名后的安卓应用程序;验证模块,用于服务接入端将所述第二公钥与所述第一公钥进行比较,根据比较结果判断所述已签名安卓应用程序是否安全。5根据权利要求4所述的安卓应用程序的安全验证装置,其特征在于,所述验证模块包括第一判定单元,用于在所述。
6、比较结果为所述第二公钥与所述第一公钥一致时,判定所述已签名安卓应用程序安全;第二判定单元,用于在所述比较结果为所述第二公钥与所述第一公钥不一致时,判定所述已签名安卓应用程序不安全。6根据权利要求4所述的安卓应用程序的安全验证装置,其特征在于,还包括返回模块,所述返回模块与所述验证模块相连,用于在所述验证模块的判断结果为所述已签名安卓应用程序安全时,向所述已签名安卓应用程序返回相关数据。权利要求书CN104049973A1/4页3安卓应用程序的安全验证方法及装置技术领域0001本发明涉及信息技术领域,尤其涉及一种安卓应用程序的安全验证方法及装置。背景技术0002ANDROID译为“安卓”是一种基。
7、于LINUX的自由及开放源代码的操作系统,主要使用于移动设备,例如智能手机和平板电脑。以下将ANDROID操作系统称为安卓操作系统。APK安卓应用程序安装文件是指ANDROID操作系统的应用程序安装文件。CRACK意为“破解”,具体是指反编译APK文件进行汇编级的代码分析,并修改或插入自己的代码,重新签名打包为APK文件,以达到改变程序原有行为的目的。也就是说,要CRACK一个APK文件,主要流程有三步反编译、代码分析、重新打包签名。0003APK文件被破解会给用户带来极大的安全隐患。例如,在安装了安卓操作系统的手机上,各个运营商的“掌上营业厅”应用吸引了数以百万计的用户下载,网友使用这些应用。
8、免除了在营业厅排队的麻烦。但是,手机应用被大量破解后重新打包,植入多种恶意广告插件,部分恶意广告插件还会窃取手机号、通讯录等敏感信息。当安装了安卓操作系统的手机用户下载安装篡改过的“掌上营业厅”等热门安卓软件时,手机号、地理位置信息、通讯录均可能被收集。这些敏感信息被不法分子转卖后,用户会收到大量垃圾短信、骚扰电话,以及各种精准推送的广告信息。篡改过的手机应用软件后台还可自动联网下载广告数据,产生较大的流量消耗,最终会让用户损失手机话费。0004可见,如何验证ANDROID手机应用是否被篡改,以防止被恶意篡改过的ANDROID手机应用程序带来的安全风险,是目前ANDROID手机应用亟待解决的一。
9、个重要问题。发明内容0005本发明所要解决的技术问题是提供一种安卓应用程序的安全验证方法及装置,有效防止被恶意篡改过的ANDROID应用程序带来的安全风险,增强安全性。0006为解决上述技术问题,本发明提出了一种安卓应用程序的安全验证方法,包括0007步骤一,从签名后的安卓应用程序安装文件即APK文件中提取出公钥保存到服务接入端,将该从签名后的APK文件中取出的公钥记为第一公钥,所述服务接入端是指安卓应用程序的下载端,所述公钥包含在签名后的APK文件中,其中,为所述APK文件签名的签名文件由开发者生成;0008步骤二,在已签名安卓应用程序初始化时,所述服务接入端获取该已签名安卓应用程序的公钥,。
10、将该已签名安卓应用程序的公钥记为第二公钥,所述已签名安卓应用程序是指用所述签名文件签名后的安卓应用程序;0009步骤三,服务接入端将所述第二公钥与所述第一公钥进行比较,根据比较结果判断所述已签名安卓应用程序是否安全。0010进一步地,上述安卓应用程序的安全验证方法还可具有以下特点,所述步骤三包括若所述比较结果为所述第二公钥与所述第一公钥一致,则判定所述已签名安卓应用程说明书CN104049973A2/4页4序安全,若所述比较结果为所述第二公钥与所述第一公钥不一致,则判定所述已签名安卓应用程序不安全。0011进一步地,上述安卓应用程序的安全验证方法还可具有以下特点,所述步骤三之后还包括步骤四,若。
11、判断结果为所述已签名安卓应用程序安全,则所述服务接入端向所述已签名安卓应用程序返回相关数据。0012为解决上述技术问题,本发明还提出了一种安卓应用程序的安全验证装置,包括顺次相连的保存模块、获取模块和验证模块,其中0013保存模块,用于从签名后的安卓应用程序安装文件即APK文件中提取出公钥保存到服务接入端,将该从签名后的APK文件中取出的公钥记为第一公钥,所述服务接入端是指安卓应用程序的下载端,所述公钥包含在签名后的APK文件中,其中,为所述APK文件签名的签名文件由开发者生成;0014获取模块,用于在已签名安卓应用程序初始化时,所述服务接入端获取该已签名安卓应用程序的公钥,将该已签名安卓应用。
12、程序的公钥记为第二公钥,所述已签名安卓应用程序是指用所述签名文件签名后的安卓应用程序;0015验证模块,用于服务接入端将所述第二公钥与所述第一公钥进行比较,根据比较结果判断所述已签名安卓应用程序是否安全。0016进一步地,上述安卓应用程序的安全验证装置还可具有以下特点,所述验证模块包括0017第一判定单元,用于在所述比较结果为所述第二公钥与所述第一公钥一致时,判定所述已签名安卓应用程序安全;0018第二判定单元,用于在所述比较结果为所述第二公钥与所述第一公钥不一致时,判定所述已签名安卓应用程序不安全。0019进一步地,上述安卓应用程序的安全验证装置还可具有以下特点,还包括返回模块,所述返回模块。
13、与所述验证模块相连,用于在所述验证模块的判断结果为所述已签名安卓应用程序安全时,向所述已签名安卓应用程序返回相关数据。0020本发明安卓应用程序的安全验证方法及装置利用反编译后的APK需要重新打包,而重新打包后的APK签名必定会与官方签名不同这一机制对APK进行身份验证,通过在线签名比对进行身份校验,有效的阻止了不法分子通过仿造APK身份去恶意攻击平台的行为,有效防止被恶意篡改过的ANDROID应用程序带来的安全风险,增强了平台的安全性。附图说明0021图1为本发明实施例中安卓应用程序的安全验证方法的流程图;0022图2为本发明实施例中安卓应用程序的安全验证方法的应用示例图;0023图3为本发。
14、明实施例中安卓应用程序的安全验证装置的结构框图。具体实施方式0024以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。0025图1为本发明实施例中安卓应用程序的安全验证方法的流程图。如图1所示,本说明书CN104049973A3/4页5实施例中,安卓应用程序的安全验证方法的流程可以包括如下步骤0026步骤S101,从签名后的安卓应用程序安装文件即APK文件中提取出公钥保存到服务接入端,将该从签名后的APK文件中取出的公钥记为第一公钥,所述服务接入端是指安卓应用程序的下载端,公钥包含在签名后的APK文件中,其中,为APK文件签名的签名文件由开发者生成;。
15、0027这里,签名文件是指安卓应用程序签名文件。0028步骤S102,在已签名安卓应用程序初始化时,服务接入端获取该已签名安卓应用程序的公钥,将该已签名安卓应用程序的公钥记为第二公钥,所述已签名安卓应用程序是指用所述签名文件签名后的安卓应用程序;0029步骤S103,服务接入端将第二公钥与第一公钥进行比较,根据比较结果判断已签名安卓应用程序是否安全。0030具体地,步骤S103中根据比较结果判断已签名安卓应用程序是否安全可以包括若比较结果为第二公钥与所述第一公钥一致,则判定已签名安卓应用程序安全,也即该已签名安卓应用程序合法,若比较结果为第二公钥与第一公钥不一致,则判定已签名安卓应用程序不安全。
16、,也即该已签名安卓应用程序非法。0031在本发明其他实施例中,步骤S103之后还可以包括如下步骤若判断结果为已签名安卓应用程序安全,则服务接入端向已签名安卓应用程序返回相关数据。0032图2为本发明实施例中安卓应用程序的安全验证方法的应用示例图。如图2所示,本实施例中,安卓应用程序的安全验证方法包括如下步骤0033步骤S201、应用开发者生成KEYSTORE文件;0034KEYSTORE文件即ANDROID应用程序签名文件也即上述的安卓应用程序签名文件。0035步骤S202、从用KEYSTORE文件签名的APK文件中提取公钥提交到服务接入端;0036步骤S203、用生成的KEYSTORE文件为。
17、ANDROID应用程序签名;0037步骤S204、已签名的ANDROID应用程序初始化;0038步骤S205、ANDROID应用程序初始化成功;0039步骤S206、能力调用,SDKSOFTWAREDEVELOPMENTKIT,软件开发工具包获得已签名ANDROID应用程序的公钥;0040步骤S207、验证公钥是否一致;0041即验证从KEYSTORE文件中提取并提交到服务接入端中保存的公钥与从已签名ANDROID应用程序中获得的公钥是否一致,若一致则说明已签名ANDROID应用程序安全,否则说明已签名ANDROID应用程序不安全。0042步骤S208、若一致则能力调用返回数据。这里,返回的数。
18、据是指能力调用的相关数据。0043本发明安卓应用程序的安全验证方法为广大的ANDROID开发者提供了一种验证应用是否被篡改的方案。由于不同的开发者签名文件是唯一的,所以不同的开发者打包后的APK的签名也不会相同。本发明安卓应用程序的安全验证方法利用反编译后的APK需要重新打包,而重新打包后的APK签名必定会与官方签名不同这一机制对APK进行身份验证,通过在线签名比对进行身份校验,有效的阻止了不法分子通过仿造APK身份去恶意攻击平说明书CN104049973A4/4页6台的行为,有效防止被恶意篡改过的ANDROID应用程序带来的安全风险,增强了平台的安全性。0044本发明还提出了一种安卓应用程序。
19、的安全验证装置,用以执行上述的安卓应用程序的安全验证方法。0045图3为本发明实施例中安卓应用程序的安全验证装置的结构框图。如图3所示,本实施例中,安卓应用程序的安全验证装置包括顺次相连的保存模块310、获取模块320和验证模块330。其中,保存模块310用于从签名后的安卓应用程序安装文件即APK文件中提取出公钥保存到服务接入端,将该从签名后的APK文件中取出的公钥记为第一公钥,所述服务接入端是指安卓应用程序的下载端,其中,公钥包含在签名后的APK文件中,其中,为APK文件签名的签名文件由开发者生成。这里,签名文件是指安卓应用程序签名文件。获取模块320用于在已签名安卓应用程序初始化时,所述服。
20、务接入端获取该已签名安卓应用程序的公钥,将该已签名安卓应用程序的公钥记为第二公钥,其中,已签名安卓应用程序是指用上述签名文件签名后的安卓应用程序。验证模块330用于服务接入端将所述第二公钥与所述第一公钥进行比较,根据比较结果判断所述已签名安卓应用程序是否安全。0046在本发明实施例中,验证模块330还可以进一步包括第一判定单元和第二判定单元。其中,第一判定单元用于在所述比较结果为所述第二公钥与所述第一公钥一致时,判定所述已签名安卓应用程序安全。第二判定单元用于在所述比较结果为所述第二公钥与所述第一公钥不一致时,判定所述已签名安卓应用程序不安全。0047在本发明实施例中,安卓应用程序的安全验证装。
21、置还可以进一步包括返回模块。该返回模块与验证模块330相连,用于在验证模块330的判断结果为已签名安卓应用程序安全时,向已签名安卓应用程序返回相关数据。0048这里,相关数据是指能力调用的相关数据。0049本发明安卓应用程序的安全验证装置利用反编译后的APK需要重新打包,而重新打包后的APK签名必定会与官方签名不同这一机制对APK进行身份验证,通过在线签名比对进行身份校验,有效的阻止了不法分子通过仿造APK身份去恶意攻击平台的行为,有效防止被恶意篡改过的ANDROID应用程序带来的安全风险,增强了平台的安全性。0050以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说明书CN104049973A1/2页7图1图2说明书附图CN104049973A2/2页8图3说明书附图CN104049973A。