[Pkg-openldap-devel] Bug#510346: new TLS_CIPHER_SUITE underdocumented

Neil Spring nspring at gmail.com
Wed Dec 31 18:11:26 UTC 2008


Package: libldap-2.4-2
Version: 2.4.11-1
Severity: normal


Please feel free to retitle; I don't know if this is a
documentation problem or a feature problem.

I'm trying my absolute hardest to get libldap to talk
ssl to ldaps://directory.umd.edu:636/ and haven't figured
it out.  I believe my inability to get it to work is just
documentation, but it works in old ldap (2.3.30-5+etch1)
presumably because openssl negotiates differently.

The problem I'm trying to solve:

% openssl s_client -connect directory.umd.edu:636

works.  (and thus, old libldap works fine, because openssl
can negotiate with the server.)

% gnutls-cli-debug -p 636 directory.umd.edu

works, and describes many features that the server doesn't
support.  e.g., TLS1.1 support.

% gnutls-cli -p 636 directory.umd.edu

fails; wireshark shows gnutls sending a TLS1.1 client hello
and the server dropping the connection.

% gnutls-cli --protocols SSL3.0 -p 636 directory.umd.edu

works; oddly, TLS1.0 does not.

With that knowledge, I can then:

% gnutls-cli --priority 'NORMAL:\!VERS-TLS1.1:\!VERS-TLS1.0' -p 636  
directory.umd.edu

So I'm confident that even if there's a bug in gnutls ability
to negotiate with this server, there should be a way for
me to configure gnutls through ldap.conf.

However, after putting that string into TLS_CIPHER_SUITE
(without escaping the !'s)

% ldapsearch -d 12 -H ldaps://directory.umd.edu/ uid=nspring
ldap_build_search_req ATTRS: supportedSASLMechanisms
TLS: could not set cipher list NORMAL:!VERS-TLS1.1:!VERS-TLS1.0.
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)

So that doesn't work; I then try setting TLS_CIPHER_SUITE
to TLS_DHE_RSA_3DES_EDE_CBC_SHA1 , which has alongside
it in gnutls-cli --list the note SSL3.0; unfortunately,
the client still sends a TLS1.1 client hello message that
the server does not care for.

What the heck am I doing wrong?

I'm certain that ldap.conf(5) must be updated in Debian
to no longer say:

        TLS_CIPHER_SUITE <cipher-suite-spec>
               Specifies  acceptable cipher suite and
               preference order.  <cipher-suite-spec> should
               be a cipher specification for OpenSSL,
               e.g., HIGH:MEDIUM:+SSLv2.

It would be cool if README.Debian had a small note about
this relatively debian-specific configuration. (which I'm
in favor of, don't get me wrong; that's just where I look
for help when I know there's a Debian-ism to deal with.)

After writing this up, I found #466477, which describes
a configuration TLSCipherSuite, which seems to be part of
slapd.conf, which I don't think I have, and asserts that
openldap "supports cipher priority strings", which it
doesn't appear to.   I checked upstream 2.4.13; it doesn't
appear to have anything better.

Listing the ciphers to support is not sufficient to get
gnutls to talk to servers like this one.

Thanks for your hard work.  I'd be happy to test a
pre-release if there's a patch for passing a priority
string to the gnutls library.  I could try to write one,
or better yet test one out, but I don't know that I
understand the problem enough to know someone else doesn't
have a different plan.

thanks,
-neil


-- System Information:
Debian Release: 5.0
   APT prefers testing
   APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-1-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libldap-2.4-2 depends on:
ii  libc6                    2.7-16          GNU C Library: Shared  
libraries
ii  libgnutls26              2.4.2-4         the GNU TLS library -  
runtime libr
ii  libsasl2-2               2.1.22.dfsg1-23 Cyrus SASL -  
authentication abstra

libldap-2.4-2 recommends no packages.

libldap-2.4-2 suggests no packages.

-- no debconf information






More information about the Pkg-openldap-devel mailing list