掌桥专利:专业的专利平台
掌桥专利
首页

一种安卓应用关键数据的保护装置、方法、设备及可存储介质

文献发布时间:2023-06-19 10:43:23


一种安卓应用关键数据的保护装置、方法、设备及可存储介质

技术领域

本发明涉及安卓应用数据保护领域,具体涉及一种安卓应用关键数据的保护装置、方法、设备及可存储介质。

背景技术

目前,市面上安卓应用的破解方式层出不穷,各种高科技推陈出新,让本就不甚安全的安卓应用更是雪上加霜。经常遇到安卓应用被反编译,加塞广告,植入病毒,重新签名后发布的情况,使用者不小心就会中招。各种安全问题,不仅让用户深受其扰,更是让广大开发者焦头烂额。如何保护应用和设备的数据安全,杜绝信息泄露,防止破解,成为安全防护的重中之重。

有鉴于此,本发明人针对上述存在的问题进行深入构思,遂产生本案。

发明内容

本发明的目的在于提供一种安卓应用关键数据的保护装置、方法、设备及可存储介质,以提高关键数据的安全性。

为实现上述目的,本发明采用的技术方案是:

一种安卓应用关键数据的保护装置,其包括:

上下文模块,用于提供应用层的上下文信息;

加密数据库存储模块,用于存储关键数据;

安全模块,利用反射机制获取上下文信息,从上下文信息中获取签名信息,并对签名信息进行验证;所述安全模块内存储有密钥,且该安全模块设有与应用层对接的获取密钥接口;所述应用层在签名信号验证成功后通过获取密钥接口从安全模块中获取密钥,对加密数据库存储模块解密并正常操作数据库;

所述安全模块采用C/C++编写。

所述密钥采用分段式存储。

一种安卓应用关键数据的保护方法,所述方法采用权利要求1所述的装置实现,所述方法具体如下:

上下文模块记录应用层产生的上下文信息;

加载安全模块,利用反射机制从上下文模块中获取上下文信息,并从上下文信息中获取签名信息,将签名信息与预置的签名信息进行比对,若两者不同,则应用程序崩溃;若两者相同,则安全模块向应用层提供获取密钥接口;

应用层拷贝数据库,并通过获取密钥接口从安全模块中获取密钥,对加密数据库存储模块解密并正常操作数据库。

所述安全模块采用C/C++编写。

所述密钥采用分段式存储。

所述安全模块验证签名信息时,将签名信息转化为MD5码,并将其与预置的MD5码进行比对。

一种安卓应用关键数据的保护设备,其:包括处理器和存储器;所述存储器用于存储一个或多个软件程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行如上所述的保护方法。

一种计算机可读存储介质,所述机算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上所述的保护方法。

一种计算机软件程序产品,所述计算机软件程序产品在终端设备上运行时,使得所述终端设备执行如上所述的保护方法。

采用上述方案后,即使应用被恶意用户反编译破解,只要应用有被修改过,就不能正常运行,从根本上杜绝了安卓应用被非法盗用的情况发生,对关键数据起到了很好的保护作用。

附图说明

图1为本发明的原理框图;

图2为本发明的流程图。

具体实施方式

本发明揭示了一种安卓应用关键数据的保护装置,其包括:

上下文模块,用于提供应用层的上下文信息;

加密数据库存储模块,用于存储关键数据;

安全模块,利用反射机制获取上下文信息,从上下文信息中获取签名信息,并对签名信息进行验证;所述安全模块内存储有密钥,且该安全模块设有与应用层对接的获取密钥接口;所述应用层在签名信号验证成功后通过获取密钥接口从安全模块中获取密钥,对加密数据库存储模块解密并正常操作数据库。

上述安全模块提供接口供应用层调用,该安全模块采用C/C++编写,并编译成so库的方式。采用C/C++编写可以放置被反编译。

上述关键数据为比较重要的数据或者对安全性要求比较高的数据资料,例如用户名、密码、token等数据。本发明中,加密数据库模块需要从安全模块提供的接口中获取解密密钥。本发明不采用安全模块直接提供数据的原因有很多,比如数据有变化时,只要修改数据库即可,不用改C/C++的代码,不用新增接口;再比如安全模块万一真的被破解了,数据库也是另一道防线;又或者数据很多时,数据库可以分表分类保存等等。另本发明中,密钥采用分段式存储,防止从二进制文件中直接读取到密钥信息。

基于同一发明构思,本发明还揭示了一种安卓应用关键数据的保护方法,其采用上述装置实现,所述方法具体如下:

上下文模块记录应用层产生的上下文信息。

加载安全模块,利用反射机制从上下文模块中获取上下文信息,并从上下文信息中获取签名信息。具体地,本实施例中通过反射执行PackageMananger的getPackageName方法,获取到PackageInfo对象,最终得到签名信息;。

然后将签名信息与预置的签名信息进行比对,若两者不同,则应用程序崩溃;若两者相同,则提供获取密钥接口,从加密数据库模块中获取密钥信息。为了方便比对,本实施例中安全模块验证签名信息时,将签名信息转化为MD5码,并将其与预置的MD5码(预置签名信息)进行比对。

最后,应用层拷贝数据库,并从安全模块中获取密钥,对数据库解密并正常操作数据库。

本发明还揭示了一种安卓应用关键数据的保护设备,其包括处理器和存储器;所述存储器用于存储一个或多个软件程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述保护方法。

本发明还揭示了一种计算机可读存储介质,该机算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上所述的保护方法。

本发明还揭示了一种计算机软件程序产品,其在终端设备上运行时,使得所述终端设备执行如上所述的保护方法。

现有技术中,在应用被恶意用户反编译破解的情况下,破解者完全可以创建一个相同包名的应用并使用so库,轻易就能获取到密钥,基本上等于不设防。而采用本发明的方法,即使应用被恶意用户反编译破解,只要应用有被修改过,就不能正常运行,从根本上杜绝了安卓应用被非法盗用的情况发生,对关键数据起到了很好的保护作用。

以上所述,仅是本发明实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

相关技术
  • 一种安卓应用关键数据的保护装置、方法、设备及可存储介质
  • 一种数据库中关键词的确定方法、电子设备及存储介质
技术分类

06120112657078