跳过内容

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 部分。

步骤

  1. 在代码上运行静态分析工具,例如 semgrep,并查找生成密钥的加密函数的使用。

观察

输出应包含使用不足密钥长度的位置列表。

评估

如果在源代码中发现使用了不足的密钥长度,则测试用例失败。例如,考虑到量子计算攻击,1024 位密钥大小被认为不足以用于 RSA 加密,128 位密钥大小被认为不足以用于 AES 加密。

演示

MASTG-DEMO-0012:使用不足密钥长度的加密密钥生成