Poodle:在服务器上禁用 SSL V3 真的是一个解决方案吗?

san*_*s85 39 linux ssl poodle

我一整天都在阅读有关贵宾犬漏洞的信息,现在我对安全性和收入感到有些困惑。

如果我在服务器上禁用 SSL V3(对于 Apache,SSL V2 和 V3 都将被禁用)客户端(浏览器)不支持任何协议,但 SSL V3 将无法将 HTTPS 与服务器连接。

所以这是客户端和服务器都必须与 TLS 1.1 1.2 等通信的情况

如果其中任何一个使用 SSL V3 而另一个不支持较低版本,那么会发生什么?没有连接到 SSL。

我见过对 Firefox 进行的更新很少,也许他们已经禁用了 SSL V3,因为我们通常在选项中必须这样做。这将强制所有连接到较低版本和 TLS

但是禁用 SSL V3 真的可以解决这个问题吗?

Bob*_*Bob 52

首先,让我们把事情弄清楚一点:

  • TLS 取代了 SSL。TLS 1.0 紧随其后,是对 SSL 3.0 的更新。

    TLS 1.2 > TLS 1.1 > TLS 1.0 > SSL 3.0 > SSL 2.0 > SSL 1.0

  • 3.0 之前的 SSL 版本已知存在严重的安全漏洞有一段时间了,并且被现代客户端和服务器禁用/不支持。SSL 3.0 可能很快就会采用同样的方式。

  • 在当前使用的协议中,“贵宾犬”对 SSL 3.0 的影响最为严重,无法缓解。针对规范允许的某些 TLS 1.0 和 1.1实现存在类似的攻击- 确保您的软件是最新的。


现在,即使使用现代客户端和服务器,“贵宾犬”仍然存在风险的原因是客户端实施了回退机制。并非所有服务器都支持最新版本,因此客户端将按从最新到最新(TLS 1.2、TLS 1.1、TLS 1.0、SSL 3.0)的顺序尝试每个版本,直到找到服务器支持的版本。这发生加密通信开始之前,因此中间人 (MITM) 攻击者能够强制浏览器回退到旧版本,即使服务器支持更高版本。这称为协议降级攻击。

具体来说,在“贵宾犬”的情况下,只要客户端和服务器都支持 SSL 3.0,MITM 攻击者就可以强制使用该协议。

因此,当您禁用 SSL 3.0 时,会产生两个影响:

  • 不能欺骗支持更高版本的客户端回退到易受攻击的版本(TLS 回退 SCSV是一种新提出的防止协议降级攻击的机制,但并非所有客户端和服务器都支持它)。这就是您要禁用 SSL 3.0 的原因。您的绝大多数客户可能都属于这一类,这是有益的。

  • 根本不支持 TLS 的客户端(正如其他人提到的,XP 上的 IE6 几乎是唯一仍然用于 HTTPS 的客户端)将根本无法通过加密连接进行连接。这可能只是您用户群的一小部分,为了迎合这一少数群体而牺牲大多数人的安全性是不值得的。

  • 嗨,鲍勃,我是爱丽丝。就像您对 Mallet 如何利用 Poodle 的解释一样。 (8认同)

Eva*_*son 27

你的评估是正确的。一旦您禁用 SSL 3,客户端将需要使用更新的协议来连接到您的服务器。 SSL 3 协议有缺陷,并且不会有“补丁”。禁用 SSL 3 是唯一的解决方案。

在这一点上,如此多的站点已禁用 SSL 3,以至于旧浏览器的用户几乎不可避免地需要升级。假设您正在记录用户代理字符串,您可以查看您的日志并就禁用 SSL 3 做出明智的决定。我认为可能只有一小部分网站访问者使用的浏览器无法处理较新的协议。

[fwiw - cloudflare 报告 1.12% 的用户是 IE6 XP 用户,这取决于 SSLv3]

  • 不过,`TLS_FALLBACK_SCSV` 并没有减轻对旧客户端的攻击。它只是允许旧客户端继续使用有缺陷的协议,同时防止新客户端出现不受欢迎的协议版本降级。最后,为任何客户端启用 SSLv3 可能会将其流量暴露给攻击者。 (2认同)

Nza*_*all 20

是的,禁用 SSL3 将使不支持 TLS 的用户无法访问您的网站。

但是,从实用的角度来看,看看哪些浏览器属于该类别。Chrome 和 Firefox 都支持 TLS,甚至会因为这个 bug 完全放弃 SSL3 支持。IE 从 IE7 开始就支持它。唯一不支持但仍在全球范围内使用的浏览器是 IE6,并且仍然使用的唯一原因是两个原因:

  1. 任何拥有破解版 XP 且无法使用 Chrome 或 Firefox 的人;
  2. 任何遵守公司或政府政策且对浏览器选择有限制的人。

在这两种情况下,都使用 IE6,因为它是原始安装附带的默认 Windows XP 浏览器。此外,IE6 全球市场份额仍然(较小)的唯一原因是中国的用户众多。

所以,长话短说:这里有 3 个问题:

  1. 你有一个重要的中国用户群吗?
  2. 您的网站是否提供对 IE6 的支持,即使它已经过时且已损坏?
  3. 您的网站是政府或公司使用的产品,有浏览器选择限制吗?

如果这 3 个中的任何一个为真,您将必须找到替代解决方案。如果所有 3 个都是假的,只需禁用它并完成它。如果您需要替代解决方案,您他妈的最难说服仍然使用 IE6 的一小部分用户群从 13 岁的浏览器中切换出来。


Mad*_*ter 7

您在问题中提到了“ Apache ”和“浏览器”,但标题更笼统。

正如 Evan 和其他人指出的那样,HTTPS 的问题几乎可以解决。但是,服务器可能会加密许多其他协议,并且该客户端群中的 TLS 支持要差得多(正如我今天早上发现的,在 IMAP/S 服务器上强制要求“无 SSL3”时)。

所以恐怕答案是“这取决于您加密的服务,以及您的用户群中客户端对 TLS 的支持”。

编辑:是的,这就是我的观点,虽然我很高兴你同意。关闭 sslv3 是在逐个服务的基础上完成的。例如,在 dovecot 上关闭它的方法是将

ssl_cipher_list = ALL:!LOW:!SSLv2:!SSLv3:!EXP:!aNULL
Run Code Online (Sandbox Code Playgroud)

dovecot.conf。更大的问题是,虽然大多数浏览器都可以容忍 sslv3 的丢失,但其他服务的客户端似乎不太容忍。今天早上当我在 dovecot 上关闭它时,我打破了大约一半的用户;在 Win7 上运行 K-9 邮件和 Outlook 的 Android 手机是我肯定知道的两款,但我可以从我的日志中看到还有更多。

关闭 SSLv3 仍然不仅是一个有效的解决方案,而且是唯一的解决方案;但它会受伤。

编辑 2:感谢 dave_thompson_085 指出在 dovecot 中禁用 SSLv3 密码不仅禁用 SSLv3 协议,而且禁用 TLSv1.0 和 TLSv1.1,因为它们没有早期协议没有的密码。Dovecot(至少,早期版本,包括我正在运行的版本)似乎缺乏配置协议而不是密码套件的能力。这可能解释了为什么这样做会破坏这么多客户。

  • 在 openssl 中禁用 **ciphers** `!SSLv3` 实际上禁用了除 TLSv1.2 之外的所有协议,这可能对您的同行不利。这就是为什么禁用 **protocol** 更好,但 AFAICS 仅在 dovecot 2.1+ 中。请参阅 http://security.stackexchange.com/questions/71872/disable-sslv3-in-dovecot-tls-handshaking-failed-no-shared-cipher 。 (3认同)

cyp*_*res 6

禁用 SSLv3 是最好的解决方案,但我不同意这是唯一的解决方案。正如CloudFlare 所描述的,SSLv3 使用率非常低,因此大多数管理员关闭它应该没有问题。

如果您对 SSLv3 有特殊要求,也许您需要在 Windows XP 上支持 IE6,或者您需要支持非常旧的软件,那么还有另一种缓解它的方法。

缓解它并保持 SSLv3 的方法是使用 RC4 并支持 OpenSSL 1.0.1j 提供的 TLS 回退 SCSV。在贵宾犬qualys 帖子中,RC4 是“名称无人愿意提及的某些不安全流密码”。

这就是谷歌在 mail.google.com 上所做的,他们也在他们的博客条目中描述了它:http : //googleonlinesecurity.blogspot.se/2014/10/this-poodle-bites-exploiting-ssl-30.html

  • 我真的不确定哪个更糟,让系统对贵宾犬开放或降档到 RC4... (2认同)