对apk文件完整性保护的方法、系统、设备及存储介质技术方案

技术编号:26377050 阅读:15 留言:0更新日期:2020-11-19 23:45
本发明专利技术公开了一种对apk文件完整性保护的方法、系统、设备及存储介质,包括以下步骤:计算apk文件的应用程序初始的校验和,获取应用程序的原始开发者的身份信息;在启动应用程序之前,计算应用程序当前的校验和,再将应用程序当前的校验和与计算得到的应用程序初始的校验和进行对比;同时获取应用程序内当前开发者的身份信息,然后将应用程序内当前开发者的身份信息与获取的原始开发者的身份信息进行对比,当应用程序当前的校验和与计算得到的应用程序初始的校验和一致,且应用程序内当前开发者的身份信息与获取的原始开发者的身份信息一致时,则正常启动应用程序,该方法、系统、设备及存储介质能够有效的提高应用软件的安全性。

【技术实现步骤摘要】
对apk文件完整性保护的方法、系统、设备及存储介质
本专利技术属于移动应用软件安全防护
,涉及一种对apk文件完整性保护的方法、系统、设备及存储介质。
技术介绍
针对互联网环境中,攻击者恶意篡改apk程序内容的技术行为(即在apk程序内添加或修改代码、替换资源文件、修改配置信息、更换图标、植入非法代码等行为,再通过对篡改后的APP进行二次打包,生成各种盗版、钓鱼应用)。尤其对金融类消费类apk程序来说,apk程序篡改技术能够人为的添加病毒代码、广告SDK,可能导致出现用户登录账号、支付密码、短信验证码等敏感信息被窃取,以及被修改转账账号、金额等犯罪行为。攻击者可以通过逆向分析工具对apk软件包进行反编译,并将加入各种恶意代码后的apk程序发布到一些审核不严格的应用市场中。这些问题应用软件,对用户的使用造成了极其严重的安全威胁。由此可见移动智能终端的应用安全问题有多么的严重。鉴于移动终端安全的严峻形势,为防止手机病毒等恶意软件窃取用户的隐私数据、阻止对正常应用的二次打包等类似的安全威胁,进行终端应用安全加固技术的研究是很有现实意义的,也是刻不容缓的。Android系统现在面临着非常严重的恶意软件威胁。这其中有部分恶意应用是攻击者怀着不良目的而专门制作的,哄骗用户上当后,进行恶意操作。还有一部分是正常应用被攻击者二次打包,即在正常应用中插入恶意代码,然后重新编译打包,上传到应用商店,借着原来正常应用的面目对用户进行欺骗,从而诱使用户上当。如今软件被攻击者二次打包的现象越来越严重,通过向正常应用中插入恶意代码、广告代码等,然后欺骗用户安装这些经过二次打包的应用,通过点击广告、后台下载软件产生非法推广利益。目前攻击者与非法广告渠道商已经形成了一条非常成熟的利益链条。除了被二次打包,应用还可能被反编译。攻击者通过反编译,可以窃取应用程序的核心代码,使攻击者可以盗窃软件作者的核心技术,然后以出售核心技术或者山寨应用的方式使作者的知识产权利益受到侵害。不仅如此,对某些付费应用,攻击者反编译应用后,还可以破解其中的付费框架,例如系统内置的代币、优惠券等,使用户可以绕过付费的环节,直接获取到它想要的东西,从而使作者蒙受经济上的损失。而对于某些会产生用户隐私数据的应用,例如聊天应用、邮件应用等,攻击者的主要目的则是窃取用户的隐私数据。虽然说系统的安全机制可以很好的防止恶意程序侵入其他应用,但是一旦被恶意应用骗得权限,那么应用的数据就完全暴露在了恶意应用面前,将任恶意应用窃取。所以我们还需从应用软件本身入手,加强应用软件的安全性,使得即使系统的安全机制被突破,仍然能靠应用自身的加固机制,防御入侵。
技术实现思路
本专利技术的目的在于克服上述现有技术的缺点,提供了一种对apk文件完整性保护的方法、系统、设备及存储介质,该方法、系统、设备及存储介质能够有效的提高应用软件的安全性。为达到上述目的,本专利技术所述的对apk文件完整性保护的方法包括以下步骤:1)计算apk文件的应用程序初始的校验和,获取应用程序的原始开发者的身份信息;2)在启动应用程序之前,计算应用程序当前的校验和,再将应用程序当前的校验和与步骤1)计算得到的应用程序初始的校验和进行对比;同时获取应用程序内当前开发者的身份信息,然后将应用程序内当前开发者的身份信息与步骤1)获取的原始开发者的身份信息进行对比,当应用程序当前的校验和与步骤1)计算得到的应用程序初始的校验和一致,且应用程序内当前开发者的身份信息与步骤1)获取的原始开发者的身份信息一致时,则正常启动应用程序,否则,则终止应用程序的启动。步骤1)还包括:在应用程序中加入哨兵函数,利用哨兵函数计算应用程序当前的校验和,再将应用程序当前的校验和与步骤1)计算得到的应用程序初始的校验和进行对比;当应用程序当前的校验和与步骤1)计算得到的应用程序初始的校验和一致,且应用程序内当前开发者的身份信息与步骤2)获取的原始开发者的身份信息一致时,哨兵函数正常启动应用程序,否则,哨兵函数终止应用程序的启动。哨兵函数从当前应用程序的签名中提取应用程序内当前开发者的身份信息,其中,基于原始开发者的身份信息生成数字证书,再利用数字证书为应用程序的签名。还包括:对数字证书进行加密,其中,私钥保存在开发者处,公钥与应用程序一起打包形成应用程序包。利用数字证书使用AndroidSDK自带的签名工具keytool和signapk为应用程序签名,所述数字证书用于标识应用程序的开发者与应用程序之间的信任关系。通过应用程序检测开发者身份信息。一种对apk文件完整性保护的系统包括:初始计算模块,用于计算apk文件的应用程序初始的校验和,获取应用程序的原始开发者的身份信息;验证模块,与初始计算模块相连接,计算应用程序当前的校验和,再将应用程序当前的校验和与应用程序初始的校验和进行对比;同时获取应用程序内当前开发者的身份信息,然后将应用程序内当前开发者的身份信息与原始开发者的身份信息进行对比,当应用程序当前的校验和与应用程序初始的校验和一致,且应用程序内当前开发者的身份信息与原始开发者的身份信息一致时,则正常启动应用程序,否则,则终止应用程序的启动。一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序所述处理器执行所述计算机程序时实现所述对apk文件完整性保护的方法的步骤。一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述对apk文件完整性保护的方法的步骤。本专利技术具有以下有益效果:本专利技术所述的对apk文件完整性保护的方法、系统、设备及存储介质在具体操作时,基于完整性交叉校验技术实现应用程序完整性保护,以提高应用软件的安全性,即利用应用程序的初始校验和原始开发者的身份信息的验证实现对应用程序的完整性保护,具体的,先计算应用程序初始的校验和,并获取原始开发者的身份信息,在启动程序之前,在应用程序当前的校验和及其内开发者的身份信息与原始的校验和及开发者的身份信息进行对比,并根据对比结果判断数据及代码是否被篡改,当数据及代码被篡改时,则终止应用程序的启动,当数据及代码没有被篡改时,则正常启动应用程序,以提高应用软件的安全性,有效防止程序被插入恶意软件、病毒、木马等恶意代码,阻止非官方版本的启动运行,确保使用该软件程序过程的安全性。进一步,对数字证书进行加密,其中,私钥保存在开发者处,公钥与应用程序一起打包形成应用程序包,以提高数字证书的安全性。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为本专利技术的流程图;图2为应用程序校验和校验时的流程图。具体实施方式下面结合附图对本专利技术做进一步详细描述:参考图1本文档来自技高网
...

【技术保护点】
1.一种对apk文件完整性保护的方法,其特征在于,包括以下步骤:/n1)计算apk文件的应用程序初始的校验和,获取应用程序的原始开发者的身份信息;/n2)计算应用程序当前的校验和,再将应用程序当前的校验和与步骤1)计算得到的应用程序初始的校验和进行对比;同时获取应用程序内当前开发者的身份信息,然后将应用程序内当前开发者的身份信息与步骤1)获取的原始开发者的身份信息进行对比,当应用程序当前的校验和与步骤1)计算得到的应用程序初始的校验和一致,且应用程序内当前开发者的身份信息与步骤1)获取的原始开发者的身份信息一致时,则正常启动应用程序,否则,则终止应用程序的启动,完成对apk文件完整性保护。/n

【技术特征摘要】
1.一种对apk文件完整性保护的方法,其特征在于,包括以下步骤:
1)计算apk文件的应用程序初始的校验和,获取应用程序的原始开发者的身份信息;
2)计算应用程序当前的校验和,再将应用程序当前的校验和与步骤1)计算得到的应用程序初始的校验和进行对比;同时获取应用程序内当前开发者的身份信息,然后将应用程序内当前开发者的身份信息与步骤1)获取的原始开发者的身份信息进行对比,当应用程序当前的校验和与步骤1)计算得到的应用程序初始的校验和一致,且应用程序内当前开发者的身份信息与步骤1)获取的原始开发者的身份信息一致时,则正常启动应用程序,否则,则终止应用程序的启动,完成对apk文件完整性保护。


2.根据权利要求1所述的对apk文件完整性保护的方法,其特征在于,步骤1)还包括:在应用程序中加入哨兵函数,利用哨兵函数计算应用程序当前的校验和,再将应用程序当前的校验和与步骤1)计算得到的应用程序初始的校验和进行对比;当应用程序当前的校验和与步骤1)计算得到的应用程序初始的校验和一致,且应用程序内当前开发者的身份信息与步骤2)获取的原始开发者的身份信息一致时,哨兵函数正常启动应用程序,否则,哨兵函数终止应用程序的启动。


3.根据权利要求2所述的对apk文件完整性保护的方法,其特征在于,哨兵函数从当前应用程序的签名中提取应用程序内当前开发者的身份信息,其中,基于原始开发者的身份信息生成数字证书,再利用数字证书为应用程序的签名。


4.根据权利要求3所述的对apk文件完整性保护的方法,其特征在于,还包括:对数字证书进行加密,其中,私钥保存在...

【专利技术属性】
技术研发人员:王朝阳曹飞汪洋李凌方帅王杰王云龙
申请(专利权)人:中国电力科学研究院有限公司国家电网有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1