ssl - Java 6 ECDHE Cipher Suite Support -


the java cryptography architecture standard algorithm name documentation page java 6 lists ecdhe cipher suites. expect supported in java 6. yet neither ootb java 6 nor addition of jce unlimited strength policy files enabling them.

the book bulletproof ssl , tls indicates java 6 supports ecdhe, caveat:

enable , prioritize ecdhe suites on server. java 6 , 7 clients support these, , happily use them. (but note java 6 must switch using v3 handshake in order utilize ecdhe suites @ client level.)

i'm assuming v3 handshake means sslv3? haven't tried if works, sslv3 not viable option due poodle vulnerability.

what missing?

the ssl/tls implementation "jsse" in java 1.6 , later supports ecdhe suites if there available (jce) provider needed ecc primitives. java 1.6 ootb not include such ecc provider, can add one. java 7 , 8 do include sunecc provider.

this seems hot topic today. see https://security.stackexchange.com/questions/74270/which-forward-secrecy-cipher-suites-are-supported-for-tls1-0-protocols , https://superuser.com/questions/848698/testing-cipher-suite-using-openssl-for-tomcat-server-is-resulting-in-wrong-manne (which, suprisingly me, migrated security).

ristic's book undoubtedly means v3 format clienthello. there major format change between ssl2 , ssl3, , ssl2 clienthello can't represent data (particularly extensions) ecc. versions of tls (to date) use same format ssl3, (importantly) different contents. in oughties ssl clients used ssl2 format clienthello content allowing upgrade ssl3 , tls1.0 in order succeed against both/all servers, because many ssl2 still in use.

java 1.6 client circa 2006 transitional -- default uses ssl2 format specifying versions tls1.0, if server agrees version ssl2 , not higher, client aborts exception saying in effect "ssl2 not secure". controlled pseudo-protocol string sslv2hello, on java 1.6 client should .setenabledprotocols remove/exclude that.

java 7 , 8 still implement sslv2hello no longer enable default, v3 format used default, or long specify protocols (all) ssl3 or better. 7 , 8 implement tls1.1 , 1.2 6 did not, although 8 enables them in client default. should specify sslv2hello if connecting way-old ssl2-only servers -- of course should try hard not @ all.


Comments

Popular posts from this blog

python - mat is not a numerical tuple : openCV error -

c# - MSAA finds controls UI Automation doesn't -

wordpress - .htaccess: RewriteRule: bad flag delimiters -