Red Hat i Google, zajedno sa Univerzitetom Purdue, osnovali su projekat Sigstore, čiji je cilj kreiranje alata i usluga za verifikaciju softvera korištenjem digitalnih potpisa i vođenje javnog dnevnika transparentnosti. Projekat će biti razvijen pod pokroviteljstvom neprofitne organizacije. Linux Fondacija.
Predloženi projekat će poboljšati sigurnost kanala distribucije softvera i zaštititi od napada u cilju zamjene softverskih komponenti i ovisnosti (lanca nabave). Jedan od ključnih sigurnosnih problema u softveru otvorenog koda je teškoća provjere izvora programa i provjere procesa izrade. Na primjer, većina projekata koristi hashove za provjeru integriteta izdanja, ali često se informacije potrebne za autentifikaciju pohranjuju na nezaštićenim sistemima iu zajedničkim spremištima koda, zbog čega napadači mogu ugroziti datoteke potrebne za verifikaciju i unijeti zlonamjerne promjene bez izazivanja sumnje.
Samo mali dio projekata koristi digitalne potpise prilikom distribucije izdanja zbog poteškoća u upravljanju ključevima, distribuciji javnih ključeva i opozivanju kompromitovanih ključeva. Da bi verifikacija imala smisla, potrebno je organizovati pouzdan i siguran proces distribucije javnih ključeva i kontrolnih suma. Čak i sa digitalnim potpisom, mnogi korisnici zanemaruju verifikaciju jer moraju provesti vrijeme proučavajući proces verifikacije i razumjeti koji ključ je pouzdan.
Sigstore se reklamira kao ekvivalent Let's Encrypt za kod, pružajući certifikate za digitalno potpisivanje koda i alate za automatizaciju verifikacije. Uz Sigstore, programeri mogu digitalno potpisati artefakte vezane za aplikacije kao što su datoteke izdanja, slike kontejnera, manifesti i izvršni fajlovi. Posebna karakteristika Sigstorea je da se materijal koji se koristi za potpisivanje odražava u javnom dnevniku zaštićenom od neovlaštenog pristupa koji se može koristiti za verifikaciju i reviziju.
Umjesto trajnih ključeva, Sigstore koristi kratkotrajne efemerne ključeve, koji se generiraju na osnovu vjerodajnica koje su potvrdili OpenID Connect provajderi (u vrijeme generisanja ključeva za digitalni potpis, programer se identifikuje preko OpenID provajdera povezanog sa e-poštom). Autentičnost ključeva se provjerava korištenjem javnog centraliziranog dnevnika, koji omogućava provjeru da je autor potpisa upravo onaj za koga se predstavlja, a potpis je formirao isti učesnik koji je bio odgovoran za prošla izdanja.
Sigstore nudi i uslugu spremnu za korištenje i skup alata za implementaciju sličnih usluga na vašem vlastitom hardveru. Usluga je besplatna za sve programere i dobavljače softvera i implementirana je na neutralnoj platformi. Linux Fondacija. Sve komponente servisa su otvorenog koda, napisane u Go-u i distribuirane pod Apache 2.0 licencom.
Među razvijenim komponentama možemo primijetiti:
- Rekor je implementacija dnevnika za pohranjivanje digitalno potpisanih metapodataka koji odražavaju informacije o projektima. Kako bi se osigurao integritet i zaštita od oštećenja podataka nakon činjenice, koristi se struktura nalik stablu „Merkle Tree“, u kojoj svaka grana provjerava sve osnovne grane i čvorove, zahvaljujući zajedničkom (stablom) heširanju. Imajući konačni hash, korisnik može provjeriti ispravnost cjelokupne historije operacija, kao i ispravnost prošlih stanja baze podataka (heš provjere korijena novog stanja baze podataka izračunava se uzimajući u obzir prošlo stanje ). Za verifikaciju i dodavanje novih zapisa, obezbeđen je Restful API, kao i cli interfejs.
- Fulcio (SigStore WebPKI) je sistem za kreiranje autoriteta za sertifikaciju (Root-CA) koji izdaju kratkotrajne sertifikate na osnovu e-pošte autentifikovane preko OpenID Connect-a. Životni vek sertifikata je 20 minuta, tokom kojih programer mora imati vremena da generiše digitalni potpis (ako sertifikat kasnije padne u ruke napadača, on će već biti istekao).
- Cosign (Container Signing) je alat za generiranje potpisa za kontejnere, provjeru potpisa i postavljanje potpisanih kontejnera u spremišta kompatibilna sa OCI (Open Container Initiative).
izvor: opennet.ru
