Annunciato il sistema di verifica crittografica Sigstore

Google ha annunciato la formazione dei primi rilasci stabili dei componenti che compongono il progetto Sigstore, dichiarato idoneo alla creazione di implementazioni funzionanti. Sigstore sviluppa strumenti e servizi per la verifica del software utilizzando firme digitali e mantenendo un registro pubblico che conferma l'autenticità delle modifiche (trasparenza registro). Il progetto è stato sviluppato sotto gli auspici dell'organizzazione no-profit Linux Foundation da Google, Red Hat, Cisco, vmWare, GitHub e HP Enterprise con la partecipazione di OpenSSF (Open Source Security Foundation) e Purdue University.

Sigstore può essere pensato come Let's Encrypt per il codice, fornendo certificati per la firma digitale del codice e strumenti per automatizzare la verifica. Con Sigstore, gli sviluppatori possono firmare digitalmente artefatti relativi alle applicazioni come file di rilascio, immagini di container, manifest ed eseguibili. Il materiale utilizzato per la firma si riflette in un registro pubblico a prova di manomissione che può essere utilizzato per la verifica e l'audit.

Al posto delle chiavi permanenti, Sigstore utilizza chiavi effimere di breve durata che vengono generate in base alle credenziali verificate dai provider OpenID Connect (al momento della generazione delle chiavi necessarie per creare una firma digitale, lo sviluppatore si identifica tramite il provider OpenID con binding email ). L'autenticità delle chiavi è verificata da un registro centralizzato pubblico, che consente di assicurarsi che l'autore della firma sia esattamente chi dichiara di essere, e che la firma sia stata formata dallo stesso partecipante che era responsabile dei precedenti rilasci.

La prontezza di Sigstore per l'implementazione è dovuta alla formazione di versioni di due componenti chiave: Rekor 1.0 e Fulcio 1.0, le cui interfacce di programmazione sono dichiarate stabili e d'ora in poi mantengono la compatibilità con le versioni precedenti. I componenti del servizio sono scritti in Go e distribuiti con licenza Apache 2.0.

Il componente Rekor contiene un'implementazione di registro per l'archiviazione di metadati firmati digitalmente che riflettono le informazioni sui progetti. Per garantire l'integrità e la protezione contro il danneggiamento dei dati, viene utilizzata una struttura ad albero Merkle Tree in cui ogni ramo verifica tutti i rami e i nodi sottostanti attraverso l'hashing congiunto (albero). Avendo un hash finale, l'utente può verificare la correttezza dell'intera cronologia delle operazioni, nonché la correttezza degli stati passati del database (l'hash di verifica root del nuovo stato del database viene calcolato tenendo conto dello stato passato ). Viene fornita un'API RESTful per la verifica e l'aggiunta di nuovi record, nonché un'interfaccia a riga di comando.

Il componente Fulcio (SigStore WebPKI) include un sistema per la creazione di autorità di certificazione (root CA) che rilasciano certificati di breve durata basati su email autenticate tramite OpenID Connect. La durata del certificato è di 20 minuti, durante i quali lo sviluppatore deve avere il tempo di generare una firma digitale (se in futuro il certificato cade nelle mani di un attaccante, sarà già scaduto). Inoltre, il progetto sviluppa il toolkit Cosign (Container Signing), progettato per generare firme per container, verificare firme e collocare container firmati in repository compatibili con OCI (Open Container Initiative).

L'introduzione di Sigstore consente di aumentare la sicurezza dei canali di distribuzione del software e di proteggere da attacchi volti a sostituire librerie e dipendenze (supply chain). Uno dei principali problemi di sicurezza nel software open source è la difficoltà di verificare l'origine del programma e verificare il processo di compilazione. Ad esempio, la maggior parte dei progetti utilizza gli hash per verificare l'integrità di una versione, ma spesso le informazioni necessarie per l'autenticazione vengono archiviate su sistemi non protetti e in repository condivisi con codice, per cui, se compromessi, gli aggressori possono sostituire i file necessari per verifica e, senza destare sospetti, introdurre modifiche dannose.

L'uso delle firme digitali per la verifica del rilascio non si è ancora diffuso a causa delle difficoltà nella gestione delle chiavi, nella distribuzione delle chiavi pubbliche e nella revoca delle chiavi compromesse. Affinché la verifica abbia senso, è inoltre necessario organizzare un processo affidabile e sicuro per la distribuzione di chiavi pubbliche e checksum. Anche con una firma digitale, molti utenti ignorano la verifica perché ci vuole tempo per apprendere il processo di verifica e capire quale chiave è affidabile. Il progetto Sigstore cerca di semplificare e automatizzare questi processi fornendo una soluzione già pronta e collaudata.

Fonte: opennet.ru

Aggiungi un commento