Il 30 maggio è scaduto il periodo di validità di 20 anni del certificato radice , che per la generazione di una firma incrociata (cross-signed) nei certificati di uno dei più grandi centri di certificazione, Sectigo (Comodo). La firma incrociata garantiva la compatibilità con i dispositivi obsoleti, nel cui archivio dei certificati radice non era stato aggiunto il nuovo certificato radice USERTrust.
Teoricamente, la scadenza del certificato radice AddTrust avrebbe dovuto causare solo una perdita di compatibilità con i sistemi obsoleti (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9, ecc.), poiché il secondo certificato radice utilizzato nella firma incrociata rimane attivo e i moderni browser lo considerano nella verifica della catena di fiducia. Nella pratica problematiche nella verifica della firma incrociata in client TLS che non utilizzano browser, inclusi quelli basati su OpenSSL 1.0.x e GnuTLS. La connessione sicura ha smesso di stabilirsi, restituendo un errore di scadenza del certificato, se sul server viene utilizzato un certificato Sectigo collegato alla catena di fiducia con il certificato radice AddTrust.
Se gli utenti dei moderni browser non hanno notato la scadenza del certificato radice AddTrust durante l'elaborazione dei certificati firmati incrociati Sectigo, in varie applicazioni di terze parti e gestori server hanno iniziato a sorgere problemi, portando a di molte infrastrutture che utilizzano canali crittografati per l'interazione tra i componenti.
Ad esempio, sono emersi problemi di accesso a determinati repository di pacchetti in Debian e Ubuntu (apt ha iniziato a restituire un errore di verifica del certificato), si sono verificati errori nelle chiamate da script utilizzando gli strumenti "curl" e "wget", e si sono riscontrati problemi con l'utilizzo di Git, la funzionalità della piattaforma di streaming Roku, i gestori di eventi hanno smesso di attivarsi, e sono iniziate nelle applicazioni Heroku, di connettersi i client OpenLDAP, si sono verificati problemi con l'invio di email ai server SMTPS e SMTP con STARTTLS. Inoltre, ci sono problemi in vari script Ruby, PHP e Python, che utilizzano un modulo con un client http. Nei browser, il problema riguarda Epiphany, in cui le liste di blocco pubblicitarie non si caricano più.
Le applicazioni scritte in Go non sono soggette al problema, poiché in Go è proposta TLS.
che il problema riguardasse le vecchie versioni delle distribuzioni (inclusi Debian 9, Ubuntu 16.04, ) in cui vengono utilizzati rami problematici di OpenSSL, ma il problema anche durante il funzionamento del gestore pacchetti APT nelle versioni attuali di Debian 10 e Ubuntu 18.04/20.04, poiché APT utilizza la libreria GnuTLS. La sostanza del problema è che molte librerie TLS/SSL analizzano il certificato come una catena lineare, mentre secondo l'RFC 4158 il certificato può rappresentare un grafo ciclico distribuito orientato con più ancore di fiducia, che devono essere tenute in considerazione. Questa mancanza in OpenSSL e GnuTLS In OpenSSL, il problema è stato risolto nel ramo 1.1.1, mentre rimane .
Come soluzione alternativa per risolvere il problema, si consiglia di rimuovere il certificato "AddTrust External CA Root" dal deposito di sistema (ad esempio, rimuovendo da /etc/ca-certificates.conf e /etc/ssl/certs, e poi eseguendo "update-ca-certificates -f -v"), dopo di che OpenSSL inizia a elaborare normalmente i certificati firmati incrociati a cui partecipa. Utilizzando il gestore pacchetti APT, a proprio rischio, è possibile disabilitare il controllo dei certificati per richieste specifiche (ad esempio, "apt-get update -o Acquire::https::download.jitsi.org::Verify-Peer=false").
Per bloccare il problema in e si propone di inserire il certificato AddTrust nella lista nera:
trust dump —filter «pkcs11:id=;type=cert» \
> /etc/pki/ca-trust/source/blacklist/addtrust-external-root.p11-kit
update-ca-trust extract
Ma questa soluzione non funziona per GnuTLS (ad esempio, continua a restituire un errore di verifica del certificato durante l'esecuzione dello strumento wget).
Dal lato server è possibile della lista dei certificati nella catena di fiducia, inviati dal server al client (se il certificato collegato a "AddTrust External CA Root" viene rimosso dalla lista, la verifica da parte del client avrà esito positivo). Per verificare e generare una nuova catena di fiducia, si può utilizzare il servizio La compagnia Sectigo ha anche un certificato intermedio firmato incrociato alternativo “che sarà valido fino al 2028 e consentirà di mantenere la compatibilità con le versioni precedenti dei sistemi operativi.
Inoltre: il problema riguarda anche LibreSSL.
Fonte: opennet.ru
