怎样将java安全级别_安全性 – 如何使用Java keytool生成新的2048位Diffie-Hellman参数?...

你不能用keytool做到这一点.首先,keytool根本不支持DH.其次,keytool不会为任何算法自己生成参数,只有私钥/密钥对.第三,当keytool生成密钥对时,它还会生成一个自签名证书(有时后来被“真正的”CA颁发的证书替换),并且由于DH不签名,因此无法为DH生成自签名证书.您可以编写一个非常简单(大约10行)的Java程序来生成DH参数.但它可能不会对你有任何好处,因为:

无论如何,Java都不接受DHE参数. JbossWS(Jboss webserver,后来的Wildfly)是Tomcat的一个分支,通常使用SSL / TLS,JSSE的Java实现.通过Java 7,JSSE使用自己的DHE参数,这些参数是768位,这是不可接受的弱点. (除了EXPSE套件,其中JSSE服从DH-512的RFC要求,这完全被破坏了,但是EXPORT套件在设计上完全被破坏了,并且在Java 7中默认禁用了.)Java 8 JSSE允许你控制DHE参数的大小,但不控制实际值.

您的(一些重叠)选项是:

启用ECDHE. Java 7及更高版本中的JSSE实现了ECDHE,它不像DHE那样进行预计算(通常)使用P-256,这足够强大. (虽然有些人不信任任何NIST ECC曲线,因为NIST一般受NSA影响,虽然我知道没有开源特别是ECC曲线中存在问题.)Java 6实际上有ECDHE的JSSE部分但只有在JVM具有ECC原语的加密“提供者”时才会启用它,而Java 6则没有. bcprov – * – 来自http://www.bouncycastle.org/的jdk15on是一系列Java加密原语(包括ECC)的JCE提供程序,因此如果将jar添加到JRE / lib / ext并将org.bouncycastle.jce.provider.BouncyCastleProvider添加到JRE中的列表中/lib/security/java.security(或在代码的早期某处做一个合适的Security.add / insertProvider())Java 6可以做ECDHE.当然,您是否应该使用任何Java 6仍然是一个问题.

几年前,在浏览器和其他客户端对ECDHE的支持是不确定的,但是今天AFAIK所有最新的浏览器都支持它,而不喜欢DHE – 也就是说,浏览器hello在DHE套件之前列出了ECDHE套件,所以如果服务器实现它们,它应该选择ECDHE.非浏览器客户端可能不是;测试是肯定的.

禁用DHE.您可以在Connector属性中配置密码列表以排除DHE密码;你在它的同时也排除了无用的staticDH和staticECDH,以及(单个)DES和(全部)“EXPORT”(如果存在)(Java 6).这意味着不进行ECHDE的浏览器和客户端将会遇到普通RSA而没有前向保密,但至少它们具有“当前”保密性.我不记得了,但我认为5.1 Connector配置仍然像$server / deploy / jbossweb / server.xml.

尝试原生. Tomcat,正如我所说的JbossWS的开头,可以选择使用“native”又称“APR”实现HTTPS(SSL / TLS),实际上是OpenSSL而不是JSSE.我已经在将此选项用于JbossWS方面取得了成功,并且不记得5.1.如果您的JbossWS具有可用的TC-native选项,并且它可以处理配置DH参数,那么使用openssl生成DH参数和JbossWS本机指令来配置它们.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值