MASTG-TEST-0221: 损坏的对称加密算法
概述¶
要测试 Android 应用中有缺陷的加密算法的使用情况,我们需要关注加密框架和库中用于执行加密和解密操作的方法。
Cipher.getInstance
:初始化用于加密或解密的 Cipher 对象。algorithm
参数可以是支持的算法之一。SecretKeyFactory.getInstance
:返回一个 SecretKeyFactory 对象,该对象将密钥转换为密钥规范,反之亦然。algorithm
参数可以是支持的算法之一。KeyGenerator.getInstance
:返回一个KeyGenerator
对象,该对象为对称算法生成密钥。algorithm
参数可以是支持的算法之一。
一些有缺陷的对称加密算法包括:
- DES (数据加密标准):56 位密钥,可破解,NIST 于 2005 年撤回。
- 3DES(三重 DES,正式名称为三重数据加密算法 (TDEA 或三重 DEA)):64 位块大小,易受 Sweet32 生日攻击,NIST 于 2024 年 1 月 1 日撤回。
- RC4:可预测的密钥流,允许明文恢复 RC4 弱点,NIST 于 2014 年不赞成使用,IETF 于 2015 年禁止使用。
- Blowfish:64 位块大小,易受 Sweet32 攻击,从未获得 FIPS 批准,并在 FIPS 中的“未批准的算法”下列出。
Android 还提供了关于有缺陷的加密算法的附加指南。
步骤¶
- 使用诸如 semgrep 的工具,对应用二进制文件运行 _ Android 静态分析_,或者使用类似 _ Android Frida 的工具,运行 _ 方法追踪_ (动态分析),并查找执行加密和解密操作的加密函数的使用情况。
观察¶
输出应包含使用不安全的对称加密算法的位置列表。
评估¶
如果发现正在使用不安全或已弃用的加密算法,则测试用例失败。