Google har meddelt, at de første stabile versioner af komponenterne, der danner projektet Sigstore, er udgivet og klar til implementering. Sigstore udvikler værktøjer og tjenester til verificering af software ved hjælp af digitale signaturer og opretholdelse af en offentlig log, der bekræfter ægtheden af ændringer (transparency log). Projektet udvikles under ledelse af den ikke-kommercielle organisation Linux Foundation i samarbejde med virksomheder som Google, Red Hat, Cisco, vmWare, GitHub og HP Enterprise samt organisationen OpenSSF (Open Source Security Foundation) og Purdue University.
Sigstore kan betragtes som et alternativ til Let’s Encrypt for kode og tilbyder certifikater til bekræftelse af kode med digitale signaturer og værktøjer til automatisering af verifikation. Gennem Sigstore kan udviklere skabe digitale signaturer for applikationsrelaterede artefakter som udgivelsesfiler, containerbilleder, manifester og eksekverbare filer. Det materiale, der bruges til signaturen, registreres i en uforanderlig offentlig log, som kan anvendes til verifikation og revision.
I stedet for permanente nøgler bruger Sigstore kortlevende ephemeral nøgler, der genereres baseret på beføjelser bekræftet af OpenID Connect-udbydere (ved generering af de nøgler, der er nødvendige for at oprette en digital signatur, identificerer udvikleren sig gennem en OpenID-udbyder i forbindelse med sin email). Ægtheden af nøglerne verificeres gennem en offentlig centraliseret log, som gør det muligt at sikre, at underskriveren faktisk er den person, de udgiver sig for at være, og at signaturen er fremstillet af den samme deltagende person, som var ansvarlig for tidligere udgivelser.
Sigstores klarhed til implementering skyldes frigivelsen af to nøglekomponenter - Rekor 1.0 og Fulcio 1.0, hvis API'er er blevet erklæret stabile og fremover vil bevare bagudkompatibilitet. Tjenestens komponenter er skrevet i Go og distribueres under Apache 2.0-licensen.
Rekor-komponenten indeholder en implementering af en log til opbevaring af metadata bekræftet med digitale signaturer, der afspejler oplysninger om projekter. For at sikre integriteten og beskytte mod efterfølgende datamanipulation anvendes en træstruktur kendt som 'Merkle-træet', hvor hver gren verificerer alle underliggende grene og knudepunkter ved hjælp af en samarbejdsorienteret (træbaseret) hashing. Med en endelig hash kan brugeren bekræfte rigtigheden af hele operationens historie såvel som korrektheden af tidligere tilstande af databasen (den rodhash, der bekræfter den nye tilstand af databasen, beregnes med hensyn til den tidligere tilstand). For verifikation og tilføjelse af nye posteringer tilbydes et RESTful API samt en kommandolinjegrænseflade.
Fulcio-komponenten (SigStore WebPKI) inkluderer et system til oprettelse af certifikatmyndigheder (root CA), der udsteder kortvarige certifikater baseret på email, autentificeret via OpenID Connect. Certifikatets levetid er 20 minutter, i løbet af hvilke udvikleren skal være i stand til at danne en digital signatur (hvis certifikatet senere falder i hænderne på en angriber, vil det allerede være udløbet). Derudover udvikles værktøjet Cosign (Container Signing), som er beregnet til at generere signaturer til containere, kontrollere disse signaturer og placere de signerede containere i OCI-kompatible registre (Open Container Initiative).
Implementeringen af Sigstore muliggør at øge sikkerheden i distributionskanalerne for software og beskytte mod angreb, der sigter mod at forfalske biblioteker og afhængigheder (supply chain). Et af de centrale sikkerhedsproblemer i open source-software er kompleksiteten ved at verificere kilden til softwaren og verifikationen af byggeprocessen. For eksempel anvender de fleste projekter hashes til at kontrollere integriteten af en udgivelse, men ofte opbevares de oplysninger, der er nødvendige for at verificere ægtheden, på usikre systemer og i fælles kodebiblioteker, hvor kompromittering kan give angribere mulighed for at ændre de nødvendige verifikationsfiler og uden at vække mistanke implementere skadelige ændringer.
Anvendelsen af digitale signaturer til verifikation af udgivelser har endnu ikke fået en bred udbredelse på grund af vanskelighederne med nøglehåndtering, distribution af offentlige nøgler og tilbagetrækning af kompromitterede nøgler. For at verifikationen giver mening, kræves der desuden en pålidelig og sikker proces for distribution af offentlige nøgler og kontrolsummer. Selvom der er en digital signatur, ignorerer mange brugere stadig verificeringen, da det kræver tid at lære verifikationsprocessen at kende og forstå, hvilken nøgle der er pålidelig. Projektet Sigstore forsøger at forenkle og automatisere disse processer ved at tilbyde en færdiglavet og verificeret løsning.
Kilde: opennet.ru
