TLS上的新Logjam攻击基于常见的DH组。该链接建议为每个服务器生成一个新的自定义2048位DH组。
如何在使用SSLEngine的Java服务器代码中设置自定义DH组?
ETA:如果我仅使用短暂的DH密码套件(即名称中带有DHE或ECDHE而不是DH或ECDH的套件),我会安全吗?还是不相关?
Java(JCE / JSSE)使用来自一些著名的DSA组的DH参数。JCE参数生成器仅允许生成大小在512位和1024位(或2048位)之间的组,但是另一边的JSSE实现仅接受1024位和2048位之间的自定义大小。
这会影响您无法使用任何自定义大小,只能使用1024或2048(对于Java 8)。请记住,Java 7仍仅使用768位作为服务器(或在可导出加密模式下为512位)。
从版本8开始,Java服务器默认使用1024位。您可以使用将服务器端增加到2048位jdk.tls.ephemeralDHKeySize=2048
。请参阅自定义临时DH键的大小。
Java作为TLS客户端在较旧的版本中不太严格,并且接受不安全的组。
更新:对于OpenJDK 8U65(JSSE),有一个安全属性jdk.tls.server.defaultDHEParameters
可以定义finit-field参数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句