跳转至

Index

针对 SSL 3.0 的 POODLE 攻击

描述

此漏洞表明服务器容易受到 POODLE 攻击,该攻击利用 SSL 3.0 填充验证中的基本设计缺陷,通过填充预言机攻击结合协议降级来解密加密通信。

POODLE(Padding Oracle On Downgraded Legacy Encryption)发生在 SSL 3.0 实现无法正确验证 CBC 模式下的块密码填充时。填充未被消息身份验证代码覆盖,从而允许攻击者操纵加密数据并将服务器响应作为预言机,逐字节解密机密。

工作原理:

  1. 攻击者强制协议从 TLS 降级到易受攻击的 SSL 3.0
  2. 恶意 JavaScript 使用受控的填充发出重复请求
  3. 服务器响应将填充验证结果揭示为预言机信息
  4. 系统性操作会提取 Cookie 和 Token 等敏感数据

要求:

  • 具有 CBC 密码套件的 SSL 3.0 支持
  • 中间人(Man-in-the-middle)网络访问
  • 协议降级能力
  • 在受害者的浏览器中执行 JavaScript

示例场景: 公共 WiFi 上的攻击者在登录银行网站期间强制受害者的浏览器从 TLS 1.2 降级到 SSL 3.0。通过注入的 JavaScript 发出数千个精心制作的请求,攻击者利用 SSL 3.0 弱填充验证在 10 分钟内逐字节解密会话 Cookie,从而获得对受害者银行账户的完全访问权限。

该攻击证明了为什么 SSL 3.0 从根本上是不安全的,必须完全禁用,因为它会导致会话劫持、数据盗窃和合规性违规。

建议

为了缓解 POODLE 攻击:

主要防御 - 禁用 SSL 3.0:

# Nginx 配置
ssl_protocols TLSv1.2 TLSv1.3;
# Apache 配置
SSLProtocol -all +TLSv1.2 +TLSv1.3

实施 TLS_FALLBACK_SCSV:

  • 防止协议降级攻击
  • 在 OpenSSL 1.0.1j+ 和现代 TLS 库中受支持
  • 允许安全回退而不强制使用 SSL 3.0

浏览器保护:

  • 现代浏览器默认禁用 SSL 3.0
  • 确保浏览器是最新的
  • 考虑实施 Content Security Policy

替代缓解措施(如果需要 SSL 3.0):

  • 在 SSL 3.0 中禁用 CBC 密码套件
  • 实施反 POODLE 记录拆分
  • 仅使用 RC4 密码

通过完全禁用 SSL 3.0 并实施 TLS_FALLBACK_SCSV,组织可以消除 POODLE 攻击媒介,同时维持安全的加密通信。

链接

标准

  • SOC2_CONTROLS:
    • CC_6_7
    • CC_7_1
  • CCPA:
    • CCPA_1798_150
  • GDPR:
    • ART_32
  • HIPAA_CONTROLS:
    • SECURITY252
    • SECURITY212
    • SECURITY213
    • SECURITY255
    • SECURITY258
  • PCI_STANDARDS:
    • REQ_4_1
    • REQ_6_2
    • REQ_11_3