如果在JDK 1.7 JVM中禁用ECC,将使用哪种加密?

6

我们被这个Java bug所咬了

http://bugs.sun.com/view_bug.do?bug_id=7016078

我们采用的解决方案是向JVM添加此参数-Dcom.sun.net.ssl.enableECC=false。现在的问题是,如果通过上述参数禁用ECC,将使用什么加密方式?显然,我认为它会回退到RSA。如果是这样,在协商期间将使用ECC的地方,代替ECC会使用什么?
1个回答

5
您可以使用-Djava.net.debug=ssl来查看此内容,位于ClientHello部分。
正常情况下:
密码套件:[TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_RC4_128_SHA,TLS_ECDH_ECDSA_WITH_RC4_128_SHA,TLS_ECDH_RSA_WITH_RC4_128_SHA,TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_RC4_128_MD5,TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
使用-Dcom.sun.net.ssl.enableECC=false后:
密码套件:[TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_RC4_128_MD5,TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
(这是在Windows上 - 我注意到在Red Hat上的OpenJDK上没有任何区别)

我已经在我的JVM中添加了这个标志,但是我无法看到任何这样的日志输出 :( 当JVM启动时它会被打印出来吗?还是应该执行任何SSL相关的活动才能打印出来? - Venkat
实际上,当我进行SSL活动时,使用-Djavax.net.debug=ssl它起作用了。感谢@artbristol的帮助。 - Venkat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接