禁用SSLv2 协议是否足以保护我的应用免受DROWN attacks的攻击?
的以下引用用户可以通过在所有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,但这不是这个问题的重点。
答案 0 :(得分:2)
只要您在所有服务器上禁用了SSLv2,就可以免受DROWN攻击。
请注意,如果您甚至有一台服务器启用了SSLv2,并且您共享密钥 - 例如通过使用通配符证书(这很常见),那么即使您的SSLv2禁用的服务器也会受到攻击,因为攻击可以使用SSLv2服务器使用以后的协议攻击其他服务器上的连接。
答案 1 :(得分:1)
DROWN只能攻击使用SSLv2的服务器。因此,禁用该协议将保护该服务器 - 提供相同的密钥不会在其他地方使用。
然而,这并不是说即使您已将其配置为关闭,也不会存在有效重新启用SSLv2等未来的漏洞或错误,因此如果可以的话,最好进行修补或升级。最新版本的OpenSSL甚至不支持SSLv2。