[Pkg-openldap-devel] Bug#462588: Bug#462588: Bug#462588: Same problem

Steve Langasek vorlon at debian.org
Tue Jan 29 19:09:32 UTC 2008


On Sat, Jan 26, 2008 at 12:33:28PM +0100, T.A. van Roermund wrote:
> 	# all cipher suites as currently supported by gnutls,
> 	# constructed using command:
> 	#   gnutls-cli -l | grep -E "^TLS" | cut -d\  -f1 | xargs echo
> 	TLSCipherSuite TLS_ANON_DH_ARCFOUR_MD5 TLS_ANON_DH_3DES_EDE_CBC_SHA1 
> TLS_ANON_DH_AES_128_CBC_SHA1 TLS_ANON_DH_AES_256_CBC_SHA1 
> TLS_PSK_SHA_ARCFOUR_SHA1 TLS_PSK_SHA_3DES_EDE_CBC_SHA1 
> TLS_PSK_SHA_AES_128_CBC_SHA1 TLS_PSK_SHA_AES_256_CBC_SHA1 
> TLS_DHE_PSK_SHA_ARCFOUR_SHA1 TLS_DHE_PSK_SHA_3DES_EDE_CBC_SHA1 
> TLS_DHE_PSK_SHA_AES_128_CBC_SHA1 TLS_DHE_PSK_SHA_AES_256_CBC_SHA1 
> TLS_SRP_SHA_3DES_EDE_CBC_SHA1 TLS_SRP_SHA_AES_128_CBC_SHA1 
> TLS_SRP_SHA_AES_256_CBC_SHA1 TLS_SRP_SHA_DSS_3DES_EDE_CBC_SHA1 
> TLS_SRP_SHA_RSA_3DES_EDE_CBC_SHA1 TLS_SRP_SHA_DSS_AES_128_CBC_SHA1 
> TLS_SRP_SHA_RSA_AES_128_CBC_SHA1 TLS_SRP_SHA_DSS_AES_256_CBC_SHA1 
> TLS_SRP_SHA_RSA_AES_256_CBC_SHA1 TLS_DHE_DSS_ARCFOUR_SHA1 
> TLS_DHE_DSS_3DES_EDE_CBC_SHA1 TLS_DHE_DSS_AES_128_CBC_SHA1 
> TLS_DHE_DSS_AES_256_CBC_SHA1 TLS_DHE_RSA_3DES_EDE_CBC_SHA1 
> TLS_DHE_RSA_AES_128_CBC_SHA1 TLS_DHE_RSA_AES_256_CBC_SHA1 
> TLS_RSA_NULL_MD5 TLS_RSA_EXPORT_ARCFOUR_40_MD5 TLS_RSA_ARCFOUR_SHA1 
> TLS_RSA_ARCFOUR_MD5 TLS_RSA_3DES_EDE_CBC_SHA1 TLS_RSA_AES_128_CBC_SHA1 
> TLS_RSA_AES_256_CBC_SHA1

> Before, using OpenSSL, everything worked perfectly. Now, LDAPS is
> completely broken.

Well, I can reproduce the problem when using this value for TLSCipherSuite.
But why would you set this value, rather than leaving TLSCipherSuite blank
to use the default?  I don't see the point of listing *all* the cipher types
if you don't intend to exclude some of them.

Anyway, the documented syntax for TLSCipherSuite is "$cipher1:$cipher2", not
"$cipher1 $cipher2"; but setting such values gives me a hang on startup
(which should be investigated).

I see that if I leave the cipher list blank, gnutls-cli negotiates
TLS_RSA_AES_256_CBC_SHA; so if I set TLSCipherSuite TLS_RSA_AES_256_CBC_SHA,
it works just fine.

The full list of ciphers that gnutls clients appear to negotiate by default
is:

  TLS_DHE_RSA_AES_256_CBC_SHA, TLS_DHE_RSA_AES_128_CBC_SHA,
  TLS_DHE_RSA_3DES_EDE_CBC_SHA, TLS_DHE_DSS_AES_256_CBC_SHA,
  TLS_DHE_DSS_AES_128_CBC_SHA, TLS_DHE_DSS_3DES_EDE_CBC_SHA,
  TLS_DHE_DSS_RC4_128_SHA, TLS_RSA_AES_256_CBC_SHA, TLS_RSA_AES_128_CBC_SHA,
  TLS_RSA_3DES_EDE_CBC_SHA, TLS_RSA_RC4_128_SHA, TLS_RSA_RC4_128_MD5

So if you don't want to use the default cipher settings, you can perhaps
choose one of these ciphers individually that meets your needs.

The fact that ldap_pvt_tls_set_option() hangs indefinitely when given a list
of more than one cipher is certainly a bug which should be fixed.

I'm not sure if we should also try to migrate the OpenSSL-specific cipher
specs to GNUTLS equivalents as part of the package upgrade.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org





More information about the Pkg-openldap-devel mailing list