![如何缓解 POODLE 问题但保留对旧客户端的 SSLv3 支持](https://linux22.com/image/644081/%E5%A6%82%E4%BD%95%E7%BC%93%E8%A7%A3%20POODLE%20%E9%97%AE%E9%A2%98%E4%BD%86%E4%BF%9D%E7%95%99%E5%AF%B9%E6%97%A7%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%9A%84%20SSLv3%20%E6%94%AF%E6%8C%81.png)
如何减轻 POODLE 攻击,但仍然保留对旧客户端(例如 Windows XP 上的 IE6 或电子邮件客户端)的支持。
我注意到谷歌这样做: https://www.ssllabs.com/ssltest/analyze.html?d=mail.google.com
我正在使用 nginx 和 openssl。
此外,我希望在现代/大多数浏览器上保持前向保密性。我希望在 ssllabs 上保持 A 评级。
答案1
正如谷歌在这篇博文中写道http://googleonlinesecurity.blogspot.se/2014/10/this-poodle-bites-exploiting-ssl-30.html有三种方法可以缓解 POODLE:
- 禁用 SSL 3.0 支持
- 使用 SSL 3.0 禁用 CBC 模式密码
- 支持 TLS_FALLBACK_SCSV
前两个选项破坏了与旧客户端(例如 XP 上的 IE6)的兼容性。TLS_FALLBACK_SCSV 依赖于支持它的浏览器,目前只有 Chrome 支持,但 Firefox 很快就会支持。TLS_FALLBACK_SCSV 需要新发布的 OpenSSL 1.0.1j。
如果可能的话,你应该禁用 SSL 3 支持,但如果你需要保留它,如果你有 OpenSSL 1.0.1j 和 nginx,你可以通过以下方法缓解它:
ssl_ciphers 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:!CAMELLIA;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
这种密码配置将在大多数浏览器中提供前向保密性,并减轻 POODLE+BEAST 服务器端的影响。它的工作原理是,当面对 SSL 3 或 TLS 1.0 浏览器时,优先使用 RC4 而不是 AES,从而避免使用 CBC 模式。运行 TLS 1.1+ 的浏览器不使用 RC4,这不像我们希望的那样安全。
它目前对 ssllabs 给出了 A 评级,以下是实际示例:https://www.ssllabs.com/ssltest/analyze.html?d=s.nimta.com