Sto usando il provider JCE RS2 BSAFE Crypto-J 6.2 in Java come server SSL / TLS (in modalità FIPS 140 Compliant per SunJSSE).
Sembra che almeno Chrome e Firefox non possano stabilire una connessione se viene utilizzato TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
( 0xc02b
).
L'errore in Firefox durante la connessione al server è: " sec_error_unsupported_elliptic_curve
"
Con il messaggio di errore come suggerimento ho guardato nell'handshake (usando Wireshark). Nel "Client Hello" vedo 3 curve:
Elliptic curve: secp256r1 (0x0017)
Elliptic curve: secp384r1 (0x0018)
Elliptic curve: secp521r1 (0x0019)
Nel messaggio "Server Hello" corrispondente, vedo il valore della curva con nome 0xffff
Named Curve: Unknown (0xffff)
Di conseguenza, il browser interrompe la connessione con il messaggio di errore sopra indicato.
Se utilizzo Java standard sul lato server (nessun provider BSAFE Crypto-J) la curva denominata nel "Server Hello" è:
Named Curve: secp256r1 (0x0017)
... e l'handshake termina con successo.
- La domanda ora è, qual è il significato se
0xffff
? Significa che il server non comprende l'insieme di curve suggerito dal client? Ho esaminato la sezione 5.1.1 di RFC4492 ma non ho trovato nulla sul valore di0xffff
- Se qualcuno ha esperienza con RSA BSAFE Crypto-J e Java in esecuzione in modalità FIPS. Qualcun altro che si è imbattuto in quel problema e ha trovato una soluzione.