
Il team di Go ha rilasciato un aggiornamento d'emergenza per bloccare otto chiavi di certificazione intermedie di eMudhra, citando "specifiche preoccupazioni di sicurezza". Anche Mozilla ha precedentemente bloccato certificati simili.
Il team di sviluppo del linguaggio di programmazione Go ha rilasciato un aggiornamento d'emergenza, le versioni 1.27.3 e 1.26.10, per bloccare specificamente otto chiavi di certificazione intermedie. Questa mossa, classificata come "URGENT" secondo la politica di sicurezza di Go, mira a proteggere l'integrità dell'ecosistema Go da potenziali minacce.
Le nuove versioni di Go implementano un controllo che rifiuta qualsiasi catena di certificati che passi attraverso una di queste otto chiavi intermedie. Di conseguenza, i programmi compilati con queste versioni non saranno in grado di stabilire connessioni con siti e servizi i cui certificati sono stati emessi utilizzando tali chiavi. Sebbene il team di Go non abbia inizialmente nominato l'autorità di certificazione (CA) in questione, indicando solo gli hash SHA-256 delle otto chiavi, un'analisi della community ha rapidamente collegato queste chiavi a certificati intermedi emessi da eMudhra, un'autorità di certificazione indiana che opera sotto il marchio emSign.
Nello specifico, sei delle chiavi bloccate sono intermedie TLS (per certificati Domain Validated, Organization Validated ed Extended Validation) e due sono intermedie per la firma del codice. Queste chiavi sono associate a diverse varianti sotto le radici emSign Root TLS CA - G3 e emSign Root CS CA - G3.
È interessante notare che questa azione di Go non è un evento isolato. Solo pochi giorni prima, il 17 ottobre, Mozilla aveva aggiunto sei certificati intermedi emessi dalla emSign Root TLS CA - G3 di eMudhra alla sua lista di blocco OneCRL, utilizzata da Firefox. Sebbene i dettagli specifici che hanno portato a queste decisioni non siano stati resi pubblici né da Mozilla né da Go, la coincidenza suggerisce preoccupazioni comuni riguardo alla gestione o alla sicurezza di questi certificati.
Al momento della pubblicazione, non era chiaro se altri importanti attori come Chrome, Apple o Microsoft avessero intrapreso azioni simili.
Il meccanismo implementato da Go blocca le catene di certificati basandosi sull'hash della chiave pubblica, non sul certificato stesso. Questo significa che anche copie cross-signed delle chiavi bloccate, ovvero la stessa chiave firmata da una radice diversa, verranno identificate e rifiutate. Il filtro è integrato nel verificatore di certificati di Go e viene applicato anche quando i programmi si affidano ai percorsi di verifica di sistema operativo di macOS e Windows. Il rifiuto di una catena di certificati genera l'errore x509: no valid chains built.
Una caratteristica importante di questa implementazione è che il filtro non può essere disattivato e non dispone di impostazioni per essere aggirato. Inoltre, si applica anche in ambienti privati dove un'organizzazione potrebbe aver scelto di fidarsi esplicitamente di una di queste chiavi intermedie. Il team di Go non ha specificato se questo comportamento fosse intenzionale per le distribuzioni private.
L'aggiornamento è considerato critico perché le versioni di Go precedenti alla 1.25 non sono più supportate e non ricevono aggiornamenti di sicurezza. Pertanto, l'unica soluzione per beneficiare di questa protezione è aggiornare a una versione supportata. I programmi che utilizzano le versioni vulnerabili continueranno a comportarsi come prima fino a quando non verranno ricompilati con le nuove versioni. Progetti come Bluesky hanno già iniziato a ricostruire le loro applicazioni sulle nuove release.
Per i siti e i servizi i cui certificati dipendono dalle chiavi bloccate, sarà necessario ottenere e utilizzare certificati emessi da intermediari diversi affinché i client Go aggiornati possano connettersi nuovamente senza errori.
La decisione di bloccare queste chiavi è stata presa con urgenza, senza il preavviso tipico di Go per rilasci di sicurezza meno critici. La comunicazione ufficiale di Go è stata concisa, menzionando solo "specifiche preoccupazioni di sicurezza" senza fornire ulteriori dettagli. La politica di sicurezza di Go definisce gli argomenti "URGENT" come minacce all'integrità dell'ecosistema o falle attivamente sfruttate con danni gravi, ma non è stato chiarito quale dei due scenari si applichi in questo caso. La mancanza di risposte da parte del team di Go riguardo all'identificazione esatta delle chiavi e alle motivazioni specifiche ha alimentato discussioni nella community.
È importante notare che il verificatore di Go, come avverte la sua documentazione, non esegue controlli di revoca dei certificati e non utilizza le liste di blocco dei browser. Il blocco di una chiave avviene quindi incorporandola direttamente nella release del software. eMudhra, nonostante le sue radici siano presenti nei trust store di browser come Chrome, Apple e Mozilla, non ha rilasciato dichiarazioni pubbliche in merito a questa vicenda, né ha fornito avvisi nei propri repository riguardo agli intermediari in questione.
Contenuto generato automaticamente da intelligenza artificiale a partire da fonti pubbliche. Non garantiamo l'accuratezza assoluta delle informazioni: consulta sempre la fonte originale. I diritti sui contenuti originali appartengono ai rispettivi editori.