我使用Java中的BSAFE Crypto-J6.2JCE提供程序作为SSL/TLS服务器(SunJSSE采用FIPS 140兼容模式)。
如果使用TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b),至少Chrome和Firefox无法建立连接。
火狐连接到服务器时的错误是:"sec_error_unsupported_elliptic_curve“
以错误消息作为提示,我查看了握手(使用Wireshark)。在“客户你好”中,我看到了3条曲线:
Elliptic curve: secp256r1 (0x0017)
Elliptic curve: secp384r1 (0x0018)
Elliptic curve: secp521r1 (0x0019)在相应的"Server“消息中,我看到了命名曲线值0xffff
Named Curve: Unknown (0xffff)因此,浏览器终止与上述错误消息的连接。
如果我在服务器端使用标准Java (没有BSAFE Crypto-J提供程序),"Server“中的命名曲线是:
Named Curve: secp256r1 (0x0017)..。握手就成功了。
0xffff是什么意思?这是否意味着服务器不理解客户端建议的一组曲线?我查看了RFC4492的5.1.1节,但没有找到任何关于0xffff值的内容发布于 2015-08-20 07:07:02
现在的问题是,如果0 0xffff是什么意思?这是否意味着服务器不理解客户端建议的一组曲线?
我不认为这是正式意义上的。但我有一种感觉,即执行工作仍然是出于这一目的。
标识符0xFFFF (65535小数点)是标记为Unassigned在IANA官方登记处。
也就是说,这也意味着它不是Reserved,也不是以任何其他方式标记为特殊的。
TLS 1.2 RFC包含枚举语法的定义:
RFC 5246 -传输层安全协议,版本1.2,第4.5款数字:
One may optionally specify a value without its associated tag to
force the width definition without defining a superfluous element.
In the following example, Taste will consume two bytes in the data
stream but can only assume the values 1, 2, or 4.
enum { sweet(1), sour(2), bitter(4), (32000) } Taste;我看RFC4492 5.1.1节的意思也是一样的。
发布于 2015-08-19 17:37:24
查看您在文章中提到的RFC4492 5.1.1节,我们看到以下结构:
enum {
sect163k1 (1), sect163r1 (2), sect163r2 (3),
sect193r1 (4), sect193r2 (5), sect233k1 (6),
sect233r1 (7), sect239k1 (8), sect283k1 (9),
sect283r1 (10), sect409k1 (11), sect409r1 (12),
sect571k1 (13), sect571r1 (14), secp160k1 (15),
secp160r1 (16), secp160r2 (17), secp192k1 (18),
secp192r1 (19), secp224k1 (20), secp224r1 (21),
secp256k1 (22), secp256r1 (23), secp384r1 (24),
secp521r1 (25),
reserved (0xFE00..0xFEFF),
arbitrary_explicit_prime_curves(0xFF01),
arbitrary_explicit_char2_curves(0xFF02),
(0xFFFF)
} NamedCurve;在我看来,0xFFFF是一个保留值,是(可能是错误的?)发送以指示服务器不支持ECC,或指示曲线数组的结束。
BSAFE Crypto提供程序可能没有正确配置。
发布于 2015-12-07 08:30:29
我也遇到了同样的问题,所有东西都在使用Java 7,当我将JRE升级到Java8时,我开始得到这个错误sec_error_unsupported_elliptic_curve。
我通过将JVM参数com.sun.net.ssl.enableECC设置为false来解决这个问题。
-Dcom.sun.net.ssl.enableECC=false
https://security.stackexchange.com/questions/97259
复制相似问题