是否禁用SSLv2协议以防止DROWN攻击?

时间:2016-05-18 18:22:55

标签: security ssl openssl

禁用SSLv2 协议是否足以保护我的应用免受DROWN attacks的攻击?

给出OpenSSL.org

的以下引用
  

用户可以通过在所有SSL / TLS中禁用SSLv2协议来避免此问题   服务器,如果他们还没有这样做的话。禁用所有SSLv2密码也是   足够,提供CVE-2015-3197的补丁(在OpenSSL 1.0.1r和   1.0.2f)已经部署。未禁用SSLv2协议的服务器,   并且没有修补CVE-2015-3197即使所有SSLv2都容易受到DROWN的攻击   密码名义上是禁用的,因为恶意客户端可以强制使用   带有EXPORT密码的SSLv2。

我将其读作a或b:

a)禁用SSLv2 协议

b)使用CVE-2015-3197禁用SSLv2 密码 +补丁

显然,最好的解决方案是更新库,但是可以说一些应用程序已经在旧的未修补库中使用,但SSLv2 协议已被禁用(不仅仅是密码,但实际的SSLv2 协议本身已被禁用);即使SSLv2协议被禁用,旧的应用程序是否会受到攻击?

我知道您还必须确保证书不会在启用了SSLv2的其他地方使用;但我们假设它是一个在别处没有使用过的唯一证书。

是的,我知道SSLv3也应该被禁用以保护POODLE,但这不是这个问题的重点。

2 个答案:

答案 0 :(得分:2)

只要您在所有服务器上禁用了SSLv2,就可以免受DROWN攻击。

请注意,如果您甚至有一台服务器启用了SSLv2,并且您共享密钥 - 例如通过使用通配符证书(这很常见),那么即使您的SSLv2禁用的服务器也会受到攻击,因为攻击可以使用SSLv2服务器使用以后的协议攻击其他服务器上的连接。

答案 1 :(得分:1)

DROWN只能攻击使用SSLv2的服务器。因此,禁用该协议将保护该服务器 - 提供相同的密钥不会在其他地方使用。

然而,这并不是说即使您已将其配置为关闭,也不会存在有效重新启用SSLv2等未来的漏洞或错误,因此如果可以的话,最好进行修补或升级。最新版本的OpenSSL甚至不支持SSLv2。