【发布时间】:2016-10-04 17:53:21
【问题描述】:
这是我的 Java ssl 服务器的代码。 ctx 是使用服务器密钥库初始化的 SSLContext。
public SSLEngine createSSLEngine() {
SSLEngine sslEngine = ctx.createSSLEngine();
String[] ciphersuites = new String[]{
"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384",
"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"
};
sslEngine.setEnabledCipherSuites(ciphersuites);
sslEngine.setUseClientMode(false);
return sslEngine;
}
我用 cipherscan (https://github.com/jvehent/cipherscan) 对其进行了测试,密码套件看起来不错,但服务器支持所有可能的椭圆曲线 (sect163k1, sect163r1, sect163r2, sect193r1, sect193r2, sect233k1, sect233r1, sect239k1, 21,31, sect283k1, sect283k1, sect283k1, sect283k1, sectkr4 sect409r1, sect571k1, sect571r1, secp160k1, secp160r1, secp160r2, secp192k1, prime192v1, secp224k1, secp224r1, secp256k1, prime256v1, secp384r1, secp521r1)。
有没有办法禁用所有曲线,除了像 secp384r1 这样的强曲线?
【问题讨论】: