Google har meddelat att de första stabila versionerna av komponenterna som utgör projektet Sigstore har bildats och deklarerats lÀmpliga för att skapa praktiska implementationer. Sigstore utvecklar verktyg och tjÀnster för verifiering av programvara med hjÀlp av digitala signaturer och för att föra en offentlig logg som bekrÀftar Àktheten av Àndringar (transparency log). Projektet utvecklas under ledning av den ideella organisationen Linux Foundation i samarbete med företag som Google, Red Hat, Cisco, VMware, GitHub samt HP Enterprise, med deltagande av OpenSSF (Open Source Security Foundation) och Purdue University.
Sigstore kan ses som en motsvarighet till Letâs Encrypt för kod, som erbjuder certifikat för att sĂ€kerstĂ€lla kod med digitala signaturer och verktyg för automatisering av verifiering. Genom Sigstore kommer utvecklare kunna skapa digitala signaturer för applikationsrelaterade artefakter, sĂ„som releasefiler, containerbilder, manifest och körbara filer. Det material som anvĂ€nds för signering Ă„terspeglas i en skyddad offentlig logg, som kan anvĂ€ndas för verifiering och revision.
IstĂ€llet för permanenta nycklar anvĂ€nds kortlivade, temporĂ€ra nycklar i Sigstore, som genereras baserat pĂ„ rĂ€ttigheter som bekrĂ€ftas av OpenID Connect-leverantörer (vid generationen av nycklar, som behövs för att skapa digitala signaturer, identifierar sig utvecklaren genom en OpenID-leverantör kopplad till email). Ăktheten av nycklarna verifieras genom en offentlig centraliserad logg, vilket gör att man kan vara sĂ€ker pĂ„ att signaturen Ă€r avsedd av den person som den pĂ„stĂ„r sig vara och att signaturen har skapats av samma deltagare som ansvarade för tidigare utgĂ„vor.
Sigstores beredskap för implementering beror pĂ„ skapandet av versionerna av tvĂ„ centrala komponenter â Rekor 1.0 och Fulcio 1.0, vars API har deklarerats stabila och framöver kommer att behĂ„lla bakĂ„tkompatibilitet. Komponenterna i tjĂ€nsten Ă€r skrivna i Go och distribueras under Apache 2.0-licensen.
Rekor-komponenten innehÄller en implementation av loggar för lagring av metadata som Àr verifierade med digitala signaturer och Äterspeglar information om projekt. För att sÀkerstÀlla integritet och skydd mot dataförvrÀngning i efterhand anvÀnds en trÀdstruktur, "Merkle-trÀd", dÀr varje gren verifierar alla underliggande grenar och noder genom gemensam (trÀd) hashning. Med en slutlig hash kan anvÀndaren sÀkerstÀlla korrektheten av hela operationens historia samt korrektheten av tidigare tillstÄnd av databasen (den rotkontrollerande hashen för det nya tillstÄndet av databasen berÀknas med hÀnsyn till det förflutna tillstÄndet). För verifiering och tillÀgg av nya poster tillhandahÄlls ett RESTful API samt ett kommandoradsgrÀnssnitt.
Fulcio-komponenten (SigStore WebPKI) inkluderar ett system för att skapa certifieringsmyndigheter (root CA) som utfÀrdar kortlivade certifikat baserat pÄ e-post som autentiserats via OpenID Connect. Certifikatets livslÀngd Àr 20 minuter, under vilken tid utvecklaren mÄste hinna skapa en digital signatur (om certifikatet senare hamnar i hÀnderna pÄ en angripare kommer det redan att vara utgÄnget). Ytterligare utvecklar projektet verktyget Cosign (Container Signing), avsett för att skapa signaturer för containrar, verifiera signaturer och placera signerade containrar i OCI-kompatibla förrÄd (Open Container Initiative).
Implementeringen av Sigstore ger möjlighet att öka sÀkerheten för distributionskanaler av program och skydda sig mot attacker som syftar till att ersÀtta bibliotek och beroenden (supply chain). Ett av de centrala sÀkerhetsproblemen inom öppen programvara Àr svÄrigheten att verifiera kÀllan till programmet och verifiera byggprocessen. Till exempel, för att kontrollera integriteten av en release anvÀnder de flesta projekt hashar, men den information som krÀvs för autentisering lagras ofta pÄ oskyddade system och i allmÀnna kodförrÄd, vars kompromettering kan göra det möjligt för angripare att ersÀtta nödvÀndiga verifieringsfiler och, utan att vÀcka misstankar, införa skadliga Àndringar.
AnvĂ€ndningen av digitala signaturer för att verifiera utgĂ„vor har Ă€nnu inte fĂ„tt genomslag pĂ„ grund av svĂ„righeter med hantering av nycklar, spridning av publika nycklar och Ă„terkallande av komprometterade nycklar. För att verifiering ska vara meningsfull krĂ€vs det dessutom ett pĂ„litligt och sĂ€kert system för spridning av publika nycklar och kontrollsummer. Ăven med en digital signatur ignorerar mĂ„nga anvĂ€ndare verifieringsprocessen eftersom det krĂ€ver tid att förstĂ„ hur verifieringen fungerar och vilket nyckel som Ă€r pĂ„litlig. Projektet Sigstore försöker förenkla och automatisera dessa processer genom att erbjuda en fĂ€rdig och verifierad lösning.
KĂ€lla: opennet.ru
