[发明专利]一种数字签名验证方法、介质及设备有效
申请号: | 201810291741.8 | 申请日: | 2018-03-30 |
公开(公告)号: | CN108683502B | 公开(公告)日: | 2022-01-25 |
发明(设计)人: | 郑伟;赵勇;龚蔚;苏勇 | 申请(专利权)人: | 上海连尚网络科技有限公司 |
主分类号: | H04L9/32 | 分类号: | H04L9/32;H04L9/06 |
代理公司: | 北京晋德允升知识产权代理有限公司 11623 | 代理人: | 杨移;万铁占 |
地址: | 200120 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数字签名 验证 方法 介质 设备 | ||
本申请公开了一种数字签名验证方法、介质及设备;其中,数字签名验证方法包括:确定应用程序安装文件中用于存储待验证的数字签名的第一存储地址;其中,所述数字签名用于验证应用程序安装文件;从所述第一存储地址中,读取所述数字签名;根据应用程序安装文件中预先存储的消息摘要,对所述数字签名进行验证。在验证数字签名时,通过上述方法可以避免验证逻辑被反编译,数字签名被篡改的缺陷,提高了应用程序安装文件检验结果的可靠性。
技术领域
本申请涉及数据处理领域,尤其涉及一种数字签名验证方法、介质及设备。
背景技术
随着Android平台的流行,很多优秀的Android安装包被不法分子篡改:或植入恶意病毒;或添加广告,然后通过二次打包再次进入渠道。
针对安装包防篡改,目前市场主要使用防篡改校验方案是通过Java语言实现。其中,校验流程具体为:在NDK(Native Development Kit,原生开发工具包)层中用Java语言,使用Native方法/DLL/Lua脚本等通过获取Java的context/Activity对象,动态JNI反射调用getPackageInfo等来获取APK数字签名签名信息,检验APK(Android Package,安卓安装包)数字签名与预先配置的APK数字签名是否匹配;如匹配,则说明APK是正版未被篡改的;如不匹配,则说明APK被篡改。
然而,Java层的调用是很容易被hook的。一旦被hook,篡改者可以在破解的APK里返回正确的签名信息从而骗过native校验;这样就达不到安装包校验的目的,降低了安装包检验的可靠性。
发明内容
本说明书实施例提供一种数字签名验证方法、装置及设备,用以解决提供一种更加安全的数字签名验证方式的问题。
本说明书实施例提供的一种数字签名验证方法,所述方法包括:
确定应用程序安装文件中用于存储待验证的数字签名的第一存储地址;其中,所述数字签名用于验证应用程序安装文件;
从所述第一存储地址中,读取所述数字签名;
根据应用程序安装文件中预先存储的消息摘要,对所述数字签名进行验证。
进一步的,所述确定应用程序安装文件中用于存储待验证的数字签名的第一存储地址,包括:
确定应用程序安装文件的中央目录文件的第二存储地址;其中,所述中央目录文件中记录有数字签名;
从第二存储地址中读取中央目录文件;
基于所述中央目录文件确定应用程序安装文件中用于存储数字签名的第一存储地址。
进一步的,所述从所述第一存储地址中,读取所述数字签名,包括:
从所述第一存储地址中,读取所述数字签名的字节流;
将所述数字签名的字节流转换为数字签名。
进一步的,所述将所述数字签名的字节流转换为数字签名,包括:
将所述数字签名的字节流转换为压缩文件;
解压所述压缩文件得到所述数字签名。
进一步的,所述根据应用程序安装文件中预先存储的消息摘要,还包括:
利用预设算法处理所述数字签名,得到待验证消息摘要;
利用预先存储的消息摘要验证所述待验证消息摘要。
进一步的,所述确定应用程序安装文件中用于存储待验证的数字签名的第一存储地址,包括:
读取应用程序安装文件的文件类型标识信息;其中,所述文件类型标识信息用于标识应用程序安装文件的文件类型;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海连尚网络科技有限公司,未经上海连尚网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810291741.8/2.html,转载请声明来源钻瓜专利网。