完全向前保密是对SSL / TLS通信的重要增强,有助于防止捕获的SSLstream量被解密,即使攻击者拥有私钥。 支持Web服务器非常简单,但也适用于任何其他SSL上下文,如用于SMTP,POP3和IMAP的邮件服务器。
最近(2014年9月),这个数据保护机构已经开始在德国开展业务,在那里数据保护机构已经开始检查和罚款那些不支持邮件服务器上的PFS的组织 ,还有心跳和贵宾犬漏洞。 Web浏览器中的PFS支持有点不统一,虽然所有主要的支持它 – 但是我正在寻找邮件服务器和客户端上的PFS兼容性信息,理想的情况是SSL Labs的握手testing提供的,但对于邮件服务器。
任何人都可以提供或指向我的邮件服务器PFS兼容性的良好来源?
为了澄清,我不想询问特定的服务器,而是在各种不同的服务器上查看这种testing的结果,例如,知道Outlook 2003不支持ECDHE或Android 2不允许大于2048位的DH参数(我不知道这些是否为真,它们只是例子)。 这样做的好处是要知道,如果我select禁用某些特定的密码,哪些客户端可能会受到影响,就像SSL实验室testing为Web客户端显示的一样。
这样做的好处是要知道,如果我select禁用某些特定的密码,哪些客户端可能会受到影响,就像SSL实验室testing为Web客户端显示的一样。
您不需要将自己限制为特定的密码,而是只需启用所有您可以接受的密码,并按您喜欢的顺序启用。 然后将根据两个站点上支持的密码,在客户端和服务器之间协商产生的密码。 不要限制自己不必要的。
至于在服务器端通常使用的密码,你可以看一下量化TLS支持的质量 ,我已经根据Alexa分析了来自顶级1M站点的SMTP的TLS支持,其中约600000邮件服务器启用了TLS 。 根据我的testing,大约有33%的服务器使用ECDHE密码和52%的DHE密码,所以有85%使用前向保密。
有关使用的密码的更多信息,您在研究中将找不到在与OpenSSL 1.0.1的DEFAULT密码集一起使用时协商的密码的详细列表:
100.00% 600433 TOTAL 29.53% 177285 DHE-RSA-AES256-GCM-SHA384 21.20% 127304 ECDHE-RSA-AES128-GCM-SHA256 20.62% 123804 DHE-RSA-AES256-SHA 7.65% 45919 AES256-SHA 6.40% 38404 ECDHE-RSA-AES256-GCM-SHA384 4.42% 26558 AES256-GCM-SHA384 4.36% 26189 ECDHE-RSA-AES256-SHA384 1.76% 10586 AES128-SHA 1.17% 7003 RC4-SHA 0.93% 5577 DHE-RSA-AES256-SHA256 0.90% 5389 ECDHE-RSA-AES256-SHA 0.56% 3372 DHE-RSA-CAMELLIA256-SHA 0.19% 1137 RC4-MD5 0.08% 503 EDH-RSA-DES-CBC3-SHA 0.08% 454 DES-CBC3-SHA 0.07% 444 AES128-SHA256 0.04% 235 DHE-RSA-AES128-GCM-SHA256 0.01% 82 AES128-GCM-SHA256 0.01% 59 AES256-SHA256 0.01% 53 DHE-RSA-AES128-SHA 0.00% 23 ECDHE-RSA-AES128-SHA 0.00% 14 DHE-DSS-AES256-SHA 0.00% 11 ECDHE-RSA-AES128-SHA256 0.00% 10 ECDHE-RSA-RC4-SHA 0.00% 10 ECDHE-RSA-DES-CBC3-SHA 0.00% 4 DHE-DSS-AES256-GCM-SHA384 0.00% 2 CAMELLIA256-SHA 0.00% 1 DHE-RSA-SEED-SHA 0.00% 1 AECDH-DES-CBC3-SHA
请检查由公司编写的免费脚本, 其中安全SE的高素质人员之一工作: https : //labs.portcullis.co.uk/tools/ssl-cipher-suite-enum/
ssl-cipher-suite-enum标识与SSL相关的以下常见安全问题:…支持不支持前向保密的密钥交换algorithm – 或者等价地,密码套件可以追溯性地解密经过嗅探的stream量(如果私有SSL关键是妥协。
如果你想慢慢手工操作, openssl portmanteau工具集非常方便:
从https://community.qualys.com/thread/12193 :
openssl s_client -starttls smtp -crlf -connect YOUR_SMTP_SERVER:25
如果你在密码套件中看到DHE(Diffie-Hellmann Ephemeral),那就是PFS。
在这篇文章中的安全SE TLS_DHE_DSS_WITH_DES_CBC_SHA DHE-DSS-CBC-SHA TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA DHE-DSS-DES-CBC3-SHA TLS_DHE_RSA_WITH_DES_CBC_SHA DHE-RSA-DES-CBC-SHA TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA DHE-RSA-DES-CBC3-SHA
TLS_DHE_DSS_WITH_AES_128_CBC_SHA DHE-DSS-AES128-SHA TLS_DHE_DSS_WITH_AES_256_CBC_SHA DHE-DSS-AES256-SHA TLS_DHE_RSA_WITH_AES_128_CBC_SHA DHE-RSA-AES128-SHA TLS_DHE_RSA_WITH_AES_256_CBC_SHA DHE-RSA-AES256-SHA TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA DHE-DSS-CAMELLIA128-SHA TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA DHE-DSS-CAMELLIA256-SHA TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA DHE-RSA-CAMELLIA128-SHA TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA DHE-RSA-CAMELLIA256-SHA TLS_DHE_DSS_WITH_SEED_CBC_SHA DHE-DSS-SEED-SHA TLS_DHE_RSA_WITH_SEED_CBC_SHA DHE-RSA-SEED-SHA
如果我们包含椭圆曲线密码,下面还实现PFS:
TLS_ECDHE_RSA_WITH_NULL_SHA ECDHE-RSA-NULL-SHA TLS_ECDHE_RSA_WITH_RC4_128_SHA ECDHE-RSA-RC4-SHA TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA ECDHE-RSA-DES-CBC3-SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA ECDHE-RSA-AES128-SHA TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA ECDHE-RSA-AES256-SHA TLS_ECDHE_ECDSA_WITH_NULL_SHA ECDHE-ECDSA-NULL-SHA TLS_ECDHE_ECDSA_WITH_RC4_128_SHA ECDHE-ECDSA-RC4-SHA TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA ECDHE-ECDSA-DES-CBC3-SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA ECDHE-ECDSA-AES128-SHA TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ECDHE-ECDSA-AES256-SHA
如果你还想包含TLS 1.2(注意没有TLS 1.1特定的套件),那么你可以扩展列表来包含:
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 DHE-RSA-AES128-SHA256 TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 DHE-RSA-AES256-SHA256 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE-RSA-AES128-GCM-SHA256 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 DHE-RSA-AES256-GCM-SHA384 TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 DHE-DSS-AES128-SHA256 TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 DHE-DSS-AES256-SHA256 TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 DHE-DSS-AES128-GCM-SHA256 TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 DHE-DSS-AES256-GCM-SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 ECDHE-RSA-AES128-SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 ECDHE-RSA-AES256-SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ECDHE-RSA-AES256-GCM-SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 ECDHE-ECDSA-AES128-SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 ECDHE-ECDSA-AES256-SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 ECDHE-ECDSA-AES128-GCM-SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 ECDHE-ECDSA-AES256-GCM-SHA384 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 ECDHE-ECDSA-CAMELLIA128-SHA256 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 ECDHE-ECDSA-CAMELLIA256-SHA384 TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 ECDHE-RSA-CAMELLIA128-SHA256 TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 ECDHE-RSA-CAMELLIA256-SHA384