MASTG-TEST-0208: 密钥大小不足
概述¶
在此测试用例中,我们将查找 Android 应用中使用不足密钥长度的情况。为此,我们需要关注 Android 中可用的加密框架和库,以及用于生成、检查和管理加密密钥的方法。
Java 加密体系结构 (JCA) 提供了密钥生成的基础类,当需要与旧系统兼容或关注可移植性时,通常会直接使用这些类。
KeyGenerator
:KeyGenerator
类用于生成对称密钥,包括 AES、DES、ChaCha20 或 Blowfish,以及各种 HMAC 密钥。可以使用init(int keysize)
方法指定密钥大小。KeyPairGenerator
:KeyPairGenerator
类用于为非对称加密(例如,RSA、EC)生成密钥对。可以使用initialize(int keysize)
方法指定密钥大小。
有关更多信息,您可以查阅关于 “密钥生成”的 MASTG 部分。
步骤¶
- 在代码上运行静态分析工具,例如 semgrep,并查找生成密钥的加密函数的使用。
观察¶
输出应包含使用不足密钥长度的位置列表。
评估¶
如果在源代码中发现使用了不足的密钥长度,则测试用例失败。例如,考虑到量子计算攻击,1024 位密钥大小被认为不足以用于 RSA 加密,128 位密钥大小被认为不足以用于 AES 加密。