[发明专利]安卓APK启动时签名认证的方法及其装置在审
申请号: | 201780001547.5 | 申请日: | 2017-03-16 |
公开(公告)号: | CN107690643A | 公开(公告)日: | 2018-02-13 |
发明(设计)人: | 宋孝亮 | 申请(专利权)人: | 深圳大趋智能科技有限公司 |
主分类号: | G06F21/44 | 分类号: | G06F21/44 |
代理公司: | 深圳市明日今典知识产权代理事务所(普通合伙)44343 | 代理人: | 王杰辉 |
地址: | 518000 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | apk 启动 签名 认证 方法 及其 装置 | ||
技术领域
本发明涉及到安卓APK安全认证领域,特别是涉及到一种安卓APK启动时签名认证的方法及其装置。
背景技术
原始的Android系统会在安装APK的时候,检查签名,签名不同,没有签名或者签名不通过的,不能进行安装或者覆盖。
Google公司在android4.4中新增加了ART(Android Run Time)来替代之前的Dalvik,ART使用的是OAT格式的文件(OAT格式文件),在APK应用安装时安装器通过可执行代码dex2oat优化APK安装包为本地机器代码,也就是说安装后的文件和原始文件有了很大的差别,我们需要通过某种手段先知道安装后的本地机器代码文件,对本地机器代码文件签名后才能在apk启动时对本地机器代码文件进行启动认证。
原始APK只在安装时校验原始APK文件内部的META-INF目录下的签名文件,但是启动时不会再做校验。安卓系统在APK启动的时候不会再对APK进行校验,这就可能导致已安装成功的APK有被篡改的可能,存在安全隐患。
因此,有必要设计一种安卓APK启动式签名认证的方法,对已安装成功的APK进行启动时,对签名进行认证,确保APK也不被随意篡改,一旦APK被篡改,APK启动时就可以及时发现,被提示给用户APK已被篡改,无法运行,减少安全隐患。
发明内容
本发明的目的在于提供安卓APK启动时签名认证的方法及其装置,在APK启动的时候也进行签名验证,避免使用安装后被恶意篡改的APK。
为实现上述目的,本发明采用以下技术方案:一种安卓APK启动时签名认证的方法,所述方法包括:
获取由原始的APK安装文件转换而成的签名SGN文件,并加载安装后的APK的可执行代码转换而成的OAT签名文件;
判断所述OAT签名文件是否与签名SGN文件一致;
若是,加载APK,否则,禁止启动APK。
进一步地,所述原始的APK安装文件转换成签名SGN文件的方法,包括,
将原始的APK安装文件转换成OAT格式文件;
通过HASH256+RSA2048算法计算所述OAT格式文件中的oatdata和oatexec段,得到签名SGN文件。
进一步地,所述通过HASH256+RSA2048算法计算所述OAT格式文件中的oatdata和oatexec段,得到签名SGN文件步骤之后,还包括,
将所述签名SGN文件放入到原始的APK打包文件目录META-INF下;
重新打包所述APK文件,将新的APK文件安装到安卓系统中。
进一步地,所述并加载安装后的APK的可执行代码转换而成的OAT签名文件的步骤,包括,
将所述OAT签名文件加载至AndroidART虚拟机的内存内。
进一步地,所述判断所述OAT签名文件是否与签名SGN文件一致的步骤,包括,
判断APK对应的META-INF下的所述签名SGN文件是否被篡改,
若是,则禁止启动APK,否则计算所述OAT签名文件的Oatdata和oatexec段的HASH256值;
判断所述OAT签名文件的HASH256值和META-INF下的所述签名SGN文件中保存的HASH256值是否一致,
若一致,则签名验证成功,加载APK,
若不一致,则禁止启动APK。
本发明还提出了一种安卓APK启动时签名认证的装置,包括:
签名文件获取单元,用于获取由原始的APK安装文件转换而成的签名SGN文件,并加载安装后的APK的可执行代码转换而成的OAT签名文件;
更改判断单元,用于判断所述OAT签名文件是否与签名SGN文件一致,若是,加载APK,否则,禁止启动APK。
进一步地,还包括转化单元,用于将原始的APK安装文件转换成OAT格式文件,并,通过HASH256+RSA2048算法计算所述OAT格式文件中的oatdata和oatexec段,得到签名SGN文件。
进一步地,还包括复原单元以及打包单元,
所述复原单元,用于将所述签名SGN文件放入到原始APK打包文件目录META-INF下;
所述打包单元,用于重新打包所述APK文件,将新的APK文件安装到安卓系统中。
进一步地,所述签名文件获取单元包括有加载模块,所述加载模块,用于将所述OAT签名文件加载至AndroidART虚拟机的内存内。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳大趋智能科技有限公司,未经深圳大趋智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780001547.5/2.html,转载请声明来源钻瓜专利网。