SSL 3.0 POODLE攻击信息泄露漏洞 (Alert2014-10)
2014-10-15
描述:
CVE ID:CVE-2014-3566受影响的软件及系统:
====================
SSL 3.0
未受影响的软件及系统:
======================
TLS 1.0
TLS 1.1
TLS 1.2
综述:
======
SSL 3.0协议被发现存在一个安全漏洞,有条件执行中间人攻击的攻击者可以对加密数据进行破解,从而获取HTTP cookie等敏感信息。
分析:
======
SSL3.0是已过时且不安全的协议,目前已被TLS 1.0,TLS 1.1,TLS 1.2替代,因为兼容性原因,大多数的TLS实现依然兼容SSL3.0。
TLS协议的握手阶段包含了版本协商步骤,一般来说,客户端和服务器端的最新的协议版本将会被使用。
为了通用性的考虑,目前多数浏览器版本都支持SSL3.0,其在与服务器端的握手阶段进行版本协商的时,首先提供其所支持协议的最新版本,若该握手失败,则尝试以较旧的协议版本协商。能够实施中间人攻击的攻击者通过使受影响版本浏览器与服务器端使用较新协议的协商的连接失败,可以成功实现降级攻击,从而使得客户端与服务器端使用不安全的SSL3.0进行通信,此时,由于SSL 3.0使用的CBC块加密的实现存在漏洞,攻击者可以成功破解SSL连接的加密信息,比如获取用户cookie数据。这种攻击被称为POODLE攻击(Padding Oracle On Downgraded Legacy Encryption)。
此漏洞影响绝大多数SSL服务器和客户端,影响范围广泛。但攻击者如要利用成功,需要能够控制客户端和服务器之间的数据(执行中间人攻击)。
解决方法:
如果不能及时安装补丁,建议采用如下防护措施:* 禁用SSL 3.0协议。
目前常用浏览器只有IE 6.0仍然不支持TLS 1.0,禁用SSL 3.0协议将影响IE 6客户的
SSL访问。
服务端禁用方法:
Apache 2.x:
在mod_ssl配置文件中使用如下命令禁用SSLv2和SSLv3:
SSLProtocol All -SSLv2 -SSLv3
重启Apache
Nginx:
在配置文件中使用:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
重启Nginx
IIS:
查找如下注册表项:
HKey_Local_MachineSystemCurrentControlSetControlSecurityProviders SCHANNELProtocols
该注册表项通常包含以下子项:
* PCT 1.0
* SSL 2.0
* SSL 3.0
* TLS 1.0
每个注册表项都保留适用于该项的协议相关信息。可以在服务器上禁用这些协议中的任一种。为此,
请在协议SSL 3.0的服务器子项中创建一个新的DWORD值。将DWORD值设置为“00 00 00 00”。
浏览器禁用方法:
IE:
"工具" -> "Internet 选项" -> "高级" ,取消"使用 SSL 3.0"的复选框。
Chrome:
复制一个平时打开 Chrome 浏览器的快捷方式,在新的快捷方式上右键点击,登录属性,
在"目标"后面的空格中字段的末尾输入以下命令 --ssl-version-min=tls1
FireFox:
在地址栏输入"about:config",然后将 security.tls.version.min 调至 1。
厂商状态:
==========
厂商暂时没有提供升级补丁。FireFox和Chrome都计划在新版本中禁用SSL 3.0。
附加信息:
==========
1. http://www.openssl.org/~bodo/ssl-poodle.pdf
2. http://technet.microsoft.com/en-us/library/security/3009008
3. http://www.nsfocus.net/index.php?act=alert&do=view&aid=152