La dépréciation du certificat racine AddTrust provoque des plantages sur les systèmes OpenSSL et GnuTLS

Le 30 mai, la période de validité de 20 ans du certificat racine a expiré Ajouter la confianceQui appliqué pour générer une signature croisée dans les certificats de l'une des plus grandes autorités de certification Sectigo (Comodo). La signature croisée permettait la compatibilité avec les appareils existants sur lesquels le nouveau certificat racine USERTRust n'était pas ajouté à leur magasin de certificats racine.

La dépréciation du certificat racine AddTrust provoque des plantages sur les systèmes OpenSSL et GnuTLS

Théoriquement, la résiliation du certificat racine AddTrust ne devrait conduire qu'à une violation de la compatibilité avec les systèmes existants (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9, etc.), puisque le deuxième certificat racine utilisé dans la signature croisée reste les navigateurs valides et modernes en tiennent compte lors de la vérification de la chaîne de confiance. Sur la pratique s'est présenté Problèmes de vérification des signatures croisées dans les clients TLS non-navigateurs, y compris ceux basés sur OpenSSL 1.0.x et GnuTLS. Une connexion sécurisée ne s'établit plus avec une erreur indiquant que le certificat est obsolète si le serveur utilise un certificat Sectigo lié par une chaîne de confiance au certificat racine AddTrust.

Si les utilisateurs de navigateurs modernes ne remarquaient pas l'obsolescence du certificat racine AddTrust lors du traitement des certificats Sectigo à signature croisée, des problèmes commençaient à apparaître dans diverses applications tierces et gestionnaires côté serveur, ce qui conduisait à violation travailler de nombreuses infrastructures qui utilisent des canaux de communication cryptés pour l'interaction entre les composants.

Par exemple, il y avait problèmes avec l'accès à certains référentiels de paquets dans Debian et Ubuntu (apt a commencé à générer une erreur de vérification de certificat), les requêtes des scripts utilisant les utilitaires « curl » et « wget » ont commencé à échouer, des erreurs ont été observées lors de l'utilisation de Git, violé La plateforme de streaming Roku fonctionne, les gestionnaires ne sont plus appelés Stripe и DataDog, commencé des accidents se produisent dans les applications Heroku, arrêté Les clients OpenLDAP se connectent, des problèmes d'envoi de courrier vers les serveurs SMTPS et SMTP avec STARTTLS sont détectés. De plus, des problèmes sont observés dans divers scripts Ruby, PHP et Python qui utilisent un module avec un client http. Problème de navigateur affecte Epiphany, qui a arrêté de charger les listes de blocage de publicités.

Les programmes Go ne sont pas concernés par ce problème car Go propose propre mise en œuvre TLS.

Était supposéque le problème affecte les anciennes versions de distribution (y compris Debian 9, Ubuntu 16.04, RHEL 6/7) qui utilisent des branches OpenSSL problématiques, mais le problème s'est manifesté également lorsque le gestionnaire de packages APT s'exécute dans les versions actuelles de Debian 10 et Ubuntu 18.04/20.04, car APT utilise la bibliothèque GnuTLS. Le nœud du problème est que de nombreuses bibliothèques TLS/SSL analysent un certificat comme une chaîne linéaire, alors que selon la RFC 4158, un certificat peut représenter un graphe circulaire distribué dirigé avec plusieurs ancres de confiance qui doivent être prises en compte. À propos de cette faille dans OpenSSL et GnuTLS было est connu pendant de nombreuses années. Dans OpenSSL, le problème a été résolu dans la branche 1.1.1 et dans GnuTLSGenericName reste non corrigé.

Pour contourner ce problème, il est suggéré de supprimer le certificat « AddTrust External CA Root » du magasin système (par exemple, supprimez-le de /etc/ca-certificates.conf et /etc/ssl/certs, puis exécutez « update-ca -certificates -f -v"), après quoi OpenSSL commence à traiter normalement les certificats à signature croisée avec sa participation. Lorsque vous utilisez le gestionnaire de packages APT, vous pouvez désactiver la vérification du certificat pour des demandes individuelles à vos propres risques (par exemple, « apt-get update -o Acquire::https::download.jitsi.org::Verify-Peer=false ») .

Pour bloquer le problème dans Fedora и RHEL Il est proposé d'ajouter le certificat AddTrust à la liste noire :

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
extrait de mise à jour-ca-trust

Mais cette méthode ne fonctionne pas pour GnuTLS (par exemple, une erreur de vérification de certificat continue d'apparaître lors de l'exécution de l'utilitaire wget).

Côté serveur, vous pouvez modifier порядок listant les certificats de la chaîne de confiance envoyés par le serveur au client (si le certificat associé à « AddTrust External CA Root » est supprimé de la liste, alors la vérification du client sera réussie). Pour vérifier et générer une nouvelle chaîne de confiance, vous pouvez utiliser le service whatsmychaincert.com. Le sectigo aussi предоставила certificat intermédiaire alternatif signé en croix "Services de certificats AAA», qui sera valable jusqu’en 2028 et conservera la compatibilité avec les anciennes versions de l’OS.

Ajout : problème également apparaît dans LibreSSL.

Source: opennet.ru

Ajouter un commentaire