首页 / 资讯中心 / 文章详情

OWASP Top 10:2025 A04 加密机制失效(Cryptographic Failures)全面解读:从统计评分到密钥管理、密码哈希与 PQC 的纵深防御实践

OWASP Top 10:2025 A04 加密机制失效(Cryptographic Failures)全面解读:从统计评分到密钥管理、密码哈希与 PQC 的纵深防御实践 ★ FEATURED ARTICLE
应用安全【免费下载链接】Top10Official OWASP Top 10 Document Repository项目地址https://gitcode.com/gh_mirrors/top/Top10点击查看免费下载导读本文以 OWASP Top 10 官方仓库中 A04:2025 Cryptographic Failures意大利语版 为骨架系统拆解这一排第 4 位的高危类别它覆盖了没有加密、加密强度不足、密钥泄露三类典型失效以及与之伴生的弱伪随机数生成器PRNG问题。你将获得一份可直接落地的自查清单与预防措施全集——从传输层 TLS 1.2 与 HSTS 强制加密到静态数据的密钥托管、IV/nonce 使用规范、密码自适应哈希选型再到面向 2030 年的后量子密码PQC迁移准备。文中数据表、评分口径与官方英文、中文版本均可从仓库原文逐一核对便于工程团队按图索骥建立基线。一、背景从第 2 名滑落到第 4 名风险依然致命A04:2025 在最新一届榜单中较 2021 版下降两位2021 版为 A02但这绝不意味着威胁减弱。该类别聚焦于三类根因型失败缺乏加密敏感数据在传输或存储时以明文形式存在加密强度不足使用了过时、被破解或配置不当的算法密钥泄露与相关错误密钥被硬编码、复用、疏于轮换或管理失当。值得注意的是本类别中最常见的几个 CWE 都与弱伪随机数生成器直接相关官方文档点名了 4 个CWE-327使用已破解或有风险的加密算法CWE-331熵不足CWE-1241随机数生成器中使用可预测算法CWE-338使用加密强度不足的伪随机数生成器PRNG。这四条 CWE 全部围绕随机性展开揭示了一个容易被忽视的事实即便算法本身正确只要密钥、IV、盐或 nonce 的随机源可被预测整套密码体系就会被击穿。从 2021 到 2025 的类别演变可以在 2025 版引言文档 中找到官方说明其中明确写道A04:2025 从 #2 降至 #4数据显示平均 3.80% 的被测应用存在该类别 32 个 CWE 中的一个或多个该类别常常导致敏感数据暴露或系统沦陷。 2021 版对应的 A02:2021 Cryptographic Failures 英文原文 也记录了本次改名思路——旧名Sensitive Data Exposure是症状而 Cryptographic Failures 才是根因OWASP 团队在 2025 版中明确倾向于按根因归类。二、数据评分32 个 CWE、166 万次发生背后的统计口径官方文档给出了完整的评分表这一份数据是理解该风险量级的关键证据指标数值映射的 CWE 数量32最大发生率13.77%平均发生率3.80%最大覆盖率100.00%平均覆盖率47.74%平均加权可利用性7.23平均加权影响3.90发生总数1,665,348CVE 总数2,185要正确解读这些数字需要先弄清 应用安全风险与评分方法论 中定义的术语口径发生率Incidence Rate某一组织在某一年度测试的应用人群中存在对应 CWE 的应用占比。2025 版刻意不使用频次即一个应用里出现多少次因为手动测试往往一个漏洞只记一次而自动化工具会逐条计数频次会严重扭曲人群层面的真实流行度加权可利用性 / 加权影响Weighted Exploit / Impact取自 NVD 中与这些 CWE 关联的 CVE 的 CVSSv2/v3 子分数归一化到 10 分制测试覆盖率Coverage所有组织对某一 CWE 测试过的应用占比覆盖率越高发生率估计的置信度越高发生总数 / CVE 总数分别是在被测应用群体中命中该类别 CWE 的应用总数以及 NVD 中映射到这些 CWE 的 CVE 总数。官方排名公式为(Max Incidence Rate % × 1000) (Max Coverage % × 100) (Avg Exploit × 10) (Avg Impact × 20) (Sum Occurrences / 10000) Risk Score从数据源看2025 版分析了约 175,000 条 CVE 到 CWE 的映射记录2021 版为 125,000涉及 643 个唯一 CWE近 220,000 条被提取的 CVE 中160k 有 CVSSv2 分、156k 有 CVSSv3 分、6k 有 CVSSv4 分同一 CVE 可有多套分数。由于 CVSSv4 的算法被根本性重写、不再直接给出独立的 Exploit/Impact 子分数2025 版仍沿用 v2/v3 加权平均方案。具体的数据征集流程与字段定义可查阅 2025 数据收集说明 及仓库中的 示例数据 CSV含 NumberofAppsTested、CWE、TimePeriod、TypeofTesting、PrimaryLanguage、Region、Industry、Retest 等字段与 示例数据 JSON。三、风险描述两条防线上的加密缺口3.1 传输层与应用层加密的双重战场官方描述首先给出一个总体原则所有传输中的数据都应在传输层OSI 第 4 层加密。过去阻碍全站加密的两大障碍——CPU 性能与私钥/证书管理——如今已被技术演进大幅消解现代 CPU 内置了为加速加密设计的指令如 AES 指令集 AES-NILets Encrypt 等免费证书服务大幅简化了私钥/证书的获取与续期主流云厂商提供与自家平台深度集成的证书管理服务。但传输层加密并不足够。还需要进一步判断哪些数据需要静态加密at rest哪些数据需要在**应用层OSI 第 7 层**再做一层额外加密。密码、信用卡号、健康记录、个人信息、商业秘密都属于需要额外保护的类别尤其是当数据落入 GDPR欧盟通用数据保护条例、PCI DSS支付卡行业数据安全标准等法规的管辖范围时。3.2 11 条自测清单逐条排查加密失效对上述所有数据官方文档给出了 11 条自查问题可直接作为安全评审的检查项是否在默认配置或旧代码中使用了过时或弱加密算法/协议是否在使用默认密钥、生成弱密钥、复用密钥或缺少规范的密钥管理与轮换加密密钥是否被提交进了源代码仓库是否未强制加密——例如缺少任何 HTTP 安全响应头/指令是否恰当地验证了服务器证书及其信任链初始化向量IV是否被忽略、复用或未按加密模式要求足够安全地生成是否在使用 ECB 这类不安全的工作模式在更适合认证加密的场景是否仍用普通加密是否在缺少基于密码的密钥派生函数KDF的情况下直接把密码当作加密密钥使用是否使用了并非为满足加密需求而设计的随机性即便选对了函数若需要开发者手动播种是否用低熵/可预测的种子覆盖了内置的强播种功能是否使用了 MD5、SHA1 等已弃用哈希函数或在需要加密哈希函数时使用了非加密哈希加密错误消息或侧信道信息是否可被利用例如 padding oracle 攻击加密算法是否可被降级downgrade或绕过官方同时提示上述风险点的验收可对照 OWASP ASVS 中的 CryptographyV11、Secure CommunicationV12与 Data ProtectionV14三个章节执行。四、如何预防18 项纵深防御清单官方文档的如何预防部分给出了 18 条基线措施。以下逐条展开并补充可落地的参数与配置细节4.1 数据资产与密钥治理第 16 条数据分类与标记对应用处理、存储、传输的数据先分类识别哪些属于隐私法律、监管要求或业务需求下的敏感数据HSM 托管最敏感的密钥应存放在硬件安全模块HSM或云托管 HSM 中避免密钥以明文形态散落在配置、环境变量或代码里使用可信实现尽可能使用经过广泛验证的加密算法实现库而不是自研密码学或魔改标准算法最小化敏感数据不要无谓地保存敏感数据尽早丢弃或采用符合 PCI DSS 的令牌化tokenization乃至截断。不保留的数据就不可能被窃取静态加密确保所有敏感数据在静止状态下加密磁盘、数据库、备份、对象存储等密钥管理确保算法、协议与密钥保持最新且强健落实规范的密钥生成、分发、轮换与销毁流程。4.2 传输安全与缓存第 710 条传输加密基线仅使用TLS 1.2 及以上协议加密所有传输中的数据密码套件必须具备前向保密Forward Secrecy, FS移除对 CBCCipher Block Chaining套件的支持并为抗量子时代的密钥交换预留能力支持量子安全密钥交换算法。对于 HTTPS 站点用HSTSHTTP Strict Transport Security强制浏览器只走 HTTPS杜绝降级。最终要用专业工具如 SSL Labs、testssl.sh 类检测逐项核验整套配置禁用敏感响应缓存包含敏感数据的响应必须禁用缓存——涵盖 CDN 缓存、Web 服务器缓存和应用层缓存如 Redis按数据分类实施控制不同敏感级别的数据施加不同的访问、加密与审计控制禁用明文协议不要使用 FTP、STARTTLS 这类未加密或可被降级的协议避免用 SMTP 传输机密数据。4.3 密码存储与对称加密的正确用法第 1115 条密码哈希选型密码必须用**带盐salt的自适应哈希函数 工作因子延迟因子**存储官方推荐的排序为Argon2、yescrypt、scrypt 或 PBKDF2-HMAC-SHA-512。工作因子应随硬件发展持续调高例如 Argon2 的 m19MiB、t2、p1 起步并可上调PBKDF2 迭代次数应从十万级起步并逐年递增以抬高 GPU/ASIC 暴力破解成本。对仍在用 bcrypt 的遗留系统官方建议参考 OWASP Password Storage Cheat Sheet 评估升级路径IV/nonce 规范初始化向量必须按工作模式正确选择。需要随机性的模式用 CSPRNG 生成 IV基于 nonce 的模式如 GCM则要求 nonce 唯一而非随机。无论哪种模式同一个固定密钥下 IV 绝不允许复用两次认证加密优先始终使用认证加密Authenticated Encryption, AEAD而不是只做加密。推荐如 AES-GCM、ChaCha20-Poly1305 等同时提供机密性与完整性校验的方案可一并抵御密文篡改与 padding oracle 类攻击密钥的生成与驻留密钥应以密码学随机方式生成在内存中以字节数组形式保存而非字符串避免不可变对象残留在内存/日志中若以密码派生密钥必须经基于密码的 KDF如 PBKDF2、Argon2转换绝不能把密码明文当密钥随机性纪律在需要加密随机性的位置使用CSPRNG并确保其未被以可预测或低熵方式播种。现代主流 API如 OpenSSL RAND_bytes、Python secrets、Java SecureRandom、Go crypto/rand默认即为安全播种开发者不应也不该手动改写种子——这正是前述 CWE-335/336/337/338 系列漏洞的常见来源。4.4 弃用清单与前瞻第 1618 条回避弃用项明确禁止 MD5、SHA1 等弃用哈希禁止 CBC 分组链模式与 PKCS#1 v1.5 这类存在 padding oracle 风险的填充方案配置安全审查加密相关的设置与配置应由安全专家、专项扫描工具或两者共同评审确保实际生效的配置与安全要求一致后量子密码PQC准备现在就要开始为量子计算时代的密码体系做准备。官方引用 ENISA 的迁移路线图要求高风险系统最迟在 2030 年底前迁移到量子安全方案NIST 已于 2024 年 8 月发布首批 3 个正式后量子加密标准ML-KEM、ML-DSA、SLH-DSA 等。建议从现在起在资产清单中登记所有公钥密码使用点TLS 证书、签名、密钥交换制定双轨并行迁移计划。五、攻击场景示例两个最典型的实战案例场景 #1HTTPS 降级与会话劫持。某站点未对所有页面启用或强制 TLS或仍支持弱加密。攻击者在不安全无线网络等位置监控网络流量把用户的 HTTPS 连接降级为 HTTP拦截请求并窃取会话 cookie随后重放该 cookie 劫持已认证会话访问或篡改用户私有数据攻击者还可以直接篡改传输中的数据——例如把转账的收款人改成自己。这正是第 7 条预防措施TLS 1.2、FS、HSTS 强制加密要解决的核心问题。场景 #2未加盐哈希与彩虹表/GPU 破解。密码数据库用未加盐或简单哈希存储所有用户密码一次文件上传漏洞让攻击者拿到了整个数据库。所有未加盐哈希可直接用预计算彩虹表匹配还原而即便是加了盐只要哈希函数简单或速度快如 MD5、SHA1、普通 SHA-256攻击者也能用GPU 并行爆破。这正是第 11 条Argon2/scrypt/PBKDF2 等自适应慢哈希的意义所在——慢哈希通过设计抬高单次计算成本使 GPU 爆破的经济账彻底失衡。对照 2021 版英文原文 还可以看到第三个经典场景数据库自动加密 SQL 注入——应用依赖数据库层的自动加密但查询时数据被自动解密一条 SQL 注入漏洞就能把信用卡号以明文取出。这提醒我们加密必须与访问控制、输入校验协同静态加密救不了应用层的注入缺陷。六、映射的 CWE 清单32 个弱点全景2025 版将该类别下的 CWE 从 2021 版的 29 个扩充到32 个官方完整清单见 英文版 与 简体中文版。按攻击面分组如下A. 算法与密码原语层面的失效CWE-327使用已破解或有风险的加密算法CWE-326加密强度不足CWE-328可逆的单向哈希CWE-1240使用存在风险实现的加密原语CWE-261密码编码强度弱CWE-347加密签名验证不当B. 随机性与熵本次最受关注的一组CWE-330使用随机性不足的值CWE-331熵不足CWE-332PRNG 中熵不足CWE-334随机值空间过小CWE-335PRNG 种子使用错误CWE-336PRNG 使用相同种子CWE-337PRNG 使用可预测种子CWE-338使用加密强度不足的 PRNGCWE-340生成可预测数字或标识符CWE-342可从先前值预测精确值CWE-1241随机数生成器中使用可预测算法C. 密钥管理CWE-320密钥管理错误已弃用CWE-321使用硬编码加密密钥CWE-322未进行实体认证的密钥交换CWE-323加密中重复使用 nonce 或密钥对CWE-324使用已过期密钥CWE-325缺少必需的加密步骤D. 工作模式与填充CWE-329CBC 模式未使用随机 IVCWE-780使用未带 OAEP 的 RSA 算法CWE-757协商过程中选择较不安全算法算法降级E. 哈希与密码存储CWE-759使用未加盐的单向哈希CWE-760使用带可预测盐的单向哈希CWE-916使用计算成本不足的密码哈希F. 传输与证书CWE-319明文传输敏感信息CWE-523凭据传输未受保护CWE-296证书信任链跟随不当这一组 CWE 与前面 11 条自查清单一一对应凡是清单上能问出的是都能在 32 个 CWE 中找到对应的编号。这也是 2025 版把类别结构改为根因 多 CWE 聚合的原因——官方在引言中解释不同语言/框架适用不同的 CWE且同一漏洞常有多个 CWE 编号用类别聚合可以提升基线意识便于企业按自身技术栈聚焦排查。七、参考资料与仓库内进一步阅读官方给出的参考资源按类别整理供工程与审计团队索引OWASP Proactive ControlsC2 Use Cryptography to Protect DataOWASP Application Security Verification StandardASVSV11密码学、V12安全通信、V14数据保护OWASP Cheat Sheet 系列Transport Layer Protection、User Privacy Protection、Password Storage、Cryptographic Storage、HTTP Strict Transport SecurityHSTSOWASP Testing GuideTesting for weak cryptographyENISA《后量子密码迁移协调实施路线图》、NIST 首批三个后量子加密标准公告。本仓库中的一手资料可直接打开核对本文章主体意大利语版 A04:2025 文档以及对应英文版、简体中文版2025 版整体排名与类别调整说明2025 引言、2025 文档首页评分因子与公式定义应用安全风险与评分方法论2021 版对比基线A02:2021 Cryptographic Failures数据征集规范与示例2025 数据收集说明、示例 CSV、示例 JSON多语言站点构建配置2025 mkdocs 配置。结语把加密失效从榜单术语变成工程基线A04:2025 的 166 万 次发生与 2,185 个关联 CVE本质上是同几类工程错误的规模化复现明文裸奔、随机性失守、密钥裸奔、弃用算法存续。应对之道也已在官方文档中闭环——传输层统一 TLS 1.2 并配 HSTS静态层按数据分类加密并用 HSM 托管密钥密码存储换装 Argon2/scrypt/PBKDF2-HMAC-SHA-512 自适应慢哈希对称加密一律走 AEAD 且严守一钥一 IV随机性完全交给 CSPRNG同时从现在起布局 PQC 迁移。工程团队可以直接以本文的 11 条自查清单与 18 项预防措施作为安全评审与 Code Review 的检查基线并以仓库内的 32 个 CWE 清单反向映射扫描工具告警把这份行业共识真正落到每一次提交与发布中。赞分享应用安全【免费下载链接】Top10Official OWASP Top 10 Document Repository项目地址https://gitcode.com/gh_mirrors/top/Top10点击查看免费下载相关推荐OWASP Top 10:2025 A04 加密机制失效Cryptographic Failures全面解读与防护实践指南OWASP Top 10:2025 A04 加密机制失效Cryptographic Failures全面解读与防护实践指南 本文以 OWASP Top 10应用安全OWASP Top 10 2025 之 A04 加密机制失效Cryptographic Failures完整解读从 32 个映射 CWE 到纵深防护实践OWASP Top 10 2025 之 A04 加密机制失效Cryptographic Failures完整解读从 32 个映射 CWE 到纵深防护实践应用安全OWASP Top 10:2025 之 A04 加密机制失效Cryptographic Failures深度解析与防护实战OWASP Top 10:2025 之 A04 加密机制失效Cryptographic Failures深度解析与防护实战 导读 本文以 OWASP To应用安全上一篇Logoly国际化适配完整指南5步实现多语言动态切换下一篇Slidev 如何用全局层与每页层组件在全部幻灯片上添加页脚等常驻元素创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站