Em 30 de maio, expirou o prazo de 20 anos do certificado raiz , que para a criação de assinatura cruzada (cross-signed) nos certificados de um dos maiores centros de certificação, a Sectigo (Comodo). A assinatura cruzada permitia garantir a compatibilidade com dispositivos antigos, cujo repositório de certificados raiz não tinha o novo certificado raiz USERTrust adicionado.
Teoricamente, a expiração do certificado raiz AddTrust deveria levar apenas a uma perda de compatibilidade com sistemas antigos (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9, etc.), já que o segundo certificado raiz usado na assinatura cruzada permanece vigente e os navegadores modernos o consideram na verificação da cadeia de confiança. Na prática detectados problemas na verificação da assinatura cruzada em clientes TLS que não usam navegadores, incluindo aqueles baseados em OpenSSL 1.0.x e GnuTLS. A conexão segura deixou de ser estabelecida, resultando em um erro de expiração de certificado, se o servidor usa um certificado Sectigo vinculado à cadeia de confiança do certificado raiz AddTrust.
Embora os usuários de navegadores modernos não tenham notado a expiração do certificado raiz AddTrust ao processar certificados assinados cruzadamente da Sectigo, começaram a surgir problemas em vários aplicativos de terceiros e manipuladores de servidor, levando a de muitas infraestruturas que usam canais criptografados para interação entre componentes.
Por exemplo, houve acesso obstruído a alguns repositórios de pacotes no Debian e Ubuntu (o apt começou a gerar erro de verificação de certificado), houve falhas em chamadas de scripts usando as ferramentas ‘curl’ e ‘wget’, e erros foram observados ao usar o Git, problemas na plataforma de streaming Roku, os manipuladores deixaram de ser chamados e , começaram em aplicações Heroku, conectar, problemas foram identificados no envio de e-mails para servidores SMTPS e SMTP com STARTTLS. Além disso, problemas foram observados em vários scripts em Ruby, PHP e Python que utilizam um módulo de cliente HTTP. Nos navegadores, o problema Epiphany, em que as listas de bloqueio de anúncios deixaram de carregar.
Programas escritos em Go não são afetados pelo problema, pois no Go é oferecido TLS.
, que o problema afeta versões antigas de distribuições (incluindo Debian 9, Ubuntu 16.04, ) em que são utilizadas ramificações problemáticas do OpenSSL, mas o problema também ao trabalhar com o gerenciador de pacotes APT nas versões atuais do Debian 10 e Ubuntu 18.04/20.04, pois o APT utiliza a biblioteca GnuTLS. A essência do problema é que muitas bibliotecas TLS/SSL interpretam o certificado como uma cadeia linear, enquanto, de acordo com a RFC 4158, o certificado pode representar um gráfico cíclico orientado distribuído com vários âncoras de confiança que precisam ser consideradas. Essa falha no OpenSSL e GnuTLS . No OpenSSL, o problema foi corrigido na ramificação 1.1.1, mas em permanece .
Como uma solução alternativa para eliminar a falha, é sugerido remover do repositório do sistema o certificado "AddTrust External CA Root" (por exemplo, removendo de /etc/ca-certificates.conf e /etc/ssl/certs, e então executando "update-ca-certificates -f -v"), após o que o OpenSSL começará a lidar normalmente com certificados com assinatura cruzada que o envolvem. Ao usar o gerenciador de pacotes APT, é por conta e risco do usuário desativar a verificação de certificados para solicitações individuais (por exemplo, "apt-get update -o Acquire::https::download.jitsi.org::Verify-Peer=false").
Para bloquear o problema em e é sugerido adicionar o certificado AddTrust à lista negra:
dump de confiança —filter «pkcs11:id=;type=cert» \
> /etc/pki/ca-trust/source/blacklist/addtrust-external-root.p11-kit
update-ca-trust extract
Mas essa abordagem para GnuTLS (por exemplo, ainda continua a emitir um erro de verificação do certificado ao executar a ferramenta wget).
Do lado do servidor, pode-se dos certificados na cadeia de confiança enviados pelo servidor ao cliente (se o certificado relacionado ao "AddTrust External CA Root" for removido da lista, a verificação pelo cliente será bem-sucedida). Para verificar e gerar uma nova cadeia de confiança, pode-se usar o serviço . A empresa Sectigo também um certificado intermediário alternativo com assinatura cruzada "", que será válido até 2028 e permitirá manter a compatibilidade com versões antigas do sistema operacional.
Nota: O problema também afeta o LibreSSL.
Fonte: opennet.ru
