应用安全【免费下载链接】Top10Official OWASP Top 10 Document Repository项目地址https://gitcode.com/gh_mirrors/top/Top10点击查看免费下载导读本文基于 OWASP Top10 官方文档仓库中的 A02:2021 – Kegagalan KriptografiCryptographic Failures 原文及其英文母版 A02_2021-Cryptographic_Failures.md系统讲解 2021 版排名第 2 的「加密机制失效」风险它为何从 2017 年的「敏感数据泄漏Sensitive Data Exposure」改名聚焦于根因官方风险因素表中的各项数据如何解读如何用一份自查清单评估应用是否脆弱以及按官方「How to Prevent」基线落地数据分类、传输/静态加密、密钥管理、口令哈希等防护措施。读完本文你将掌握 OWASP 2021 对加密失效类问题的完整风险模型、检测要点与 29 个映射 CWE 的排查方向可直接用于安全评审、渗透测试与修复方案设计。概述从「症状」到「根因」的分类变迁在 OWASP Top 10 2021 中A02:2021 – Cryptographic Failures 较 2017 年上升一位至第 2 名。它此前的名称是 A3:2017 – Sensitive Data Exposure敏感数据泄漏官方在 2021 版引言 与本文档中明确指出Sensitive Data Exposure更多是一种宽泛的「症状symptom」而非「根因root cause」而 2021 版刻意将分类聚焦于与密码学相关的失效或加密缺失本身因为正是这些根因导致敏感数据被暴露。这一改名延续了 2021 版整体的分类哲学尽可能按根因而非症状归类 CWE以便给出更符合逻辑的识别与修复指引。仓库 2017 年版的对应文档 0xa3-sensitive-data-disclosure.md 仍保留了旧分类的完整描述可以对照查看两年的口径差异。该类别最典型的 CWE 包括CWE-259: Use of Hard-coded Password硬编码口令的使用CWE-327: Broken or Risky Crypto Algorithm破损或有风险的加密算法CWE-331: Insufficient Entropy熵不足风险因素数据表官方文档给出的 A02:2021 数据因素如下来自 2017 年起各组织贡献的 50 万 应用测试数据CWEs 映射数最大发生率平均发生率最大覆盖率平均覆盖率平均加权可利用性平均加权影响总出现次数总 CVEs2946.44%4.49%79.33%34.85%7.296.81233,7883,075各项指标的含义依据 2021 版引言 的 Data Factors 说明CWEs Mapped映射 CWE 数Top 10 团队映射到该分类的 CWE 数量本分类为 29 个。Incidence Rate发生率在当年被测试的应用总体中存在至少一个该 CWE 实例的应用占比。A02 的平均发生率为 4.49%最大达到 46.44%。Coverage测试覆盖率所有组织对某一 CWE 实际执行过测试的应用比例本分类平均 34.85%、最大 79.33%。Weighted Exploit / Weighted Impact加权可利用性 / 加权影响由映射到这些 CWE 的 CVE 的 CVSSv2/CVSSv3 子分数归一化到 10 分制后加权平均得到A02 分别为 7.29 与 6.81——在 Top 10 中属于可利用性高、影响重的组合。Total Occurrences / Total CVEs累计 233,788 次出现、3,075 个相关 CVE。一个值得注意的统计口径2021 版使用发生率而非频次来合并工具Tooling、人辅工具HaT与人测工具TaH三类数据避免高频漏洞如 XSS淹没真实风险分布。攻击者只需一个可利用实例即可攻破应用因此发生率视角更贴近风险。描述第一步是确定数据的保护需求官方文档强调评估 A02 的第一步是确定**传输中in transit与静态at rest**数据的保护需求。需要额外保护的数据包括口令、信用卡卡号、健康记录、个人信息、商业秘密等尤其当其受隐私法律如欧盟 GDPR或行业法规如支付卡行业数据安全标准 PCI DSS约束时。针对所有此类数据应按以下清单逐一核查英文母版文档比印尼语版列出了更完整的检查项此处合并呈现是否有数据以明文传输涉及 HTTP、SMTP、FTP 等协议含 STARTTLS 之类的 TLS 升级路径。外部互联网流量尤其危险但必须同样验证所有内部流量例如负载均衡器、Web 服务器、后端系统之间的链路。是否默认或在旧代码中使用了老旧或脆弱的密码算法/协议是否在使用默认加密密钥、生成了弱密钥或重复使用密钥、缺乏密钥管理与轮换加密密钥是否被提交进了源代码仓库是否未强制实施加密例如浏览器安全指令或 HTTP 头缺失。是否对收到的服务器证书与信任链进行了正确校验初始化向量IV是否被忽略、重用或未按加密工作模式生成足够安全是否使用了不安全的 ECB 模式在应使用认证加密authenticated encryption的场合是否只用了普通加密是否在没有基于口令的密钥派生函数PBKDF的情况下把口令直接当密钥使用用于密码学目的的随机性是否并非为满足密码学要求而设计即使选对了函数是否需要开发者自行播种seed若无需播种开发者是否用熵不足/可预测的种子覆盖了内置的强播种功能是否在使用 MD5、SHA1 等已废弃哈希函数或在需要密码学哈希函数时误用了非密码学哈希是否在使用 PKCS #1 v1.5 等已废弃的填充方案密码学错误信息或侧信道信息是否可利用例如填充预言padding oracle攻击。官方文档同时建议对照 OWASP ASVS应用安全验证标准的加密V7、数据保护V9与 SSL/TLSV10章节做交叉验证。仓库 2017 年版文档 0xa3-sensitive-data-disclosure.md 中对应章节可作为延续参考而 2025 版 A04_2025-Cryptographic_Failures.md 将对应 ASVS 章节升级为 V11密码学、V12安全通信与 V14数据保护可见该检查体系的演进脉络。如何预防官方基线防护清单官方给出的最小防护要求How to Prevent是安全评审时应逐条核对的核心基线对应用处理、存储或传输的数据进行分类依据隐私法律、监管要求或业务需求识别敏感数据。按数据分类落实对应的安全控制Apply required security controls as per the data classification。不无谓存储敏感数据尽快丢弃或使用符合 PCI DSS 的 tokenization令牌化甚至截断truncation。没有被保存的数据不会被窃取。确保所有静态敏感数据均已加密encrypt at rest。确保使用最新且强健的标准算法、协议与密钥并采用恰当的密钥管理。使用安全协议加密所有传输中数据例如带前向保密forward secrecy / PFS密码套件、由服务器主导密码套件优先级cipher prioritization by the server、安全参数的 TLS并通过 HTTP Strict Transport SecurityHSTS等指令强制启用加密。对包含敏感数据的响应禁用缓存。不使用 FTP、SMTP 等遗留协议传输敏感数据英文母版新增项。口令存储使用强自适应加盐哈希函数并设置工作因子work factor / delay factor如Argon2、scrypt、bcrypt 或 PBKDF2。IV 必须适配加密工作模式多数模式要求使用 CSPRNG密码学安全伪随机数生成器生成需要 nonce 的模式则不必使用 CSPRNG。任何情况下固定密钥下 IV 绝不重复使用英文母版新增项。始终优先使用认证加密authenticated encryption而非仅加密英文母版新增项。密钥应以密码学随机方式生成并在内存中以字节数组形式保存若使用口令则必须经恰当的基于口令的密钥派生函数转换为密钥英文母版新增项。确保在适当场合使用密码学随机性且不以可预测方式或低熵种子播种现代多数 API 无需开发者手动播种 CSPRNG 即可获得安全性英文母版新增项。避免使用已废弃的密码函数与填充方案如 MD5、SHA1、PKCS #1 v1.5英文母版新增项。独立验证配置与设置的有效性Verify independently the effectiveness of configuration and settings。2025 版文档在此基础上还补充了「将最敏感的密钥存放于硬件或云端 HSM」「尽量采用被广泛信赖的密码实现」「仅使用 TLS 1.2、放弃 CBC 密码套件、用工具全面核查」等演进建议可作为后续版本差异的观察点。实战落地要点从清单到代码清单中的多项内容直接对应具体工程实践例如口令存储优先选用 Argon2id高内存/时间成本参数或 scrypt、bcryptwork factor 通常取 10–12、PBKDF2迭代次数应足够高如 600k 次 SHA-256。选择依据是 CWE-916: Use of Password Hash With Insufficient Computational Effort 所指——计算成本不足的哈希极易被 GPU 暴力破解。传输安全启用 HSTS 响应头并配置足够长的 max-age配合证书透明、正确校验证书链对应 CWE-296避免算法降级对应 CWE-757。静态加密使用 AEAD 类算法如 AES-GCM、ChaCha20-Poly1305避免 ECB对应 CWE-329 的 CBC IV 问题、CWE-780 的 RSA 无 OAEP 问题。随机性统一使用语言运行时的 CSPRNG如 Java 的SecureRandom、Python 的secrets、Node.js 的crypto.randomBytes不要自造 PRNG 或用手工 seed 覆盖内置强播种对应 CWE-330/331/335/336/337/338。攻击场景示例官方文档给出了三个典型攻击场景说明该分类的实际危害路径场景 #1数据库自动加密形同虚设。应用使用数据库自动加密存储信用卡卡号但数据在检索时被自动解密导致一次 SQL 注入漏洞即可直接取回明文卡号。要点静态加密必须覆盖「被检索后的处理路径」仅靠数据库层透明加密不足以形成端到端保护。场景 #2TLS 缺失/弱化导致会话劫持。站点未对所有页面强制 TLS 或支持弱加密。攻击者在不安全无线网络监听流量将连接从 HTTPS 降级为 HTTP截获请求并窃取用户会话 Cookie随后重放 Cookie 劫持已认证会话读取或篡改用户隐私数据亦可篡改传输数据例如篡改转账收款人。要点明文传输与协议降级是传输层最常见的突破口对应 CWE-319、CWE-757、CWE-523。场景 #3口令哈希无盐或使用简单哈希。口令数据库以无盐或简单哈希存储口令一个文件上传漏洞使攻击者拿到整个口令库。所有无盐哈希可被预计算彩虹表直接命中即便加了盐由简单或快速哈希如 MD5、SHA1、快速哈希生成的哈希仍可被 GPU 暴力破解。要点必须使用带工作因子的自适应慢哈希对应 CWE-759、CWE-916。映射的 CWE 清单29 个该分类共映射 29 个 CWE是排查与修复时的重要索引列表源自印尼语/英文母版文档编号名称CWE-261Weak Encoding for Password口令弱编码CWE-296Improper Following of a Certificates Chain of Trust未正确遵循证书信任链CWE-310Cryptographic Issues密码学问题CWE-319Cleartext Transmission of Sensitive Information敏感信息明文传输CWE-321Use of Hard-coded Cryptographic Key硬编码密钥CWE-322Key Exchange without Entity Authentication无实体认证的密钥交换CWE-323Reusing a Nonce, Key Pair in Encryption重用 nonce/密钥对CWE-324Use of a Key Past its Expiration Date使用过期密钥CWE-325Missing Required Cryptographic Step缺少必要密码学步骤CWE-326Inadequate Encryption Strength加密强度不足CWE-327Use of a Broken or Risky Cryptographic Algorithm使用破损/风险算法CWE-328Reversible One-Way Hash可逆单向哈希CWE-329Not Using a Random IV with CBC ModeCBC 模式未用随机 IVCWE-330Use of Insufficiently Random Values随机值不足CWE-331Insufficient Entropy熵不足CWE-335Incorrect Usage of Seeds in PRNGPRNG 播种使用错误CWE-336Same Seed in PRNGPRNG 使用相同种子CWE-337Predictable Seed in PRNGPRNG 种子可预测CWE-338Use of Cryptographically Weak PRNG弱密码学 PRNGCWE-340Generation of Predictable Numbers or Identifiers可预测数字/标识符CWE-347Improper Verification of Cryptographic Signature密码签名验证不当CWE-523Unprotected Transport of Credentials凭证传输未保护CWE-720OWASP Top Ten 2007 Category A9 - Insecure Communications不安全通信CWE-757Selection of Less-Secure Algorithm During Negotiation协商中选取弱算法/算法降级CWE-759Use of a One-Way Hash without a Salt无盐单向哈希CWE-760Use of a One-Way Hash with a Predictable Salt可预测盐的单向哈希CWE-780Use of RSA Algorithm without OAEPRSA 未使用 OAEP 填充CWE-818Insufficient Transport Layer Protection传输层保护不足CWE-916Use of Password Hash With Insufficient Computational Effort口令哈希计算成本不足与 2017 版及后续版本的对照2017 版A3:2017 Sensitive Data Exposure仓库中的 0xa3-sensitive-data-disclosure.md 展示了旧版的风险矩阵与检查清单。对比可见2021 版主要变化有三一是分类更名、聚焦密码学根因二是检查清单大幅扩充新增 IV/nonce 使用、口令派生函数、密码学随机性、认证加密、废弃填充方案、侧信道/填充预言等条目三是防护清单新增了禁用遗留协议、认证加密优先、密钥字节数组存储、IV 不重用等硬性要求。2025 版A04:2025 Cryptographic Failures仓库中的 A04_2025-Cryptographic_Failures.md 显示该分类在 2025 版降至第 4 位映射 CWE 增至 32 个并新增了 HSM 存储密钥、仅 TLS 1.2、PQC后量子密码迁移准备等建议可帮助读者理解该主题的持续演进方向。仓库资源与进一步阅读本文主题对应 OWASP Top10 官方文档仓库以下是可直接查阅的原始材料本文档母版A02_2021-Cryptographic_Failures.md英文信息最完整繁体中文版A02_2021-Cryptographic_Failures.md印尼语版任务关联文档2021/docs/id/A02_2021-Cryptographic_Failures.md2021 版整体方法论与数据因素说明A00_2021_Introduction.md、index.md2017 版旧分类对照0xa3-sensitive-data-disclosure.md2025 版后续演进A04_2025-Cryptographic_Failures.md数据收集与 CWE 映射辅助材料2021/Data/README.md、CWE-Guidance.md文档构建配置多语言 i18n 与导航2021/mkdocs.yml、2021/README.md官方在文档末尾给出的参考资料还包括 OWASP Proactive ControlsProtect Data Everywhere、ASVS V7/V9/V10、Transport Layer Protection / User Privacy Protection / Password Storage / Cryptographic Storage / HSTS 等 Cheat Sheet以及 Testing Guide 中关于弱密码学测试的章节——这些均可在 owasp.org 与 cheatsheetseries.owasp.org 检索获取用于在落地时逐项深挖。结语A02:2021 – Cryptographic Failures 的核心教训在于敏感数据暴露几乎总是密码学使用不当的「果」而非独立的「因」。从明文传输、弱算法、默认/复用密钥、无盐快哈希到 IV 重用、错误随机性、废弃填充方案29 个映射 CWE 勾勒出一份完整的技术排查地图。将本文的检查清单与防护基线数据分类、传输/静态加密、密钥管理、口令自适应哈希、认证加密、CSPRNG嵌入日常安全评审与代码审查流程即可系统性地降低此类风险。赞分享应用安全【免费下载链接】Top10Official OWASP Top 10 Document Repository项目地址https://gitcode.com/gh_mirrors/top/Top10点击查看免费下载相关推荐OWASP Top 10 2021 权威解读A02 加密机制失效Cryptographic Failures风险全析与防御实战OWASP Top 10 2021 权威解读A02 加密机制失效Cryptographic Failures风险全析与防御实战 本文基于官方开源仓库 OW应用安全OWASP Top 10 2021 A02:2021 密码学失效Cryptographic Failures从风险因子、自查清单到攻击场景的完整指南OWASP Top 10 2021 A02:2021 密码学失效Cryptographic Failures从风险因子、自查清单到攻击场景的完整指南 本文应用安全OWASP Top 10:2021 A02 加密机制失效Cryptographic Failures数据保护需求、自检清单与完整 CWE 映射OWASP Top 10:2021 A02 加密机制失效Cryptographic Failures数据保护需求、自检清单与完整 CWE 映射 本文基于应用安全创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考