A negociação TLS falhou em ldaps: // - alerta sslv3 registro inválido mac

A negociação TLS falhou em ldaps: // - alerta sslv3 registro inválido mac

Estamos enfrentando um problema em um de nossos ambientes openldap, ao permitir consultas seguras via ldaps:// nosso ambiente de integração continua retornando o seguinte erro para o comando ldapsearch:

SSL3_READ_BYTES:sslv3 alert bad record mac

enquanto o mesmo comando apontando para nosso ambiente de produção se conecta corretamente e retorna entradas correspondentes. A mesma consulta no ambiente de integração pela porta 389 e ldap:// também funciona.

Ambos são executados nas seguintes versões:

  • Servidor Red Hat Enterprise Linux versão 6.2 (Santiago)
  • OpenLDAP: slapd 2.4.23
  • OpenSSL 1.0.0-fips

Cada um possui seu próprio certificado, assinado pela mesma CA.

Em nosso ambiente de integração:

/etc/openldap/slapd.d/cn\=config.ldif :

olcTLSCACertificateFile: /etc/openldap/certs/root_CA.pem
olcTLSCertificateFile: /etc/openldap/certs/openldapint.pem
olcTLSCertificateKeyFile: /etc/openldap/certs/openldapint.key

E no mesmo arquivo, ambiente de produção:

olcTLSCACertificateFile: /etc/openldap/certs/root_CA.pem
olcTLSCertificateFile: /etc/openldap/certs/openldapPRO.pem
olcTLSCertificateKeyFile: /etc/openldap/certs/openldap.key

E podemos verificar esse problema fazendo o seguinte:

$ openssl s_client -connect localhost:636 -showcerts -CApath /etc/openldap/cert/root_CA.pem
CONNECTED(00000003)
depth=1 L = (...), OU = (...), CN = (...)
verify error:num=19:self signed certificate in certificate chain
verify return:0
139866277001032:error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac:s3_pkt.c:1193:SSL alert number 20
139866277001032:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:184:
---

Alguma idéia sobre o que há de errado e como configurar nosso LDAPS:// seguro para OpenLDAP?

Obrigado!

Responder1

SSL3_READ_BYTES:sslv3 alerta registro inválido mac

Pelo que parece, é um bug do OpenSSL. VerBug Debian 212410eBug 338006 do Debian.

Aqui está um problema semelhante para 1.0.0 sendo discutido na lista de discussão OpenSSL:Erro OpenSSL SSL_Accept.

Houve um bug AES-NI que produziu uma mensagem semelhante, mas foi descoberto em 1.0.1c e corrigido em 1.0.1d (e afetou TLS 1.1 e TLS 12) (veja oREGISTRO DE ALTERAÇÕES).

Acho que as recomendações padrão provavelmente se aplicam: certifique-se de que você e o outro endpoint estejam usando o OpenSSL mais recente.

informação relacionada