Garrison, Jim (ETW) wrote on Thu, Jun 14, 2012 at 10:49:47 -0700:
> > -----Original Message-----
> > From: Garrison, Jim (ETW) [mailto:jim.garri...@nike.com]
> > Sent: Wednesday, June 13, 2012 3:56 PM
> > To: users@subversion.apache.org
> > Subject: Newer SSL libraries and TLSv1.2 incompatibilities
> > 
> > Regarding my question in the thread titled "When connecting to an https
> > server force use of TLS or SSLv3?".
> > 
> > I asked that before I fully understood the problem, which is actually
> > due to a backwards incompatibility in the newest OpenSSL libraries
> > (1.0.1c) used by Subversion.  Essentially, the newest client library can
> > cause older servers to hang when it sends a TLSv1.2 handshake.
> > 
> > The release notes for OpenSSL 1.0.1c contain (changes between 1.0.1 and
> > 1.0.1a):
> > 
> >   *) Workarounds for some broken servers that "hang" if a client hello
> >      record length exceeds 255 bytes.
> > 
> >      1. Do not use record version number > TLS 1.0 in initial client
> >         hello: some (but not all) hanging servers will now work.
> >      2. If we set OPENSSL_MAX_TLS1_2_CIPHER_LENGTH this will truncate
> >         the number of ciphers sent in the client hello. This should be
> >         set to an even number, such as 50, for example by passing:
> >         -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 to config or Configure.
> >         Most broken servers should now work.
> >      3. If all else fails setting OPENSSL_NO_TLS1_2_CLIENT will disable
> >         TLS 1.2 client support entirely.
> > 
> > Is there any way, other than completely rebuilding svn locally, to use
> > these workarounds?
> 
> Please see 
> http://rt.openssl.org/Ticket/Display.html?id=2771&user=guest&pass=guest
> 
> This is going to cause major headaches for a lot of people.  OpenSSL client 
> versions 1.0.1 and later can and will cause earlier server versions to hang 
> at CLIENT HELLO.  There are options in the OpenSSL code to tailor the client 
> behavior to avoid this, but they require the client applications (i.e. 
> subversion) to support setting these options. For example
> 
>     ctx = SSL_CTX_new(...);
>     SSL_CTX_set_options(ctx, SSL_OP_NO_TLSv1_2);
> 
> What's the possibility of getting an enhancement to subversion to support 
> this in its server configuration?

Haven't read everything, but Subversion does not call SSL_CTX_new() at
all; its dependencies, libneon and/or libserf, do.

Reply via email to