Sigstores kryptografiska verifieringssystem tillkännages

Google tillkännagav bildandet av de första stabila utgåvorna av komponenterna som utgör Sigstore-projektet, som förklaras lämpligt för att skapa fungerande implementeringar. Sigstore utvecklar verktyg och tjänster för mjukvaruverifiering med hjälp av digitala signaturer och upprätthållande av en offentlig logg som bekräftar ändringarnas äkthet (transparenslogg). Projektet utvecklas i den ideella organisationen Linux Foundations regi av Google, Red Hat, Cisco, vmWare, GitHub och HP Enterprise med deltagande av organisationen OpenSSF (Open Source Security Foundation) och Purdue University.

Sigstore kan ses som en analog till Let's Encrypt for code, som tillhandahåller certifikat för digital signering av kod och verktyg för att automatisera verifiering. Med Sigstore kan utvecklare digitalt signera applikationsrelaterade artefakter som releasefiler, containerbilder, manifest och körbara filer. Signaturmaterialet återspeglas i en manipuleringssäker offentlig logg som kan användas för verifiering och revision.

Istället för permanenta nycklar använder Sigstore kortlivade tillfälliga nycklar, som genereras baserat på referenser som bekräftats av OpenID Connect-leverantörer (vid tidpunkten för generering av de nycklar som krävs för att skapa en digital signatur identifierar utvecklaren sig genom OpenID-leverantören kopplad till en e-post). Nycklarnas äkthet verifieras med hjälp av en offentlig centraliserad logg, vilket gör det möjligt att verifiera att författaren till signaturen är exakt den han utger sig för att vara, och signaturen genererades av samma deltagare som var ansvarig för tidigare releaser.

Sigstores beredskap för implementering beror på bildandet av releaser av två nyckelkomponenter - Rekor 1.0 och Fulcio 1.0, vars mjukvarugränssnitt är deklarerade stabila och kommer att fortsätta att vara bakåtkompatibla. Tjänstekomponenterna är skrivna i Go och distribueras under Apache 2.0-licensen.

Rekor-komponenten innehåller en loggimplementering för lagring av digitalt signerad metadata som återspeglar information om projekt. För att säkerställa integritet och skydda mot datakorruption i efterhand används en Merkle Tree-trädstruktur, där varje gren verifierar alla underliggande grenar och noder genom gemensam (träd)-hashning. Med den slutliga hashen kan användaren verifiera riktigheten av hela operationshistoriken, såväl som riktigheten av de tidigare tillstånden i databasen (rotverifieringshashen för databasens nya tillstånd beräknas med hänsyn till det tidigare tillståndet ). Ett RESTful API tillhandahålls för verifiering och för att lägga till nya poster, samt ett kommandoradsgränssnitt.

Fulcio-komponenten (SigStore WebPKI) inkluderar ett system för att skapa certifikatutfärdare (root-CA) som utfärdar kortlivade certifikat baserat på e-post som autentiserats via OpenID Connect. Certifikatets livslängd är 20 minuter, under vilken utvecklaren måste ha tid att generera en digital signatur (om certifikatet senare hamnar i händerna på en angripare kommer det redan att löpa ut). Dessutom utvecklar projektet Cosign (Container Signing) verktygslåda, utformad för att generera signaturer för behållare, verifiera signaturer och placera signerade behållare i förråd som är kompatibla med OCI (Open Container Initiative).

Implementeringen av Sigstore gör det möjligt att öka säkerheten för programdistributionskanaler och skydda mot attacker som syftar till att ersätta bibliotek och beroenden (supply chain). Ett av de viktigaste säkerhetsproblemen i programvara med öppen källkod är svårigheten att verifiera källan till programmet och verifiera byggprocessen. Till exempel använder de flesta projekt hash för att verifiera integriteten av en utgåva, men ofta lagras informationen som krävs för autentisering på oskyddade system och i delade kodlager, vilket resulterar i att angripare kan äventyra de filer som krävs för verifiering och införa skadliga ändringar utan att väcka misstankar.

Användningen av digitala signaturer för frigivningsverifiering har ännu inte blivit utbredd på grund av svårigheter med att hantera nycklar, distribuera publika nycklar och återkalla komprometterade nycklar. För att verifieringen ska vara meningsfull är det dessutom nödvändigt att organisera en pålitlig och säker process för att distribuera publika nycklar och kontrollsummor. Även med en digital signatur ignorerar många användare verifiering eftersom de behöver lägga tid på att lära sig verifieringsprocessen och förstå vilken nyckel som är pålitlig. Sigstore-projektet försöker förenkla och automatisera dessa processer genom att tillhandahålla en färdig och beprövad lösning.

Källa: opennet.ru

Lägg en kommentar