Tvrtka Google je objavila prve stabilne verzije komponenti koje čine projekt Sigstore, koji je proglašen pogodnim za stvaranje radnih implementacija. Sigstore razvija alate i usluge za verifikaciju softvera pomoću digitalnih potpisa i održavanje javnog registra koji potvrđuje autentičnost promjena (transparency log). Projekt se razvija pod okriljem neprofitne organizacije Linux Foundation u suradnji s kompanijama Google, Red Hat, Cisco, vmWare, GitHub i HP Enterprise, uz sudjelovanje organizacije OpenSSF (Open Source Security Foundation) i Sveučilišta Purdue.
Sigstore se može smatrati ekvivalentom Let’s Encrypt za kod, pružajući certifikate za ovjeru koda digitalnim potpisima i alate za automatizaciju provjere. Uz pomoć Sigstore, programeri će moći generirati digitalne potpise za artefakte povezane s aplikacijom, poput datoteka s izdanjima, slika kontejnera, manifestacija i izvršnih datoteka. Materijal koji se koristi za potpisivanje odražava se u zaštićenoj javnoj evidenciji otpornom na izmjene, koja se može koristiti za provjeru i reviziju.
Umjesto trajnih ključeva, Sigstore koristi kratkotrajne efemerne ključeve koji se generiraju na temelju ovlaštenja potvrđenih od strane pružatelja usluga OpenID Connect (u trenutku generiranja ključeva potrebnih za izradu digitalnog potpisa, programer se identificira putem OpenID pružatelja povezanog s email adresom). Autentičnost ključeva provjerava se putem javnog centraliziranog registra, koji omogućuje potvrdu da je autor potpisa doista osoba koja se predstavlja i da je potpis stvorio isti sudionik koji je bio odgovoran za prethodna izdanja.
Spremnost Sigstore za implementaciju uvjetovana je stvaranjem izdanja dva ključna komponente — Rekor 1.0 i Fulcio 1.0, čiji su programski sučelja proglašeni stabilnima i zadržat će unatrag kompatibilnost. Komponente usluge написане su na jeziku Go i distribuiraju se pod licencom Apache 2.0.
Komponent Rekor sadrži implementaciju loga za pohranu ovjerenih digitalnim potpisima metapodataka koji odražavaju informacije o projektima. Za osiguranje cjelovitosti i zaštitu od promjene podataka unazad primjenjuje se stablo Merkle (Merkle Tree), u kojem svaka grana verificira sve donje grane i čvorove zahvaljujući zajedničkom (stablo) heširanju. Imajući konačni heš, korisnik može potvrditi ispravnost cijele povijesti operacija, kao i ispravnost prošlih stanja Baze podataka (korijenski provjerni heš novog stanja baze izračunava se uzimajući u obzir prošlo stanje). Za provjeru i dodavanje novih zapisa dostupan je RESTful API, kao i sučelje naredbenog retka.
Komponenta Fulcio (SigStore WebPKI) uključuje sustav za kreiranje certifikacijskih centara (root CA) koji izdaju kratkotrajne certifikate temeljem emaila, autentificiranog putem OpenID Connect. Vrijeme trajanja certifikata iznosi 20 minuta, unutar kojih programer mora stvoriti digitalni potpis (ako certifikat u budućnosti dođe u ruke zlonamjernika, bit će već istekao). Dodatno, projekt razvija alatni set Cosign (Container Signing) namijenjen za stvaranje potpisa za kontejnere, provjeru potpisa i pohranu potpisanih kontejnera u repozitorijima kompatibilnim s OCI (Open Container Initiative).
Implementacija Sigstore omogućuje povećanje sigurnosti kanala distribucije softvera i zaštitu od napada usmjerenih na zamjenu biblioteka i ovisnosti (supply chain). Jedan od ključnih problema sigurnosti u otvorenom softveru je složenost provjere izvora dobivanja programa i verifikacije procesa izgradnje. Na primjer, za provjeru cjelovitosti izdanja većina projekata koristi heševe, ali često potrebne informacije za provjeru autentičnosti pohranjuju se na nezaštićenim sustavima i u zajedničkim repozitorijima s kodom, a kao rezultat kompromitacije, napadači mogu zamijeniti potrebne datoteke za verifikaciju i, ne izazivajući sumnju, implementirati zlonamjerne promjene.
Primjena digitalnih potpisa za verifikaciju isporuka još uvijek nije široko prihvaćena zbog poteškoća u upravljanju ključevima, distribuciji javnih ključeva i povlačenju kompromitiranih ključeva. Da bi verifikacija imala smisla, potrebno je također organizirati pouzdan i siguran proces distribucije javnih ključeva i kontrolnih zbrojeva. Čak i uz postojanje digitalnog potpisa, mnogi korisnici ignoriraju provjeru jer je potrebno uložiti vrijeme u proučavanje procesa verifikacije i razumjeti koji ključ zaslužuje povjerenje. Projekat Sigstore pokušava pojednostaviti i automatizirati ove procese, nudeći spremno i testirano rješenje.
Izvor: opennet.ru
