sockets - Forbid SSL rehandshake in Java (JSSE)? -
is there way forbid re-handshake in java's ssl libraries on client , server side?
i've searched javadocs of sslcontext, sslparameters, sslsocket, sslserversocket , according factories have not found solution.
i don't know of (simple) solution, have found bad one.
it turns out in 2009, security flaw found in ssl protocol affected ssl renegotiation (or rehandshake). java team addressed in 2 phases (as described here.). first phase disable renegotiation ... , done in java 6 patch 19. second phase implement protocol changes renegotiation specified in new rfc.
so, 1 way disable ssl renegotiation downgrade jvm java 6 patch 19.
frankly, think bad idea:
- you winding version of java has been eol'd.
- you backing out of whole stack of security patches.
- if you've started using java 7 or java 8 language / library features, in work.
however, if digs out of deep hole, might consider it.
well, looked @ source code of sslengineimpl
(here), , cannot see straightforward solution based on that. kickstarthandshake
method.
there couple of properties enable / disable unsafe forms of renegotiation (for compatibility), there no properties turn off entirely. , since method of work private
, don't think disable renegotiation functionality overriding methods in subclass.
so leaves copying code, modifying disable renegotiation, changing package names , creating alternative "provider" ssl engine.
and confuse things further ... there implementation of ssl protocol in sslsocketimpl
class (here). didn't try figure out of 2 implementations 1 "by default".
Comments
Post a Comment