RFR: 8061798: Add support for TLS_FALLBACK_SCSV

Xuelei Fan xuelei.fan at oracle.com
Tue Feb 3 14:18:31 UTC 2015


On 1/29/2015 5:59 PM, Florian Weimer wrote:
> On 01/29/2015 04:39 AM, Xuelei Fan wrote:
>> Hi Florian,
>>
>> Thanks for contribute this patch to OpenJDK.
>>
>> The draft of TLS_FALLBACK_SCSV is moving pretty fast.  Would you mind
>> wait for the integration until it becomes an official RFC in order to
>> mitigate the potential compatibility impact?
> 
> The RFC is basically set in stone because code implementing it has
> already been shipped.  I don't like the specification, and I don't like
> how it happened.  But practically speaking, it's a done deal, even if
> the IETF end up not publishing the RFC (which is extremely unlikely
> because an RFC is the only way to get the SCSV code point reservation).
> 
We may still have a few months to address this feature of JDK 9. I think
it might not be bad to wait for more progress of this RFC proposal, in
case the spec gets updates unexpectedly.

>> I looked back the approach we used to support
>> TLS_EMPTY_RENEGOTIATION_INFO_SCSV (RFC 5746).
>> TLS_EMPTY_RENEGOTIATION_INFO_SCSV is treated as a cipher suite.
>> Application can configure to enabled or disable this special cipher
>> suite as normal:
>>     SSLSocket.setEnabledCipherSuites(String[] suites)
>>     SSSEngine.setEnabledCipherSuites(String[] suites)
>>
>> What do you think if we use TLS_FALLBACK_SCSV as a cipher suite? If the
>> enabled cipher suite list contains this cipher suites, client would send
>> this cipher suite in ClientHello request.
> 
> We absolutely have to prevent that application developers set this SCSV
> by accident.  Developers feel tempted to set TLS_FALLBACK_SCSV to
> increase security, but this is very wrong.  Things will appear to work
> just fine right now, but if the server side ever upgrades to TLS 1.3,
> the handshake will fail to work (I called this a “time bomb” in the IETF
> TLS WG discussion, because that's what it is).  Questions on the OpenSSL
> mailing list (and misleading advice in response) show that this is a
> real problem.
> 
> My hope is that with a new API, the risk that developers enable this
> accidentally is reduced.  It makes it also more transparent to code reviews.
> 
It depends.  In other side, as would decrease the transparent for system
administrators.

>> If it is OK, may not need to define new public APIs any more.  As make
>> it possible if this implementation is needed to backport to previous
>> releases (In general, no APIs changes are allowed in JDK update releases).
> 
> I plan to backport only the server part, the client part is mostly there
> for testing purposes.
> 
I would suggest to keep the JSSE APIs simple and small.  If an public
API is required to turn on/off TLS_FALLBACK_SCSV, using cipher suite is
an easy-to-use approach.

Thanks,
Xuelei



More information about the security-dev mailing list