Estoy usando el proveedor RSA BSAFE Crypto-J 6.2 JCE en Java como servidor SSL / TLS (en el modo compatible con FIPS 140 para SunJSSE).
Parece que al menos Chrome y Firefox no pueden establecer una conexión si se usa TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
( 0xc02b
).
El error en Firefox al conectarse al servidor es: " sec_error_unsupported_elliptic_curve
"
Con el mensaje de error como sugerencia, miré el apretón de manos (usando Wireshark). En el "Cliente Hola" veo 3 curvas:
Elliptic curve: secp256r1 (0x0017)
Elliptic curve: secp384r1 (0x0018)
Elliptic curve: secp521r1 (0x0019)
En el mensaje correspondiente "Hola del servidor" veo el valor de la curva con el nombre 0xffff
Named Curve: Unknown (0xffff)
Como resultado, el navegador finaliza la conexión con el mensaje de error mencionado anteriormente.
Si utilizo Java estándar en el lado del servidor (no hay un proveedor BSAFE Crypto-J), la curva nombrada en el "Hola del servidor" es:
Named Curve: secp256r1 (0x0017)
... y el apretón de manos termina con éxito.
- La pregunta ahora es, ¿cuál es el significado si
0xffff
? ¿Significa que el servidor no comprende el conjunto de curvas sugerido por el cliente? Busqué en la sección 5.1.1 de RFC4492 pero no pude encontrar nada sobre el valor de0xffff
- Si alguien tiene experiencia con RSA BSAFE Crypto-J y Java ejecutándose en modo FIPS. Cualquiera que haya encontrado ese problema y haya encontrado una solución.