介绍
2014年10月14日,披露了SSL加密协议版本3中的漏洞。此漏洞被称为POODLE(Padding Oracle On Downgraded Legacy Encryption),允许攻击者使用中间人攻击以纯文本方式读取使用此版本协议加密的信息。 虽然在SSLv3是其主要是过时的协议的旧版本,软件的
许多作品还是依傍的SSLv3如果更好的加密选项不可用。更重要的是,如果对于尝试连接的两个参与者都是可用的替代,攻击者可能强制SSLv3连接。 POODLE漏洞影响任何可能使用SSLv3进行通信的服务或客户端。因为这是与协议的设计缺陷,而不是一个执行问题,
每一个软件使用SSLv3的是脆弱的。 要找出有关漏洞的更多信息,请在发现CVE信息
CVE-2014-3566 。
什么是POODLE漏洞?
POODLE漏洞是SSL协议版本3的弱点,它允许中间人环境中的攻击者解密SSLv3加密消息的纯文本内容。
谁受此漏洞的影响?
此漏洞影响每个可以强制与SSLv3通信的软件。这意味着任何实现包括SSLv3支持的回退机制的软件都是脆弱的并且可以利用。 可能受影响的一些常见软件是Web浏览器,Web服务器,VPN服务器,邮件服务器等。
它是如何工作的?
总之,存在POODLE漏洞,因为SSLv3协议没有充分检查与加密消息一起发送的填充字节。 由于这些不能由接收方验证,攻击者可以替换这些并将它们传递到预期目的地。当以特定方式完成时,修改的有效载荷将可能被接受者接受而不投诉。 在目的地接受每256个请求中的一次的平均值,允许攻击者解密单个字节。这可以容易地重复以逐渐解密附加字节。任何能够反复强制参与者使用此协议重新发送数据的攻击者都可以在非常短的时间内中断加密。
我如何保护自己?
应采取措施确保您不会在您的角色中作为客户端和服务器受到攻击。由于加密通常在客户端和服务器之间协商,这是涉及双方的问题。 服务器和客户端应该采取措施完全禁用SSLv3支持。许多应用程序默认使用更好的加密,但实施SSLv3支持作为后备选项。这应该禁用,因为恶意用户可以强制SSLv3通信,如果两个参与者允许它作为一个可接受的方法。
如何保护常见应用程序
下面,我们将介绍如何在一些常见的服务器应用程序上禁用SSLv3。小心评估您的服务器以保护可能依赖于SSL / TCP加密的任何其他服务。 因为POODLE漏洞不代表实现问题,并且是整个协议的固有问题,没有解决方法,唯一可靠的解决方案是不使用它。
Nginx Web服务器
要在Nginx的Web服务器的SSLv3禁用,则可以使用
ssl_protocols
指令。 这将是位于
server
或
http
配置中的块。 例如,在Ubuntu上,您可以在全球范围将它添加到
/etc/nginx/nginx.conf
的内部
http
块,或每个
server
块
/etc/nginx/sites-enabled
目录。
sudo nano /etc/nginx/nginx.conf
要禁用SSLv3的,你
ssl_protocols
指令应设置如下:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
在进行以上修改后,应重新启动服务器:
sudo service nginx restart
Apache Web服务器
到Apache Web服务器上禁用SSLv3的,你将不得不调整
SSLProtocol
所提供的指令
mod_ssl
模块。 此伪指令可以在服务器级别或虚拟主机配置中设置。根据您的分发的Apache配置,SSL配置可能位于单独的源文件中。 在Ubuntu上,用于服务器的服务器范围的规范可以通过编辑进行调整
/etc/apache2/mods-available/ssl.conf
文件。 如果
mod_ssl
启用,一个符号链接将连接该文件到
mods-enabled
子目录:
sudo nano /etc/apache2/mods-available/ssl.conf
在CentOS上,您可以在位于此处的SSL配置文件(如果启用SSL)中调整此设置:
sudo nano /etc/httpd/conf.d/ssl.conf
在里面你可以找到
SSLProtocol
指令。如果这不可用,请创建它。修改此选项以显式删除对SSLv3的支持:
SSLProtocol all -SSLv3 -SSLv2
保存并关闭文件。重新启动服务以启用更改。 在Ubuntu上,您可以键入:
sudo service apache2 restart
在CentOS上,这将是:
sudo service httpd restart
HAProxy负载平衡器
要在HAProxy的负载均衡器禁用SSLv3的,你需要打开
haproxy.cfg
文件。 这是位于
/etc/haproxy/haproxy.cfg
:
sudo nano /etc/haproxy/haproxy.cfg
在您的前端配置,如果已经启用了SSL,您
bind
指令将指定的公网IP地址和端口。 如果您在使用SSL,你将要添加
no-sslv3
这一行的结尾:
frontend name
bind public_ip:443 ssl crt /path/to/certs no-sslv3
保存并关闭文件。 您将需要重新启动服务以实施更改:
sudo service haproxy restart
OpenVPN VPN服务器
最近版本的OpenVPN实际上不允许SSLv3。该服务不易受此特定问题的影响,因此您不需要调整您的配置。
Postfix SMTP服务器
如果您的Postfix的配置设置为要求加密,它会使用一个名为指令
smtpd_tls_mandatory_protocols
。 你可以在主要的Postfix配置文件中找到:
sudo nano /etc/postfix/main.cf
对于设置为始终使用加密的Postfix服务器,可以通过设置此参数确保不接受SSLv3和SSLv2。如果您不强制加密,您不必执行任何操作:
smtpd_tls_mandatory_protocols=!SSLv2, !SSLv3
保存配置。重新启动服务以实施更改:
sudo service postfix restart
Dovecot IMAP和POP3服务器
为了在Dovecot服务器上禁用SSLv3的,你需要调整指令称为
ssl_protocols
。根据您的分发包装方法,SSL配置可能保留在备用配置文件中。 对于大多数发行版,您可以通过打开此文件来调整此指令:
sudo nano /etc/dovecot/conf.d/10-ssl.conf
在里面,如果你使用的是Dovecot2.1或更高版本,设置
ssl_protocols
指令禁用的SSLv2和SSLv3的:
ssl_protocols = !SSLv3 !SSLv2
如果您正在使用一个版本Dovecot低于2.1,你可以设置
ssl_cipher_list
不允许的SSLv3是这样的:
ssl_cipher_list = ALL:!LOW:!SSLv2:!EXP:!aNULL:!SSLv3
保存并关闭文件。 重新启动服务以实施更改:
sudo service dovecot restart
进一步的步骤
除了服务器端应用程序,您还应该更新任何客户端应用程序。 特别是,Web浏览器可能容易受到这个问题,因为他们的降低协议协商。确保您的浏览器不允许SSLv3作为可接受的加密方法。这可以在设置中或通过安装附加插件或扩展来调整。
结论
由于对SSLv3的广泛支持,即使启用更强的加密,这个漏洞也是远远而危险的。您需要采取措施保护自己既是使用SSL加密的任何资源的消费者和提供者。 请务必检查所有可能以任何形式利用SSL / TLS的网络访问服务。通常,这些应用程序需要明确的指令来完全禁用SSLv3等较弱的加密形式。