通过Tomcat的SSL / TLS – replace密钥库,仍然弱DH

我目前正在与顽固的SSL实施战斗。 我用一个密钥库replace了旧的密钥库,其中包括:

  • 来自公共CA的证书(没有更多的自我签名!)
  • 中间证书(godaddy)
  • 2048位长的证书/密钥,而不是旧的1024。

尽pipe如此,我仍然收到我的Chrome客户端的“弱diffie-hellman key”错误(Firefox至less现在挖了它,至less:D)。 我通过nmap做了一些testing来观察服务器是否愿意说话,并且假定检查出OK。

root@ubuntu14-en:~# nmap --script ssl-enum-ciphers -p 443 artifactory.mydomain.com Starting Nmap 6.40 ( http://nmap.org ) at 2015-09-10 08:41 CDT Nmap scan report for artifactory.mydomain.com (xxx.xx.x.xx) Host is up (0.00026s latency). PORT STATE SERVICE 443/tcp open https | ssl-enum-ciphers: | TLSv1.0: | ciphers: | TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA - strong | TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong | TLS_DHE_RSA_WITH_AES_256_CBC_SHA - strong | TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong | TLS_RSA_WITH_AES_128_CBC_SHA - strong | TLS_RSA_WITH_AES_256_CBC_SHA - strong | TLS_RSA_WITH_RC4_128_MD5 - strong | TLS_RSA_WITH_RC4_128_SHA - strong | compressors: | NULL | TLSv1.1: | ciphers: | TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA - strong | TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong | TLS_DHE_RSA_WITH_AES_256_CBC_SHA - strong | TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong | TLS_RSA_WITH_AES_128_CBC_SHA - strong | TLS_RSA_WITH_AES_256_CBC_SHA - strong | TLS_RSA_WITH_RC4_128_MD5 - strong | TLS_RSA_WITH_RC4_128_SHA - strong | compressors: | NULL | TLSv1.2: | ciphers: | TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA - strong | TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong | TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 - strong | TLS_DHE_RSA_WITH_AES_256_CBC_SHA - strong | TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 - strong | TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong | TLS_RSA_WITH_AES_128_CBC_SHA - strong | TLS_RSA_WITH_AES_128_CBC_SHA256 - strong | TLS_RSA_WITH_AES_256_CBC_SHA - strong | TLS_RSA_WITH_AES_256_CBC_SHA256 - strong | TLS_RSA_WITH_RC4_128_MD5 - strong | TLS_RSA_WITH_RC4_128_SHA - strong | compressors: | NULL |_ least strength: strong Nmap done: 1 IP address (1 host up) scanned in 1.42 seconds 

任何人都可以将自己的知识贡献给我如何将安全性提高到Chrome所期望的通用合适标准? 我怀疑这是愚蠢的,因为我需要更多地locking这些密码,但我认为“DHE_EXPORT”密码是要注意的密码。

非常感谢你提前。

除了禁用导出DHE密码套件外,您还需要使用2048位的Diffie-Helman组,而不是Tomcat可能使用的1024位。 相信一个拥有NSA资源的人可能会破坏1024位。 为此,请将-Djdk.tls.ephemeralDHKeySize=2048添加到Java或Catalina选项。 请注意,这只适用于Java 8或更高版本 – 如果您使用的是7(或更早版本),则需要升级。

而当你在这个时候,禁用RC4密码套件–RC4不再安全。

这些都没有专门针对“弱diffie-hellman钥匙”,但他们会帮助。

MD5哈希被破坏; 摆脱他们。

RC4密码弱/破碎; 摆脱他们。

SHA1(“SHA”)散列也被认为是弱的。 如果您的SSL证书(不是sslconfiguration中允许的密码)正在使用SHA1,则chrome将会投诉。 不过,我认为你不能摆脱SHA密码configuration,仍然支持TLS 1.0,所以你坚持这一点。

我build议禁用3DES也; 与AES相比非常慢,没有安全优势。