A desaprobación do certificado raíz de AddTrust provoca fallos nos sistemas OpenSSL e GnuTLS

O 30 de maio caducou o período de validez de 20 anos do certificado raíz Engadir confianzaQue aplicado para xerar un cruzado en certificados dunha das maiores autoridades de certificación Sectigo (Comodo). A sinatura cruzada permitiu a compatibilidade con dispositivos legados que non tiñan o novo certificado raíz USERTRust engadido ao seu almacén de certificados raíz.

A desaprobación do certificado raíz de AddTrust provoca fallos nos sistemas OpenSSL e GnuTLS

Teoricamente, a terminación do certificado raíz de AddTrust só debería levar a unha violación da compatibilidade cos sistemas legados (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9, etc.), xa que o segundo certificado raíz utilizado na sinatura cruzada permanece. navegadores válidos e modernos téñeno en conta ao comprobar a cadea de confianza. Na práctica apareceu Problemas coa verificación de sinatura cruzada en clientes TLS que non son de navegador, incluídos os baseados en OpenSSL 1.0.x e GnuTLS. Xa non se establece unha conexión segura cun erro que indica que o certificado está desactualizado se o servidor está a usar un certificado Sectigo ligado por unha cadea de confianza ao certificado raíz de AddTrust.

Se os usuarios dos navegadores modernos non notaron a obsolescencia do certificado raíz de AddTrust ao procesar certificados Sectigo con sinatura cruzada, entón comezaron a aparecer problemas en varias aplicacións de terceiros e controladores do lado do servidor, o que provocou violación traballar moitas infraestruturas que utilizan canles de comunicación cifradas para a interacción entre compoñentes.

Por exemplo, houbo os problemas con acceso a algúns repositorios de paquetes en Debian e Ubuntu (apt comezou a xerar un erro de verificación do certificado), as solicitudes dos scripts que usaban as utilidades "curl" e "wget" comezaron a fallar, observáronse erros ao usar Git, violado A plataforma de transmisión de Roku está funcionando, xa non se chama aos xestores raia и DataDog, comezou ocorren accidentes nas aplicacións Heroku, parou Os clientes OpenLDAP conéctanse, detéctanse problemas co envío de correo a servidores SMTPS e SMTP con STARTTLS. Ademais, obsérvanse problemas en varios scripts Ruby, PHP e Python que usan un módulo cun cliente http. Problema do navegador afecta Epiphany, que deixou de cargar listas de bloqueo de anuncios.

Os programas Go non se ven afectados por este problema porque Go ofrece propia implementación TLS.

Supoñíaseque o problema afecta a versións de distribución máis antigas (incluíndo Debian 9, Ubuntu 16.04, RHEL 6/7) que usan ramas OpenSSL problemáticas, pero o problema manifestouse tamén cando o xestor de paquetes APT se executa nas versións actuais de Debian 10 e Ubuntu 18.04/20.04, xa que APT usa a biblioteca GnuTLS. O meollo do problema é que moitas bibliotecas TLS/SSL analizan un certificado como unha cadea lineal, mentres que segundo o RFC 4158, un certificado pode representar un gráfico circular distribuído dirixido con múltiples ancoraxes de confianza que hai que ter en conta. Sobre este fallo en OpenSSL e GnuTLS foi é coñecido durante moitos anos. En OpenSSL o problema foi solucionado na rama 1.1.1 e en gnuTLS permanece sen corrixir.

Como solución alternativa, suxírese que elimine o certificado "AddTrust External CA Root" do almacén do sistema (por exemplo, elimine de /etc/ca-certificates.conf e /etc/ssl/certs e, a continuación, execute "update-ca". -certificates -f -v"), despois de que OpenSSL comeza a procesar normalmente certificados asinados cruzados coa súa participación. Ao usar o xestor de paquetes APT, pode desactivar a verificación do certificado para solicitudes individuais baixo o seu propio risco (por exemplo, "apt-get update -o Acquire::https::download.jitsi.org::Verify-Peer=false") .

Para bloquear o problema en Fedora и RHEL Proponse engadir o certificado AddTrust á lista negra:

trust dump —filter «pkcs11:id=%AD%BD%98%7A%34%B4%26%F7%FA%C4%26%54%EF%03%BD%E0%24%CB%54%1A;type=cert» \
> /etc/pki/ca-trust/source/blacklist/addtrust-external-root.p11-kit
extracto update-ca-trust

Pero este método non funciona para GnuTLS (por exemplo, un erro de verificación do certificado segue aparecendo ao executar a utilidade wget).

No lado do servidor podes cambiar a orde listando os certificados na cadea de confianza enviada polo servidor ao cliente (se o certificado asociado con "AddTrust External CA Root" se elimina da lista, a verificación do cliente terá éxito). Para comprobar e xerar unha nova cadea de confianza, pode utilizar o servizo whatsmychaincert.com. Sectigo tamén fornecido certificado intermedio alternativo con sinatura cruzada "Servizos de certificado AAA“, que terá validez ata 2028 e manterá a compatibilidade con versións antigas do SO.

Ademais: problema tamén aparece en LibreSSL.

Fonte: opennet.ru

Engadir un comentario