博客 | NGINX

保护 NGINX 和 NGINX Plus 免受针对 SSLv3 的 POODLE 攻击 (CVE-2014-3566)

NGINX-F5-horiz-black-type-RGB 的一部分
欧文·加勒特缩略图
欧文·加勒特
2014 年 11 月 15 日发布

SSL 协议第 3 版(SSLv3)中最近报告的一个漏洞可被中间人攻击利用来提取使用 HTTPS 加密的纯文本传输的部分内容。 谷歌研究人员发表了一份详细的解释,描述了如何发起此类攻击。

这不是 SSL/TLS 任何实现中的漏洞,而是使用分组密码时 SSLv3 协议设计中的漏洞。 由于所有替代流密码也都存在弱点,因此唯一的措施是在 NGINX 和 NGINX Plus 配置中禁用 SSLv3。

在 NGINX 中禁用 SSLv3

SSLv3 在 NGINX 和 NGINX Plus 中默认启用,并且可能被 HTTP 和邮件服务使用。

[编辑——本文最初发布时, TCP 流量的代理和负载均衡尚未得到完全支持。 为了完整性,以下步骤已更新以包括对 TCP 流量的保护。]

在所有 NGINX 和 NGINX Plus 实例上执行以下步骤:

  1. 从用于 HTTP 流量的协议集中消除 SSLv3。 如果不存在,请将以下ssl_protocols指令添加到http{}块,或者编辑现有指令以从参数列表中删除SSLv3

    # 在 http{} 配置中 blockssl_protocols TLSv1 TLSv1.1 TLSv1.2;# 由于 POODLE (CVE-2014-3566) 而省略 SSLv3
  2. 如果您的 NGINX 或 NGINX Plus 实例处理邮件流量,请在mail{}配置块中创建或编辑相同的指令。

    # 在 mail{} 配置中 blockssl_protocols TLSv1 TLSv1.1 TLSv1.2;# 由于 POODLE (CVE-2014-3566) 而省略 SSLv3
  3. 如果您的 NGINX 或 NGINX Plus 实例处理 TCP 流量,请在stream{}配置块中创建或编辑相同的指令。

    # 在 stream{} 配置中 blockssl_protocols TLSv1 TLSv1.1 TLSv1.2;# 由于 POODLE (CVE-2014-3566) 而省略 SSLv3
  4. 在您的配置中找到ssl_protocols指令的所有其他实例(它可以包含在http{}mail{}stream{}块内的server{}配置块中)。 我们建议删除这些ssl_protocols指令,但至少从参数列表中删除SSLv3

    # 在每个 server{} 块中 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;# 由于 POODLE (CVE-2014-3566) 而省略 SSLv3
  5. 运行以下命令重新加载配置:

    # nginx –s 重新加载

这一变化有何影响?

所有现代浏览器和 API 客户端都支持 TLSv1 及更高版本。 禁用 SSLv3 将给使用 Internet Explorer 6 浏览的 WindowsXP 用户带来不便; CloudFlare估计 1.12% 的 WindowsXP 用户(占其流量的 3.12%)将受到影响 - 这相当于大约 3000 个用户中的 1 个。

这一变化可能还会影响网络爬虫和其他自动机器人流量。

未来

SSL 降级攻击中,攻击者可以破坏 SSL/TLS 握手并导致客户端和服务器选择早期版本的 SSL/TLS。 当用于强制选择 SSLv3 时,它可能会使 SSL/TLS 连接容易受到 POODLE 攻击。 在服务器上禁用 SSLv3 会使这种攻击变得不可能。

Google 已提议对 SSL/TLS 进行一项扩展,名为TLS_FALLBACK_SCSV ,旨在防止强制 SSL/TLS 降级。 [编辑 - 该扩展于 2015 年 4 月被采纳为RFC 7507。 ]该扩展最终可能会被 OpenSSL 接受,并且相应的客户端支持将添加到主流浏览器中。 这将允许 Web 服务支持 SSLv3,但旧客户端仍然容易受到攻击。

尽管如此,此漏洞可能标志着 SSLv3 的最后一颗钉子——总体而言,SSLv3 是一种更简单、更可靠的解决方案。

我还能做什么?

我们建议更新您的客户端软件,以使其不支持 SSLv3。 当您访问尚未更新以禁用 SSLv3 的服务时,这将保护您免受此攻击。

进一步阅读


“这篇博文可能引用了不再可用和/或不再支持的产品。 有关 F5 NGINX 产品和解决方案的最新信息,请探索我们的NGINX 产品系列。 NGINX 现在是 F5 的一部分。 所有之前的 NGINX.com 链接都将重定向至 F5.com 上的类似 NGINX 内容。”