在您链接的文章中,建议采取三个步骤来保护自己免受此漏洞的侵害。原则上,这些步骤适用于您可以与SSL / TLS一起使用的任何软件,但是在这里,我们将处理将其应用于Apache(httpd)的特定步骤,因为这是有问题的软件。
- 禁用导出密码套件
处理了我们将在下面的2.中进行的配置更改(!EXPORT
该SSLCipherSuite
行的结尾处是如何禁用导出密码套件)
- 部署(星历)椭圆曲线Diffie-Hellman(ECDHE)
对于这一点,你需要在你的Apache配置文件编辑一些设置-即SSLProtocol
,SSLCipherSuite
,SSLHonorCipherOrder
有一个“最佳实践”的设置。如下所示就足够了:
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder on
注意:作为该SSLCipherSuite
设置使用,这是一直在变,这是一个好主意,咨询资源,如这一个检查最新的推荐配置。
3.产生一个强大的,独特的Diffie Hellman组
为此,您可以运行
openssl dhparam -out dhparams.pem 2048
。
请注意,这会在生成参数的同时给服务器带来巨大的负载-您始终可以通过在另一台计算机上生成参数,然后使用scp
或类似方法将其传输到有问题的服务器上来解决此潜在问题。
要使用dhparams
Apache中新生成的这些内容,请参阅Apache文档:
要生成定制的DH参数,请使用openssl dhparam命令。或者,您可以将 RFC 2409第6.2节中的以下标准1024位DH参数附加到相应的SSLCertificateFile文件中:
(强调我的)
然后是标准的1024位DH参数。从中我们可以推断出,定制生成的DH参数可以简单地附加到相关SSLCertificateFile
的问题中。
为此,运行类似于以下内容的内容:
cat /path/to/custom/dhparam >> /path/to/sslcertfile
另外,根据您最初链接的文章的Apache小节,如果您不想更改证书文件本身,则还可以指定创建的自定义dhparams文件,从而:
SSLOpenSSLConfCmd DHParameters "/path/to/dhparams.pem"
无论哪种Apache配置与您的特定SSL / TLS实施相关-通常在conf.d/ssl.conf
或中,conf.d/vhosts.conf
但这取决于您配置Apache的方式。
值得注意的是,根据此链接,
在Apache 2.4.7之前,DH参数始终设置为1024位,并且不能由用户配置。这已在mod_ssl 2.4.7中修复,Red Hat已使用httpd-2.2.15-32.el6向后移植到其RHEL 6 Apache 2.2发行版中。
在Debian Wheezy上,将apache2升级到2.2.22-13 + deb7u4或更高版本,并将openssl升级到1.0.1e-2 + deb7u17。上面的SSLCipherSuite不能完美运行,而是根据此博客使用以下内容:
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMELLIA128-SHA:!DHE-RSA-CAMELLIA256-SHA
您应该检查Apache版本是否晚于这些版本号,具体取决于您的发行版;如果不是,请-尽可能对其进行更新。
完成上述步骤以更新配置,并重新启动Apache服务以应用更改后,应通过在SSLLabs和与该特定漏洞相关的文章上运行测试来检查配置是否符合要求。