[Ubuntu 8.10/LDAP/OpenSSL] TLS config

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • rrrandy
  • Registratie: Juli 2005
  • Laatst online: 27-06 13:00
Ik denk dat het topic hier het beste past.

Ik ben bezig met het opzetten van een testomgeving waarbij ik een LDAP server moet configureren om via TLS naar te verbinden. Daarvoor heb ik een certificaat met een private key. De private key is een RSA key:

code:
1
2
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,d922e6a1ed9f5d0b


In de config van de LDAP heb ik het volgende toegevoegd:

code:
1
2
3
4
TLSCipherSuite          HIGH:MEDIUM:+SSLv2
TLSCACertificateFile    /etc/openldap/ldap-cacerts.pem
TLSCertificateFile      /etc/openldap/ldap-cert.pem
TLSCertificateKeyFile   /etc/openldap/ldap-key.pem


Wanneer ik mijn LDAP start lukt dit niet omdat mijn OpenSSL de betreffende DES-EDE3-CBC RSA encryptie niet ondersteund:

code:
1
2
3
4
TLS: could not set cipher list HIGH:MEDIUM:+SSLv2.
main: TLS init def ctx failed: -1
slapd destroy: freeing system resources.
slapd stopped.


Dat zie ik ook terug wanneer ik de lijst ondersteunde ciphers opvraag, openssl ciphers -v:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
AES256-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
EDH-RSA-DES-CBC3-SHA    SSLv3 Kx=DH       Au=RSA  Enc=3DES(168) Mac=SHA1
EDH-DSS-DES-CBC3-SHA    SSLv3 Kx=DH       Au=DSS  Enc=3DES(168) Mac=SHA1
DES-CBC3-SHA            SSLv3 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=SHA1
DES-CBC3-MD5            SSLv2 Kx=RSA      Au=RSA  Enc=3DES(168) Mac=MD5 
DHE-RSA-AES128-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1
DHE-DSS-AES128-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(128)  Mac=SHA1
AES128-SHA              SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1
RC2-CBC-MD5             SSLv2 Kx=RSA      Au=RSA  Enc=RC2(128)  Mac=MD5 
RC4-SHA                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=SHA1
RC4-MD5                 SSLv3 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5 
RC4-MD5                 SSLv2 Kx=RSA      Au=RSA  Enc=RC4(128)  Mac=MD5 
EDH-RSA-DES-CBC-SHA     SSLv3 Kx=DH       Au=RSA  Enc=DES(56)   Mac=SHA1
EDH-DSS-DES-CBC-SHA     SSLv3 Kx=DH       Au=DSS  Enc=DES(56)   Mac=SHA1
DES-CBC-SHA             SSLv3 Kx=RSA      Au=RSA  Enc=DES(56)   Mac=SHA1
DES-CBC-MD5             SSLv2 Kx=RSA      Au=RSA  Enc=DES(56)   Mac=MD5 
EXP-EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH(512)  Au=RSA  Enc=DES(40)   Mac=SHA1 export
EXP-EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH(512)  Au=DSS  Enc=DES(40)   Mac=SHA1 export
EXP-DES-CBC-SHA         SSLv3 Kx=RSA(512) Au=RSA  Enc=DES(40)   Mac=SHA1 export
EXP-RC2-CBC-MD5         SSLv3 Kx=RSA(512) Au=RSA  Enc=RC2(40)   Mac=MD5  export
EXP-RC2-CBC-MD5         SSLv2 Kx=RSA(512) Au=RSA  Enc=RC2(40)   Mac=MD5  export
EXP-RC4-MD5             SSLv3 Kx=RSA(512) Au=RSA  Enc=RC4(40)   Mac=MD5  export
EXP-RC4-MD5             SSLv2 Kx=RSA(512) Au=RSA  Enc=RC4(40)   Mac=MD5  export


De certificaten zijn self signed, en kan ik mogelijk vervangen door andere certificaten met een encryptie die wel wordt ondersteund, maar dat is eigenlijk geen optie (straks zal het toch ergens anders weer wel met deze methode moeten werken).

Wat zijn de mogelijkheden voor mij? Kan ik op een of andere manier toch de DES-EDE3-CBC ondersteuning voor elkaar krijgen?

Ik heb aardig wat af zitten zoeken vandaag, maar veel bruikbare informatie heb ik niet kunnen vinden....

Acties:
  • 0 Henk 'm!

  • rrrandy
  • Registratie: Juli 2005
  • Laatst online: 27-06 13:00
Ben inmiddels weer aardig wat te weten gekomen. Het probleem blijkt anders te zijn dan verwacht.

Op Debian/Ubuntu systemen is het OpenLDAP package tegen Gnutls aangecompileerd in plaats van openssl. En uiteraard kent Gnutls een andere lijst van ondersteunde ciphers.

Het is me echter nog niet gelukt een cipher list te specificeren die compatible is met de openssl cipher list:

code:
1
HIGH:MEDIUM:+SSLv2


Informatie over dit onderwerp is schaars (misschien zoek ik verkeerd?).

Je zou zeggen dat wanneer ik de TLSCipherSuite in zijn geheel uit mijn slapd.conf verwijder, dat slapd dan in ieder geval zou moeten starten. Echter, wanneer ik dit doe krijg ik de volgende foutmelding:

Gestart met:
code:
1
sudo slapd -h 'ldap://127.0.0.1:389/ ldaps:/// ldapi:///' -g openldap -u openldap -f /etc/ldap/slapd.conf -d 255


Resultaat:
code:
1
2
3
main: TLS init def ctx failed: -207
slapd destroy: freeing system resources.
slapd stopped.


Andere foutmeldingen krijg ik niet. De foutcode zou erop moeten wijzen dat er iets niet in orde is met de file permissies. Mijn certificaten staan in /etc/openldap, met de volgende permissies:

code:
1
2
3
-rwx------ 1 openldap openldap 2050 2009-02-27 15:42 ldap-cacerts.pem
-rwx------ 1 openldap openldap 1046 2009-02-27 15:42 ldap-cert.pem
-rwx------ 1 openldap openldap  963 2009-02-27 15:42 ldap-key.pem


Uiteraard wordt slapd gestart als openldap user. Heb ook een chmod 777 geprobeerd om zeker te weten dat de permissies geen rol zouden spelen, maar helaas, ook dat heeft niet gewerkt....

Acties:
  • 0 Henk 'm!

  • rrrandy
  • Registratie: Juli 2005
  • Laatst online: 27-06 13:00
Kreeg net een ingeving en het werkt :D

Mijn key is pem encoded met passphrase. Nu heb ik de passphrase eraf gehaald en gaat het dus wel goed.

Het commando:

code:
1
openssl s_client -connect localhost:636 -showcerts


laat nu netjes het gebruikte certificaat zien.

Onder windows blijkt het overigens wel te werken, daar prompt slapd (versie 2.2 in ieder geval) je netjes om de passphrase in te voeren...

Voor de volledigheid nog even de manier waarop ik de passphrase heb verwijderd:

code:
1
openssl rsa -in encoded-key.pem -out clear-key.pem


Eenmaal de passphrase invoeren en clear-key.pem bevat je key zonder passphrase.

[ Voor 22% gewijzigd door rrrandy op 06-03-2009 10:14 ]