Red Hat i Google predstavili su Sigstore, servis za provjeru kriptografskog koda

Red Hat i Google, zajedno sa Sveučilištem Purdue, osnovali su projekt Sigstore, čiji je cilj stvaranje alata i usluga za provjeru softvera pomoću digitalnih potpisa i održavanje javnog dnevnika za potvrdu autentičnosti (transparency log). Projekt će se razvijati pod pokroviteljstvom neprofitne organizacije Linux Foundation.

Predloženi projekt poboljšat će sigurnost distribucijskih kanala softvera i zaštititi od napada usmjerenih na zamjenu softverskih komponenti i ovisnosti (lanac nabave). Jedan od ključnih sigurnosnih problema u softveru otvorenog koda je teškoća provjere izvora programa i provjere procesa izgradnje. Na primjer, većina projekata koristi hashove za provjeru integriteta izdanja, ali često su informacije potrebne za autentifikaciju pohranjene na nezaštićenim sustavima iu zajedničkim repozitorijima koda, zbog čega napadači mogu kompromitirati datoteke potrebne za provjeru i unijeti zlonamjerne promjene ne izazivajući sumnju.

Samo mali dio projekata koristi digitalne potpise prilikom distribucije izdanja zbog poteškoća u upravljanju ključevima, distribuciji javnih ključeva i opozivu kompromitiranih ključeva. Da bi verifikacija imala smisla, također je potrebno organizirati pouzdan i siguran proces distribucije javnih ključeva i kontrolnih zbrojeva. Čak i s digitalnim potpisom, mnogi korisnici ignoriraju provjeru jer moraju potrošiti vrijeme na proučavanje postupka potvrde i razumijevanja koji je ključ 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 uz aplikacije kao što su datoteke izdanja, slike spremnika, manifesti i izvršne datoteke. Posebna značajka Sigstorea je da se materijal koji se koristi za potpisivanje odražava u javnom zapisniku zaštićenom od neovlaštenog mijenjanja koji se može koristiti za provjeru i reviziju.

Umjesto trajnih ključeva, Sigstore koristi kratkotrajne efemerne ključeve, koji se generiraju na temelju vjerodajnica potvrđenih od pružatelja OpenID Connecta (u trenutku generiranja ključeva za digitalni potpis, programer se identificira putem OpenID providera koji je povezan s e-poštom). Autentičnost ključeva provjerava se korištenjem javnog centraliziranog dnevnika, koji omogućuje provjeru da je autor potpisa upravo onaj za kojeg se predstavlja i da je potpis formirao isti sudionik koji je bio odgovoran za prošla izdanja.

Sigstore pruža i gotovu uslugu koju već možete koristiti i skup alata koji vam omogućuju implementaciju sličnih usluga na vlastitoj opremi. Usluga je besplatna za sve programere i pružatelje softvera, a postavljena je na neutralnoj platformi - Linux Foundation. Sve komponente usluge su otvorenog koda, napisane u Go i distribuirane pod licencom Apache 2.0.

Među razvijenim komponentama možemo primijetiti:

  • Rekor je implementacija dnevnika za pohranu digitalno potpisanih metapodataka koji odražavaju informacije o projektima. Kako bi se osigurao integritet i zaštitilo od oštećenja podataka nakon činjenice, koristi se struktura poput stabla "Merkleovo stablo", u kojoj svaka grana provjerava sve temeljne grane i čvorove, zahvaljujući zajedničkom raspršivanju (poput stabla). Imajući konačni hash, korisnik može provjeriti ispravnost cjelokupne povijesti operacija, kao i ispravnost prošlih stanja baze podataka (root verifikacijski hash novog stanja baze podataka izračunava se uzimajući u obzir prošlo stanje ). Za provjeru i dodavanje novih zapisa, dostupan je Restful API, kao i cli sučelje.
  • Fulcio (SigStore WebPKI) je sustav za stvaranje certifikacijskih tijela (Root-CA) koja izdaju kratkotrajne certifikate na temelju e-pošte provjerene putem OpenID Connecta. Životni vijek certifikata je 20 minuta, tijekom kojih programer mora imati vremena za generiranje digitalnog potpisa (ako certifikat kasnije padne u ruke napadača, već će isteći).
  • Sosign (Container Signing) je skup alata za generiranje potpisa za spremnike, provjeru potpisa i stavljanje potpisanih spremnika u repozitorije kompatibilne s OCI (Open Container Initiative).

Izvor: opennet.ru

Dodajte komentar