Java JVM Hotspot ephemeralDHKeySize

时间:2016-04-01 09:44:49

标签: java diffie-hellman

我正在尝试将DH密钥大小从1024位增加到2048位,根据这个问题:How to expand DH key size to 2048 in java 8

然而,它似乎不起作用。相关信息:

java -version
java version "1.8.0_45" 
Java(TM) SE Runtime Environment (build 1.8.0_45-b14) 
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

System.out.println(Security.getProperty("jdk.tls.ephemeralDHKeySize"));
2048

但是,如果我从客户端连接到该服务器,它使用1024位:

openssl s_client -connect server:port -cipher "EDH" 2>/dev/null | grep -ie "Server .* key"
Server Temp Key: DH, 1024 bits

知道我还能做什么吗?

1 个答案:

答案 0 :(得分:1)

我担心您正在调用Security.getProperty("jdk.tls.ephemeralDHKeySize")来检查DH密钥大小。 jdk.tls.ephemeralDHKeySize属性不是安全属性,它是系统属性,这使我怀疑您没有正确设置它。如果您将其设置为:

Security.setProperty("jdk.tls.ephemeralDHKeySize", "2048"); // don't do this
然后那就不行了。尝试传递:

-Djdk.tls.ephemeralDHKeySize=2048

在程序的命令行中,或者像这样设置:

System.setProperty("jdk.tls.ephemeralDHKeySize", "2048");
代码中的