A04:2025 - 加密失效

💡 学习提示: 本文档介绍 OWASP Top 10 A04 - 加密失效,涉及敏感数据保护的核心安全问题。


📋 风险概述

加密失效 (Cryptographic Failures) 是指由于未加密、弱加密或加密实现不当,导致敏感数据泄露的风险。这类风险 formerly 称为"敏感数据泄露"(Sensitive Data Exposure)。

🟠 危害等级:高危

项目 说明
发生率 2.56%
平均影响 7.42/10

🎯 常见场景

1. 明文传输

# ❌ 使用 HTTP 而非 HTTPS
http://example.com/login
# 密码以明文传输

2. 弱密码哈希

# ❌ 使用 MD5/SHA1
hash = md5(password)
hash = sha1(password)

# ✅ 使用 bcrypt/argon2
import bcrypt
hash = bcrypt.hashpw(password, bcrypt.gensalt())

3. 弱加密算法

# ❌ 使用 DES、RC4、MD5
# ✅ 使用 AES-256、RSA-2048+

4. 硬编码密钥

# ❌ 密钥硬编码在代码中
SECRET_KEY = "mysecretkey123"
ENCRYPTION_KEY = "0123456789abcdef"

🛡️ 防御方法

✅ 1. 强制 HTTPS

# 配置强制 HTTPS
server {
    listen 80;
    return 301 https://$server_name$request_uri;
}

✅ 2. 安全密码存储

# ✅ 使用 bcrypt
import bcrypt
hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt(12))

✅ 3. 安全密钥管理

# ✅ 使用环境变量或密钥管理服务
import os
SECRET_KEY = os.environ.get('SECRET_KEY')

🔗 参考资料


最后更新:2026-03-10