请提供将通过PCI合规性扫描的Apache SSLCipherSuite

时间:2011-04-24 07:41:11

标签: apache pci-dss pci-compliance

我正在尝试让运行Apache 2.2.17的Fedora 14服务器通过McAfee ScanAlert的PCI-DSS合规性扫描。我第一次尝试使用ssl.conf中设置的默认SSLCipherSuite和SSLProtocol指令...

SSLProtocol    ALL -SSLv2
SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP

未能引用弱密码已启用。使用ssllabs和serversniff工具进行扫描后发现,40位和56位密钥确实可用。

然后我改为......

SSLProtocol -ALL +SSLv3 +TLSv1

并尝试了各种网站上报告的所有以下字符串,以便从各种供应商处传递PCI扫描......

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH
SSLCipherSuite ALL:!ADH:!NULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:-LOW:+SSLv3:+TLSv1:-SSLv2:+EXP:+eNULL
SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:RC4+RSA:+HIGH:+MEDIUM
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH

我在更新后重启apache,apachectl configtest说我的语法没问题。随后的ScanAlert扫描全部失败,其他扫描工具继续显示40和56位密码可用。我曾尝试将SSLProtocol和SSLCipherSuite直接添加到httpd.conf中的VirtualHost,但没有帮助。

实际上感觉就像某个地方覆盖了这些设置但除了ssl.conf之外我找不到任何设置这些值的地方。

如果有人能提供已通过最近PCI扫描的已知良好SSLCipherSuite,那么在追踪我的问题方面会有很大帮助。

感谢。

6 个答案:

答案 0 :(得分:13)

随着新漏洞的发现和浏览器的升级,这里的答案可能(将)过时。我建议您依靠 Mozilla SSL Configuration Generator 来检查您应该使用哪种配置。

enter image description here

更新2018年:现在强制执行Perfect Forward Secrecy是合理的,除非您需要专门支持旧浏览器。截至2018年11月,只有"现代" profile将启用Perfect Forward Secrecy。阅读更多相关信息:

SSL Labs: Deploying Forward Secrecy

Configuring Apache, Nginx, and OpenSSL for Forward Secrecy

答案 1 :(得分:8)

经过几个小时的搜索和拔毛,我发现了我的问题。

我的ssl.conf中的默认SSLProtocol和SSLCipherSuite指令存储在标记为<VirtualHost _default_:443>的默认容器中。

我的实际网站有自己的容器,标有IP地址,例如:<VirtualHost 64.34.119.12:443>。更改_default_容器中的值没有任何影响,但将更强的SSLProtocol和SSLCipherSuite指令直接添加到特定于站点的VirtualHost容器最终允许它们生效。

仍然不确定为什么在httpd.conf中调整_default_容器或将它们放在VirtualHost容器中不起作用。

作为问题的明确答案,我用过......

SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH

通过我的ScanAlert扫描。我敢打赌,上面的大多数其他字符串都可以正常工作。

答案 2 :(得分:2)

您是否告诉Apache强制执行密码?

上的SSLHonorCipherOrder

答案 3 :(得分:2)

仅供参考 - 我发现这个设置:

SSLCipherSuite HIGH:!SSLv2:!ADH

生成与此设置完全相同的协议列表:

SSLCipherSuite ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH

根据:

openssl ciphers -v 'ALL:!ADH:!NULL:!EXP:!SSLv2:!LOW:!MEDIUM:RC4+RSA:+HIGH'
openssl ciphers -v 'HIGH:!SSLv2:!ADH'

答案 4 :(得分:2)

Qualys推荐以下配置,它在scanner

上给了我们一个A.
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"

是的,还要确保Apache能够读取新配置。我将它直接放在虚拟主机容器中。

从他们的网站:https://community.qualys.com/blogs/securitylabs/2013/08/05/configuring-apache-nginx-and-openssl-for-forward-secrecy

答案 5 :(得分:0)

看这里Mozilla Wiki

本文档的目标是帮助运营团队在服务器上配置TLS。