← Tutti gli articoli

L’aggiornamento dei certificati di Go blocca otto intermediate CA keys

L’aggiornamento dei certificati di Go blocca otto intermediate CA keys

L’aggiornamento dei certificati di Go incluso in Go 1.27.3 e Go 1.26.10 fa sì che il software rifiuti le connessioni quando una certificate chain passa attraverso una qualsiasi delle otto chiavi bloccate di una intermediate certificate authority. Una certificate authority (CA) è un’organizzazione considerata affidabile per l’emissione di certificati digitali che aiutano il software a confermare l’identità di un sito web o di un servizio. Entrambe le release di Go sono arrivate il 20 ottobre e il team di Go consiglia di eseguire immediatamente l’aggiornamento.

La modifica interessa i programmi compilati con le nuove release. Quando uno di questi programmi si connette a un sito web o a un servizio online, il certificate verifier di Go controlla la certificate chain che collega la destinazione a un’autorità considerata affidabile. Se il percorso include una delle chiavi bloccate, la verifica non riesce e il programma restituisce l’errore “x509: no valid chains built.” I siti che utilizzano certificati emessi sotto tali chiavi diventeranno quindi irraggiungibili dai client Go ricompilati finché non otterranno certificati da una intermediate certificate authority diversa.

Go non ha indicato la CA a cui appartengono le chiavi. Il suo annuncio fa riferimento soltanto a specifici problemi di sicurezza relativi al loro funzionamento. L’aggiornamento è stato gestito tramite il processo URGENT di Go, che la sua security policy riserva alle minacce contro l’integrità dell’ecosistema Go o alle vulnerabilità sfruttate attivamente con conseguenze gravi. Il progetto afferma che non esistono esempi recenti di problemi che abbiano ricevuto tale classificazione, ma non ha rivelato quale condizione si applicasse in questo caso né che cosa sia accaduto presso la CA. La release è inoltre arrivata senza il preavviso che aveva preceduto le release di sicurezza di Go dell’8 ottobre.

L’aggiornamento identifica le chiavi bloccate soltanto tramite i relativi hash SHA-256, ovvero fingerprint digitali calcolati dalle loro public key. Un commentatore nell’issue di Go ha associato tutti e otto gli hash a intermediari eMudhra utilizzando record pubblici dei certificati. The Hacker News ha dichiarato di non aver confermato in modo indipendente tale corrispondenza. In base alle conclusioni del commentatore, sei sono intermediari Transport Layer Security (TLS), utilizzati per proteggere le connessioni a siti web e servizi, sotto emSign Root TLS CA - G3. Si tratta di EM DV TLS CA - G3B ed EM DV TLS CA - G3C per i domain-validated certificates, EM OV TLS CA - G3B ed EM OV TLS CA - G3C per gli organisation-validated certificates ed EM EV TLS CA - G3B ed EM EV TLS CA - G3C per gli extended-validation certificates. I due rimanenti, EM OV CS CA - G3B ed EM OV CS CA - G3C, sono intermediari di code-signing sotto emSign Root CS CA - G3.

Il 17 ottobre Mozilla aveva aggiunto a OneCRL sei intermediate certificate emessi dalla emSign Root TLS CA - G3 di eMudhra. OneCRL è una block list utilizzata da Firefox per rifiutare i certificati. Il relativo bug di Mozilla non è accessibile pubblicamente e Mozilla non ha spiegato perché i certificati siano stati aggiunti. Le voci di Mozilla identificano la stessa issuing root, ma non riportano i nomi dei sei certificati. Non è stato accertato se Chrome, Apple o Microsoft abbiano adottato misure analoghe.

Il filtro di Go calcola una fingerprint dalla public key di ciascun certificato anziché dal certificato completo. Ciò significa che rileva anche un cross-signed certificate contenente la stessa chiave, ma autorizzato attraverso una root diversa. Il controllo opera nel certificate verifier di Go e nei percorsi macOS e Windows in cui Go delega la verifica al sistema operativo. Sembra inoltre applicarsi quando un’applicazione fornisce le proprie trusted roots, inclusi gli ambienti privati che considerano deliberatamente affidabile una delle chiavi. Go non ha specificato se il blocco di queste configurazioni private fosse intenzionale e l’aggiornamento non offre alcuna opzione per disattivare il filtro.

La distinzione è importante perché la documentazione di Go afferma che il suo verifier non esegue il revocation checking, il processo utilizzato per determinare se un certificato sia stato ritirato prima della scadenza. Inoltre, non utilizza sistemi di blocco gestiti dai browser, come i CRLSets impiegati questo mese da Chrome contro certificati Google fraudolenti. Go deve invece distribuire le chiavi bloccate tramite una software release. Le applicazioni esistenti mantengono il comportamento precedente finché gli sviluppatori non le ricompilano con una versione aggiornata di Go. Progetti tra cui indigo di Bluesky sono stati ricompilati con le nuove release il 20 ottobre.

eMudhra è una CA indiana che vende certificati con il brand emSign. Le sue emSign Root CA - G1 ed emSign ECC Root CA - G3 sono presenti nei root store di Chrome, Apple e Mozilla. In precedenza, l’azienda aveva comunicato a Mozilla che la TLS root più recente è cross-signed da emSign Root CA - G1, consentendo ai certificati sotto tale nuova root di collegarsi a una root già considerata affidabile. Una discussione pubblica durata sei settimane sull’aggiunta di dieci nuove root di eMudhra ai root program di browser e sistemi operativi, inclusa emSign Root TLS CA - G3, si è conclusa a settembre senza obiezioni.

I record di certificate transparency controllati da The Hacker News il 20 ottobre mostravano che i certificati per i domini della stessa eMudhra, inclusi emsign.com ed emudhra.com, utilizzavano altri intermediari eMudhra. Quel giorno il certificate repository dell’azienda non conteneva alcun avviso relativo agli intermediari bloccati e The Hacker News non ha trovato dichiarazioni pubbliche di eMudhra. Un utente ha inoltre chiesto al team di Go di spiegare a quali organizzazioni e certificati corrispondesse il blocco inserito nel codice, ma al 20 ottobre il team non aveva risposto.

Gli amministratori dovrebbero aggiornare i branch di Go supportati e ricompilare le applicazioni interessate, quindi esaminare gli eventuali errori risultanti della certificate chain. Go 1.25 e le versioni precedenti non sono più supportati e non riceveranno questa correzione; gli utenti di tali branch devono quindi passare a una release supportata tramite la pagina di download di Go. Non esiste alcun workaround temporaneo documentato e i siti i cui certificati passano attraverso le chiavi bloccate devono ottenere un certificato sostitutivo emesso tramite un intermediario diverso. Per le organizzazioni che devono esaminare le applicazioni e i percorsi dei certificati interessati, AEU-I offre servizi IT, infrastrutturali e di consulenza incentrati innanzitutto sulla sicurezza.

Disponibile anche in: EnglishDeutschShqip