MASTG-TEST-0209: 密钥大小不足
概述¶
在此测试用例中,我们将查找 iOS 应用中使用不足密钥长度的情况。为此,我们需要重点关注 iOS 中可用的加密框架和库,以及用于生成加密密钥的方法。
- CommonCrypto:
CCCrypt
函数用于对称加密和解密,并在其第五个参数keyLength
中指定密钥大小或密钥长度。 - Security:
SecKeyCreateRandomKey
函数用于使用某些属性(包括kSecAttrKeyType
和kSecAttrKeySizeInBits
)生成随机密钥。SecKeyGeneratePair
函数在 iOS 16 中已弃用。 - CryptoKit:
AES.GCM
和ChaChaPoly
类用于对称加密和解密。
由于您通常不会在 CryptoKit 中直接生成密钥(该库会自动为您生成),因此我们将在此测试中重点关注 CommonCrypto 和 Security 库。
步骤¶
- 在应用二进制文件上运行静态分析工具,例如 radare2 for iOS,或使用动态分析工具,例如 Frida for iOS,并查找生成密钥的加密函数的使用情况。
观察¶
输出应包含使用 CCCrypt
或其他加密函数的函数的反汇编代码。
评估¶
如果在源代码中发现使用了不足的密钥长度,则测试用例失败。例如,考虑到量子计算攻击,1024 位密钥长度被认为对于 RSA 加密是不够的,而 128 位密钥长度对于 AES 加密是不够的。