MASTG-TEST-0210: 损坏的对称加密算法
概述¶
要测试 iOS 应用中是否存在有缺陷的加密算法,我们需要关注密码学框架和库中用于执行加密和解密操作的方法。
-
CommonCrypto:
CCCrypt
函数用于对称算法,并在其第二个参数alg
中指定算法。 这包括kCCAlgorithmAES128
kCCAlgorithmDES
kCCAlgorithm3DES
kCCAlgorithmCAST
kCCAlgorithmRC4
kCCAlgorithmRC2
-
CryptoKit:此库不支持有缺陷的加密算法。 它支持以下对称算法
AES.GCM
ChaChaPoly
注意:Security 框架仅支持非对称算法,因此不在此测试范围内(参见关于对称密钥的说明)。
步骤¶
- 在应用二进制文件上运行静态分析工具,例如 radare2 for iOS,或使用动态分析工具,例如 Frida for iOS,并查找使用执行加密和解密操作的密码学函数的情况。
观察¶
输出应包含使用相关密码学函数的函数的反汇编代码。
评估¶
如果在源代码中发现使用了有缺陷的加密算法,则测试用例失败。 例如
- DES
- 3DES
- RC2
- RC4
及时更新:这是一个不完整的有缺陷算法列表。 请务必查看国家标准与技术研究院 (NIST)、德国联邦信息安全办公室 (BSI) 或您所在地区的任何其他相关机构的最新标准和建议。
某些算法可能不会被视为整体存在缺陷,但可能存在有风险的配置,应避免使用。 例如,使用非密码安全伪随机数生成器 (CSPRNG) 生成的种子或 IV,或者不被认为是量子安全的。 例如,在面对量子计算攻击时,AES 128 位密钥大小是不够的。 在构建使用将长期存储的数据的应用程序时,这一点非常重要。 确保您遵循 NIST 在NIST IR 8547 “Transition to Post-Quantum Cryptography Standards”, 2024中的建议。
上下文考虑:
为了减少误报,在将相关代码报告为不安全之前,请确保您了解算法使用的上下文。 确保它在与安全相关的上下文中用于保护敏感数据。