一种安卓系统应用程序的密码算法测评方法及装置转让专利

申请号 : CN202310209969.9

文献号 : CN116070250B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 于乐刘乐霍要峰赵元凯廖会敏彭涛陈松林李豫童憬

申请人 : 卓望数码技术(深圳)有限公司

摘要 :

本发明实施例公开了一种安卓系统应用程序的密码算法测评方法及装置,其中该测评方法包括:使用目标框架服务获取安卓系统的目标应用程序对应的目标密码算法,其中在安卓系统预先安装了目标框架服务,且目标框架服务可在不修改安卓系统安装包文件的情况下影响程序运行;使用目标钩子获取目标密码算法对应的目标测评数据,并将目标测评数据写入目标文件中,其中目标钩子可截获或监控传输过程中的数据;对写入目标文件中的目标测评数据对应的风险等级进行测评,得到目标密码算法对应的目标密码算法测评结果。本发明可避免开发者在使用密码技术对数据加密后的存储或传输中产生安全漏洞,使开发者可以正确的运用密码技术对数据进行加密等操作。

权利要求 :

1.一种安卓系统应用程序的密码算法测评方法,其特征在于,包括:

使用目标框架服务获取安卓系统的目标应用程序对应的目标密码算法,其中在安卓系统预先安装了所述目标框架服务,且所述目标框架服务可在不修改安卓系统安装包文件的情况下影响程序运行;

使用目标钩子获取所述目标密码算法对应的目标测评数据,并将所述目标测评数据写入目标文件中,其中所述目标钩子可截获或监控传输过程中的数据,且不同的所述目标密码算法对应的所述目标测评数据不同;

对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果。

2.根据权利要求1所述的安卓系统应用程序的密码算法测评方法,其特征在于,所述对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果,包括:判断写入所述目标文件中的所述目标测评数据对应的所述目标密码算法是否为目标哈希算法;

若是,则获取所述目标哈希算法对应的类别,并根据所述目标哈希算法对应的类别得到所述目标密码算法对应的所述目标密码算法测评结果。

3.根据权利要求2所述的安卓系统应用程序的密码算法测评方法,其特征在于,所述获取所述目标哈希算法对应的类别,并根据所述目标哈希算法对应的类别得到所述目标密码算法对应的所述目标密码算法测评结果,包括:判断所述目标哈希算法对应的类别是否为MD5算法或SHA1算法;

若是,则将所述目标密码算法对应的风险等级测评为高风险等级,并将高风险等级作为所述目标密码算法对应的所述目标密码算法测评结果;

若不是,则判断所述目标哈希算法对应的类别是否为SHA256算法、SHA384算法、SHA512算法和SM3算法中的任意一种;

若是,则将所述目标密码算法对应的风险等级测评为零风险等级,并将零风险等级作为所述目标密码算法对应的所述目标密码算法测评结果;

其中,所述风险等级包括高风险等级、中风险等级和零风险等级,且高风险等级对应的风险程度大于中风险等级对应的风险程度,零风险等级对应的风险程度为零。

4.根据权利要求1所述的安卓系统应用程序的密码算法测评方法,其特征在于,所述对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果,包括:判断写入所述目标文件中的所述目标测评数据对应的所述目标密码算法是否为目标对称算法;

若是,则判断所述目标对称算法对应的类别是否为DES算法或为3DES算法、AES算法和SM4算法中的任意一种;

若所述目标对称算法对应的类别为DES算法,则将所述目标密码算法对应的风险等级测评为高风险等级,并将高风险等级作为所述目标密码算法对应的所述目标密码算法测评结果;

若所述目标对称算法对应的类别为3DES算法、AES算法和SM4算法中的任意一种,则将所述目标密码算法对应的风险等级测评为零风险等级,并将零风险等级作为所述目标密码算法对应的所述目标密码算法测评结果;

其中,所述风险等级包括高风险等级、中风险等级和零风险等级,且高风险等级对应的风险程度大于中风险等级对应的风险程度,零风险等级对应的风险程度为零。

5.根据权利要求4所述的安卓系统应用程序的密码算法测评方法,其特征在于,所述将所述目标密码算法对应的风险等级测评为零风险等级,并将零风险等级作为所述目标密码算法对应的所述目标密码算法测评结果,之后包括:判断写入所述目标文件中的所述目标测评数据中所包含的目标密钥值和/或目标初始向量值是否为随机值;

若所述目标密钥值和/或所述目标初始向量值为随机值,则将所述目标密码算法对应的风险等级测评为零风险等级,并将零风险等级作为所述目标密码算法对应的所述目标密码算法测评结果;

若所述目标密钥值和/或所述目标初始向量值不为随机值,则将所述目标密码算法对应的风险等级测评为中风险等级,并将中风险等级作为所述目标密码算法对应的所述目标密码算法测评结果。

6.根据权利要求1所述的安卓系统应用程序的密码算法测评方法,其特征在于,所述对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果,包括:判断写入所述目标文件中的所述目标测评数据对应的所述目标密码算法是否为目标非对称算法;

若所述目标密码算法为所述目标非对称算法,则判断所述目标非对称算法对应的类别是否为RSA算法或SM2算法;

若所述目标非对称算法对应的类别为RSA算法,则进一步判断RSA算法的长度是否小于

2048bit;

若RSA算法的长度小于2048bit,则将所述目标密码算法对应的风险等级测评为高风险等级,并将高风险等级作为所述目标密码算法对应的所述目标密码算法测评结果;

若RSA算法的长度是否大于或等于2048bit,则将所述目标密码算法对应的风险等级测评为零风险等级,并将零风险等级作为所述目标密码算法对应的所述目标密码算法测评结果;

其中,所述风险等级包括高风险等级、中风险等级和零风险等级,且高风险等级对应的风险程度大于中风险等级对应的风险程度,零风险等级对应的风险程度为零。

7.根据权利要求6所述的安卓系统应用程序的密码算法测评方法,其特征在于,所述判断所述目标非对称算法对应的类别是否为RSA算法或SM2算法,之后包括:若所述目标非对称算法对应的类别为SM2算法,则判断写入所述目标文件中的所述目标测评数据中所包含的目标密钥值是否为随机值;

若所述目标密钥值为随机值,则将所述目标密码算法对应的风险等级测评为零风险等级,并将零风险等级作为所述目标密码算法对应的所述目标密码算法测评结果;

若所述目标密钥值不是随机值,则将所述目标密码算法对应的风险等级测评为中风险等级,并将中风险等级作为所述目标密码算法对应的所述目标密码算法测评结果。

8.一种安卓系统应用程序的密码算法测评装置,其特征在于,包括:

算法获取模块,用于使用目标框架服务获取安卓系统的目标应用程序对应的目标密码算法,其中在安卓系统预先安装了所述目标框架服务,且所述目标框架服务可在不修改安卓系统安装包文件的情况下影响程序运行;

数据获取模块,用于使用目标钩子获取所述目标密码算法对应的目标测评数据,并将所述目标测评数据写入目标文件中,其中所述目标钩子可截获或监控传输过程中的数据,且不同的所述目标密码算法对应的所述目标测评数据不同;

风险测评模块,用于对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果。

9.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1 7任一项所述的安卓系统应用程序的密码算~法测评方法。

10.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1 7任一项所述~的安卓系统应用程序的密码算法测评方法。

说明书 :

一种安卓系统应用程序的密码算法测评方法及装置

技术领域

[0001] 本发明涉及密码算法测评的技术领域,尤其涉及一种安卓系统应用程序的密码算法测评方法及装置。

背景技术

[0002] 目前,根据信息安全技术和信息系统密码应用的国标(例如GB/T 39786‑2021)要求,应该采用密码技术保证信息系统中数据存储和传输过程中的机密性、完整性、真实性和不可否认性。因此,APP(应用程序)的开发者为了保证Android(安卓)系统APP数据的机密性和完整性,需要使用密码技术对数据加密后存储或传输。但是如果APP开发者对密码应用缺乏技能和经验,不了解密码算法的类型以及错误地调用密码技术,就会不可避免地产生安全漏洞。常见的错误案例种类很多,例如采用存在安全问题或安全强度不足的密码算法、使用固定值而不是随机数作为加密算法初始向量和密码算法的密钥不具有随机性等。如何在使用密码技术对数据加密后的存储或传输中避免产生安全漏洞,成为亟待解决的问题。

发明内容

[0003] 基于此,有必要针对上述问题,提出一种安卓系统应用程序的密码算法测评方法及装置,以解决现有技术的以下问题:APP开发者对密码应用缺乏技能和经验,不了解密码算法的类型以及错误地调用密码技术,导致产生很多安全漏洞。
[0004] 本发明实施例的第一技术方案为:
[0005] 一种安卓系统应用程序的密码算法测评方法,其包括:使用目标框架服务获取安卓系统的目标应用程序对应的目标密码算法,其中在安卓系统预先安装了所述目标框架服务,且所述目标框架服务可在不修改安卓系统安装包文件的情况下影响程序运行;使用目标钩子获取所述目标密码算法对应的目标测评数据,并将所述目标测评数据写入目标文件中,其中所述目标钩子可截获或监控传输过程中的数据,且不同的所述目标密码算法对应的所述目标测评数据不同;对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果。
[0006] 本发明实施例的第二技术方案为:
[0007] 一种安卓系统应用程序的密码算法测评装置,其包括:算法获取模块,用于使用目标框架服务获取安卓系统的目标应用程序对应的目标密码算法,其中在安卓系统预先安装了所述目标框架服务,且所述目标框架服务可在不修改安卓系统安装包文件的情况下影响程序运行;数据获取模块,用于使用目标钩子获取所述目标密码算法对应的目标测评数据,并将所述目标测评数据写入目标文件中,其中所述目标钩子可截获或监控传输过程中的数据,且不同的所述目标密码算法对应的所述目标测评数据不同;风险测评模块,用于对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果。
[0008] 本发明实施例的第三技术方案为:
[0009] 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
[0010] 使用目标框架服务获取安卓系统的目标应用程序对应的目标密码算法,其中在安卓系统预先安装了所述目标框架服务,且所述目标框架服务可在不修改安卓系统安装包文件的情况下影响程序运行;使用目标钩子获取所述目标密码算法对应的目标测评数据,并将所述目标测评数据写入目标文件中,其中所述目标钩子可截获或监控传输过程中的数据,且不同的所述目标密码算法对应的所述目标测评数据不同;对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果。
[0011] 本发明实施例的第四技术方案为:
[0012] 一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
[0013] 使用目标框架服务获取安卓系统的目标应用程序对应的目标密码算法,其中在安卓系统预先安装了所述目标框架服务,且所述目标框架服务可在不修改安卓系统安装包文件的情况下影响程序运行;使用目标钩子获取所述目标密码算法对应的目标测评数据,并将所述目标测评数据写入目标文件中,其中所述目标钩子可截获或监控传输过程中的数据,且不同的所述目标密码算法对应的所述目标测评数据不同;对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果。
[0014] 采用本发明实施例,具有如下有益效果:
[0015] 本发明首先通过使用目标框架服务获取安卓系统的目标应用程序对应的目标密码算法,然后使用目标钩子获取所述目标密码算法对应的目标测评数据,并将所述目标测评数据写入目标文件中,最后对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果,可避免开发者在使用密码技术对数据加密后的存储或传输中产生安全漏洞,使开发者可以正确的运用密码技术对数据进行加密。

附图说明

[0016] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017] 其中:
[0018] 图1为一个实施例中安卓系统应用程序的密码算法测评方法一实施方式的实施流程图;
[0019] 图2为一个实施例中安卓系统应用程序的密码算法测评装置一实施方式的框架结构图;
[0020] 图3为一个实施例中计算机设备一实施方式的结构框图。

具体实施方式

[0021] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022] 请参阅图1,结合图1可以得到,本发明实施例的一种安卓系统应用程序的密码算法测评方法,包括以下几个步骤:
[0023] 步骤S101:使用目标框架服务获取安卓系统的目标应用程序对应的目标密码算法,其中在安卓系统预先安装了所述目标框架服务,且所述目标框架服务可在不修改安卓系统安装包文件的情况下影响程序运行。
[0024] 其中,本步骤的目标框架服务可选为xposed框架,即Xposed Framework,Xposed Framework是一套开源的、在Android(安卓系统)高权限模式下运行的框架服务,可以在不修改APK文件(即安卓系统安装包文件)的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。
[0025] 步骤S102:使用目标钩子获取所述目标密码算法对应的目标测评数据,并将所述目标测评数据写入目标文件中,其中所述目标钩子可截获或监控传输过程中的数据,且不同的所述目标密码算法对应的所述目标测评数据不同。
[0026] 其中,在本步骤中,目标钩子可选为Hook,Hook又叫“钩子”,它可以在事件传送的过程中截获并监控事件的传输(比如java代码的方法,Hook可截取方法的输入值和输出值)。
[0027] 其中,不同的所述目标密码算法对应的所述目标测评数据不同,例如对于Hash(哈希)算法,本工具(目标钩子)能Hook到的数据为:Hash算法的类别、输入数据和Hash值等;例如对于对称密码算法,本工具能Hook到的数据为:对称密码算法的类别、明文数据、初始向量、密钥值和密文数据等;例如对于非对称密码算法,本工具能Hook到的数据为:非对称密码算法的类别、明文数据、公钥值、私钥值和密文数据等。
[0028] 步骤S103:对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果。
[0029] 其中,本步骤对于所述目标密码算法对应的类别和各种数据均有不同的测评方法,目标密码算法测评结果包括所述目标密码算法对应的各种数据的风险等级。
[0030] 在本实施例中,可选地,所述对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果,包括:
[0031] 第一,判断写入所述目标文件中的所述目标测评数据对应的所述目标密码算法是否为目标哈希算法。
[0032] 第二,若写入所述目标文件中的所述目标测评数据对应的所述目标密码算法为目标哈希算法,则获取所述目标哈希算法对应的类别,并根据所述目标哈希算法对应的类别得到所述目标密码算法对应的所述目标密码算法测评结果。
[0033] 在本实施例中,可选地,所述获取所述目标哈希算法对应的类别,并根据所述目标哈希算法对应的类别得到所述目标密码算法对应的所述目标密码算法测评结果,包括:
[0034] 第一,判断所述目标哈希算法对应的类别是否为MD5算法或SHA1算法。
[0035] 其中,哈希算法又称哈希函数,或Hash算法,它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
[0036] 其中,Hash算法包括MD5算法、SHA1算法、SHA256算法、SHA384算法、SHA512算法和SM3算法等算法。例如,MD5算法是信息‑摘要算法(Message‑digestalgorithm5),SHA1是安全哈希算法(SecureHashAlgorithm),其余算法不再一一介绍。
[0037] 第二,若所述目标哈希算法对应的类别为MD5算法或SHA1算法,则将所述目标密码算法对应的风险等级测评为高风险等级,并将高风险等级作为所述目标密码算法对应的所述目标密码算法测评结果。
[0038] 其中,MD5算法或SHA1算法是存在安全问题或安全强度不足的密码算法,它们对应的风险等级为高风险等级。
[0039] 第三,若所述目标哈希算法对应的类别不是MD5算法或SHA1算法,则判断所述目标哈希算法对应的类别是否为SHA256算法、SHA384算法、SHA512算法和SM3算法中的任意一种。
[0040] 第四,若所述目标哈希算法对应的类别为SHA256算法、SHA384算法、SHA512算法和SM3算法中的任意一种,则将所述目标密码算法对应的风险等级测评为零风险等级,并将零风险等级作为所述目标密码算法对应的所述目标密码算法测评结果。
[0041] 其中,所述风险等级包括高风险等级、中风险等级和零风险等级,且高风险等级对应的风险程度大于中风险等级对应的风险程度,零风险等级对应的风险程度为零。其中,高风险等级、中风险等级和零风险等级的判定根据国标和经验阈值来进行。
[0042] 在本实施例中,可选地,所述对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果,包括:
[0043] 第一,判断写入所述目标文件中的所述目标测评数据对应的所述目标密码算法是否为目标对称算法。
[0044] 其中,对称密码算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加密解密的密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密。只要通信需要保密,密钥就必须保密。
[0045] 第二,若写入所述目标文件中的所述目标测评数据对应的所述目标密码算法为目标对称算法,则判断所述目标对称算法对应的类别是否为DES算法或为3DES算法、AES算法和SM4算法中的任意一种。
[0046] 其中,对称密码算法包括DES算法、3DES算法、AES算法和SM4算法等算法。DES算法、3DES算法、AES算法和SM4算法的全称在此不一一介绍。
[0047] 第三,若所述目标对称算法对应的类别为DES算法,则将所述目标密码算法对应的风险等级测评为高风险等级,并将高风险等级作为所述目标密码算法对应的所述目标密码算法测评结果。
[0048] 第四,若所述目标对称算法对应的类别为3DES算法、AES算法和SM4算法中的任意一种类别,则将所述目标密码算法对应的风险等级测评为零风险等级,并将零风险等级作为所述目标密码算法对应的所述目标密码算法测评结果。
[0049] 其中,所述风险等级包括高风险等级、中风险等级和零风险等级,且高风险等级对应的风险程度大于中风险等级对应的风险程度,零风险等级对应的风险程度为零。其中,高风险等级、中风险等级和零风险等级的判定根据国标和经验阈值来进行。
[0050] 在本实施例中,可选地,所述将所述目标密码算法对应的风险等级测评为零风险等级,并将零风险等级作为所述目标密码算法对应的所述目标密码算法测评结果,之后包括:
[0051] 第一,判断写入所述目标文件中的所述目标测评数据中所包含的目标密钥值和/或目标初始向量值是否为随机值。
[0052] 第二,若所述目标密钥值和/或所述目标初始向量值为随机值,则将所述目标密码算法对应的风险等级测评为零风险等级,并将零风险等级作为所述目标密码算法对应的所述目标密码算法测评结果。
[0053] 第三,若所述目标密钥值和/或所述目标初始向量值不为随机值,则将所述目标密码算法对应的风险等级测评为中风险等级,并将中风险等级作为所述目标密码算法对应的所述目标密码算法测评结果。
[0054] 其中,对称算法的ECB加密算法涉及到密钥和明文数据的输入,输出为密文数据,在ECB加密算法中密钥值应该是随机的,比如密钥值“C7261A9BB75FE33A0691215E62254B0D”就是一个随机的值,但比如密钥值是“11111111111111111111”或“12345678ABCDEFGH1
2345678ABCDEFGH”等这种数据,就不具有随机性,如果使用的密钥值不具有随机数,则判定为中风险。
[0055] 其中,对称算法的CBC加密算法涉及到几个输入:密钥、明文数据、初始向量(比ECB的加密多了初始向量),输出为密文数据,在CBC加密算法中密钥值应该是随机的,比如密钥值“C7261A9BB75FE33A0691215E62254B0D”就是一个随机的,但比如密钥值是“111111111111111111111111111111”或“12345678ABCDEFGH12345678ABCDEFGH”等这种数据,就不具有随机性,如果使用的密钥值不具有随机数,则判定为中风险。同理,在CBC加密算法中初始向量应该是随机的,比如密钥值“C7261A9BB75FE33A0691215E62254B0D”就是一个随机的,但比如初始向量是“111111111111111111111111111111”或“12345678ABCDEFGH12345678ABCDEFGH”等这种,就不具有随机性,如果使用的初始向量不具有随机数,则判定为中风险。
[0056] 在本实施例中,可选地,所述对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果,包括:
[0057] 第一,判断写入所述目标文件中的所述目标测评数据对应的所述目标密码算法是否为目标非对称算法。
[0058] 其中,非对称加密算法是一种密钥的保密方法。非对称加密是指加密和解密使用不同密钥的加密算法,也称为公私钥加密。非对称密钥是用两个数学相关的密钥对信息进行编码,其中一个密钥叫公开密钥,可随意发给期望同密钥持有者进行安全通信的人,公开密钥用于对信息加密;第二个密钥是私有密钥,属于密钥持有者,密钥持有者用私有密钥对收到的信息进行解密。
[0059] 第二,若所述目标密码算法为所述目标非对称算法,则判断所述目标非对称算法对应的类别是否为RSA算法或SM2算法。其中,所述目标非对称算法包括RSA算法和SM2算法。
[0060] 第三,若所述目标非对称算法对应的类别为RSA算法,则进一步判断RSA算法的长度是否小于2048bit。
[0061] 第四,若RSA算法的长度小于2048bit,则将所述目标密码算法对应的风险等级测评为高风险等级,并将高风险等级作为所述目标密码算法对应的所述目标密码算法测评结果。
[0062] 第五,若RSA算法的长度是否大于或等于2048bit,则将所述目标密码算法对应的风险等级测评为零风险等级,并将零风险等级作为所述目标密码算法对应的所述目标密码算法测评结果。
[0063] 其中,所述风险等级包括高风险等级、中风险等级和零风险等级,且高风险等级对应的风险程度大于中风险等级对应的风险程度,零风险等级对应的风险程度为零。其中,高风险等级、中风险等级和零风险等级的判定根据国标和经验阈值来进行。
[0064] 在本实施例中,可选地,所述判断所述目标非对称算法对应的类别是否为RSA算法或SM2算法,之后包括:
[0065] 第一,若所述目标非对称算法对应的类别为SM2算法,则判断写入所述目标文件中的所述目标测评数据中所包含的目标密钥值是否为随机值。
[0066] 第二,若所述目标密钥值为随机值,则将所述目标密码算法对应的风险等级测评为零风险等级,并将零风险等级作为所述目标密码算法对应的所述目标密码算法测评结果。
[0067] 第三,若所述目标密钥值不是随机值,则将所述目标密码算法对应的风险等级测评为中风险等级,并将中风险等级作为所述目标密码算法对应的所述目标密码算法测评结果。
[0068] 其中,非对称算法的SM2加密算法涉及到密钥和明文数据几个输入,输出为密文数据,在非对称加密算法中密钥值应该是随机的,比如密钥值“CA7499D14F74672A932F866CDA1B0CA5068800B8CF0E4B29BE”就是一个随机的数据,但比如密钥值是“11111111111111111111111111111111111111”或“12345678ABCDEFGH12345678ABCDEFGH12345678ABCDEFGH”等这种数据,就不具有随机性,如果使用的密钥值不具有随机数,则判定为中风险。
[0069] 请参阅图2,结合图2可以得到,本发明实施例的一种安卓系统应用程序的密码算法测评装置100,其包括:
[0070] 算法获取模块10,用于使用目标框架服务获取安卓系统的目标应用程序对应的目标密码算法,其中在安卓系统预先安装了所述目标框架服务,且所述目标框架服务可在不修改安卓系统安装包文件的情况下影响程序运行;
[0071] 数据获取模块20,用于使用目标钩子获取所述目标密码算法对应的目标测评数据,并将所述目标测评数据写入目标文件中,其中所述目标钩子可截获或监控传输过程中的数据,且不同的所述目标密码算法对应的所述目标测评数据不同;
[0072] 风险测评模块30,用于对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果。
[0073] 图3示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是终端,也可以是服务器。如图3所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现上述的安卓系统应用程序的密码算法测评方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行上述的安卓系统应用程序的密码算法测评方法。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0074] 在另一个实施例中,提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
[0075] 使用目标框架服务获取安卓系统的目标应用程序对应的目标密码算法,其中在安卓系统预先安装了所述目标框架服务,且所述目标框架服务可在不修改安卓系统安装包文件的情况下影响程序运行;使用目标钩子获取所述目标密码算法对应的目标测评数据,并将所述目标测评数据写入目标文件中,其中所述目标钩子可截获或监控传输过程中的数据,且不同的所述目标密码算法对应的所述目标测评数据不同;对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果。
[0076] 在另一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
[0077] 使用目标框架服务获取安卓系统的目标应用程序对应的目标密码算法,其中在安卓系统预先安装了所述目标框架服务,且所述目标框架服务可在不修改安卓系统安装包文件的情况下影响程序运行;使用目标钩子获取所述目标密码算法对应的目标测评数据,并将所述目标测评数据写入目标文件中,其中所述目标钩子可截获或监控传输过程中的数据,且不同的所述目标密码算法对应的所述目标测评数据不同;对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果。
[0078] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0079] 本发明实施例首先通过使用目标框架服务获取安卓系统的目标应用程序对应的目标密码算法,然后使用目标钩子获取所述目标密码算法对应的目标测评数据,并将所述目标测评数据写入目标文件中,最后对写入所述目标文件中的所述目标测评数据对应的风险等级进行测评,得到所述目标密码算法对应的目标密码算法测评结果,可避免开发者在使用密码技术对数据加密后的存储或传输中产生安全漏洞,使开发者可以正确的运用密码技术对数据进行加密。
[0080] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0081] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。