加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在Java SSLEngine中设置自定义DH组以防止Logjam的攻击?

发布时间:2020-12-14 05:07:29 所属栏目:Java 来源:网络整理
导读:新的Logjam TLS攻击是基于常见的DH组. This link建议为每个服务器生成一个新的,自定义的2048位DH组. 如何在使用SSLEngine的Java服务器代码中设置自定义DH组? ETA:如果我只使用短暂的DH密码套件,即DHE或ECDHE,而不是DH或ECDH,那么我会安全吗?还是这个无关
新的Logjam TLS攻击是基于常见的DH组. This link建议为每个服务器生成一个新的,自定义的2048位DH组.

如何在使用SSLEngine的Java服务器代码中设置自定义DH组?

ETA:如果我只使用短暂的DH密码套件,即DHE或ECDHE,而不是DH或ECDH,那么我会安全吗?还是这个无关的?

解决方法

Java(JCE / JSSE)使用一些 well known DSA groups中的DH参数.JCE参数生成器仅允许生成大小在512到1024位(或2048)之间的组,但另一方面的JSSE实现只接受1024到2048之间的自定义大小.

这有一些影响,你不能使用任何自定义的大小,只有1024或2048(使用Java 8).请记住,Java 7仍然只使用768位作为服务器(或512可导出加密模式).

从版本8开始,Java服务器默认使用1024位.您可以使用jdk.tls.ephemeralDHKeySize = 2048将服务器端增加到2048位.见Customizing Size of Ephemeral DH Keys.

Java作为TLS客户端在旧版本中不太严格,并接受不安全的组.

更新:使用OpenJDK 8U65(JSSE)有一个安全属性jdk.tls.server.defaultDHEParameters可以定义有限域参数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读