在 OWASP Top 10:2025 里,Cryptographic Failures 排在 A04,也就是第 4 位。它从 2021 年的第 2 位下降到了第 4 位,但这不代表它不重要,而是说明其它系统性风险上升得更快。它关注的不是单纯“有没有加密”,而是更完整的一组问题:没加密、加密不够强、密钥管理差、随机数弱、证书校验错、模式用错、散列算法过时,都会落在这个类别里。
来源:OWASP Top 10:2025 Introduction
来源:A04:2025 Cryptographic Failures
你可以把它理解成:
以前大家常说“敏感信息泄露”,现在 OWASP 更愿意追问根因。很多泄露并不是“数据自己跑了”,而是因为系统在传输、存储、认证、密钥或随机数上根本没做对。
官方数据里的信号
OWASP 页面显示,这一类问题在 2025 覆盖 32 个 CWE,平均发生率约 3.80%。官方特别提到,这类风险常见根因包括:使用弱伪随机数、熵不足、可预测随机数算法、危险加密算法等。
常见表现
- 敏感数据传输时没有强制 TLS。
- 静态存储的敏感数据没有加密。
- 继续使用过时算法或弱哈希,例如 MD5、SHA1。
- 默认密钥、硬编码密钥、弱密钥、重复使用密钥。
- 密钥直接提交到代码仓库。
- 证书链、主机名校验不正确。
- IV 被复用、忽略或生成方式不安全。
- 使用 ECB、CBC 等不合适模式,却没有使用认证加密。
- 把密码直接当作密钥,却没有经过安全的密钥派生函数。
- 把本应使用加密随机数的场景,交给普通随机函数处理。
OWASP 官方典型场景
- 网站没有强制 HTTPS,或者仍然允许弱加密。攻击者在不安全网络里做中间人攻击,窃取会话 Cookie,直接接管用户会话。
- 密码库使用无盐哈希或简单快速哈希。攻击者拿到密码库后,用彩虹表或 GPU 很快就能批量恢复密码。
怎么防
- 先做数据分级,明确哪些数据是敏感数据,哪些需要更高等级保护。
- 对敏感数据做到“传输中加密 + 静态存储加密”。
- 尽量使用成熟、可信的加密库和平台能力,不要自己实现密码学。
- 强密钥放在 HSM 或云 KMS 中管理,并建立轮换策略。
- 只允许 TLS 1.2 及以上版本,启用 HSTS,禁用过时套件。
- 优先使用认证加密,而不是“只加密不认证”。
- IV、Nonce、随机数都要按算法要求安全生成,且不要重复使用。
- 密码存储使用现代密码哈希方案,如 Argon2、scrypt、PBKDF2。
- 不要缓存含敏感数据的响应,避免 CDN、Web 服务器或应用层缓存误存。
- 定期让安全人员或自动化工具检查加密配置是否符合基线。
一句话总结
Cryptographic Failures 的本质是:系统本来该靠加密保护的数据、凭证和信任关系,没有被正确地加密、验证和管理。