对应用程序进行密码学审计
概述
密码学审计(Cryptographic Audit)系统性地审查应用程序对密码学原语(cryptographic primitives)、协议和密钥管理的使用,以识别弱算法、不安全模式、硬编码密钥、熵(entropy)不足和协议配置错误等漏洞。本技能涵盖构建自动化密码学审计工具,扫描 Python 和配置文件中的常见密码学弱点。
目标
- 检测已弃用算法的使用(MD5、SHA-1、DES、RC4)
- 识别不安全密码模式(ECB)和填充方案
- 在源代码中查找硬编码密钥、密码和机密
- 验证 TLS/SSL 配置强度
- 检查密钥派生函数参数
- 验证随机数生成器的使用
- 生成包含发现和修复建议的结构化审计报告
核心概念
密码学弱点类别
| 类别 | 示例 | 风险级别 |
|---|---|---|
| 弱哈希 | 用于完整性/签名的 MD5、SHA-1 | 高 |
| 不安全加密 | DES、3DES、RC4、Blowfish | 高 |
| 错误密码模式 | 任何分组密码的 ECB 模式 | 高 |
| 密钥长度不足 | RSA < 2048,长期使用 AES-128 | 中 |
| 硬编码机密 | 源代码中的密钥/密码 | 严重 |
| 弱密钥派生函数 | 低迭代次数 PBKDF2,纯 MD5 | 高 |
| 熵不足 | 基于时间的种子,可预测 IV | 高 |
| 已弃用协议 | SSLv3、TLS 1.0、TLS 1.1 | 高 |
安全注意事项
- 审查应用程序代码和配置文件
- 检查第三方依赖项中已知的密码学漏洞
- 在已部署的服务器上验证证书和 TLS 配置
- 确保机密从环境变量或密钥库加载
- 审查密钥存储和轮换实践
验证标准
- 扫描器检测到所有注入的测试弱点
- 用于安全目的的 MD5/SHA-1 使用被标记
- ECB 模式使用被标记
- 硬编码密钥/密码被检测到
- 弱密钥派生函数参数被识别
- 报告包含严重性、位置和修复建议
- 误报率低于 10%