Red Hat in Google sta predstavila Sigstore, storitev za preverjanje kriptografske kode

Red Hat in Google sta skupaj z univerzo Purdue ustanovila projekt Sigstore, namenjen ustvarjanju orodij in storitev za preverjanje programske opreme z digitalnimi podpisi in vzdrževanje javnega dnevnika za potrditev pristnosti (transparency log). Projekt se bo razvijal pod okriljem neprofitne organizacije Linux Foundation.

Predlagani projekt bo izboljšal varnost distribucijskih kanalov programske opreme in zaščitil pred napadi, katerih cilj je zamenjava programskih komponent in odvisnosti (oskrbovalna veriga). Ena ključnih varnostnih težav pri odprtokodni programski opremi je težava pri preverjanju vira programa in preverjanju postopka gradnje. Na primer, večina projektov uporablja zgoščene vrednosti za preverjanje celovitosti izdaje, vendar so informacije, potrebne za avtentikacijo, pogosto shranjene v nezaščitenih sistemih in v deljenih repozitorijih kode, zaradi česar lahko napadalci ogrozijo datoteke, potrebne za preverjanje, in uvedejo zlonamerne spremembe ne da bi vzbudili sum.

Le majhen delež projektov uporablja digitalne podpise pri distribuciji izdaj zaradi težav pri upravljanju ključev, distribuciji javnih ključev in preklicu ogroženih ključev. Da bi bilo preverjanje smiselno, je treba organizirati tudi zanesljiv in varen proces distribucije javnih ključev in kontrolnih vsot. Tudi z digitalnim podpisom mnogi uporabniki ignorirajo preverjanje, ker morajo preučiti postopek preverjanja in razumeti, kateri ključ je vreden zaupanja.

Sigstore se oglašuje kot ekvivalent Let's Encrypt za kodo, ki zagotavlja potrdila za digitalno podpisovanje kode in orodja za avtomatsko preverjanje. S Sigstore lahko razvijalci digitalno podpišejo artefakte, povezane z aplikacijami, kot so datoteke za izdajo, slike vsebnikov, manifesti in izvršljive datoteke. Posebna značilnost Sigstore je, da se material, uporabljen za podpisovanje, odraža v javnem dnevniku, zaščitenem pred posegi, ki se lahko uporablja za preverjanje in revizijo.

Sigstore namesto trajnih ključev uporablja kratkotrajne efemerne ključe, ki se generirajo na podlagi poverilnic, potrjenih s strani ponudnikov OpenID Connect (v trenutku generiranja ključev za digitalni podpis se razvijalec identificira preko ponudnika OpenID, ki je povezan z e-pošto). Verodostojnost ključev se preverja z javnim centraliziranim dnevnikom, ki omogoča preverjanje, ali je avtor podpisa točno tisti, za katerega se predstavlja, in je podpis oblikoval isti udeleženec, ki je bil odgovoren za pretekle objave.

Sigstore ponuja že pripravljeno storitev, ki jo lahko že uporabljate, in nabor orodij, ki vam omogočajo uvajanje podobnih storitev na lastno opremo. Storitev je brezplačna za vse razvijalce in ponudnike programske opreme in je nameščena na nevtralni platformi - Linux Foundation. Vse komponente storitve so odprtokodne, napisane v Go in se distribuirajo pod licenco Apache 2.0.

Med razvitimi komponentami lahko opazimo:

  • Rekor je implementacija dnevnika za shranjevanje digitalno podpisanih metapodatkov, ki odražajo informacije o projektih. Za zagotovitev celovitosti in zaščito pred poškodbami podatkov po dejstvu se uporablja drevesna struktura »Merkle Tree«, v kateri vsaka veja preveri vse osnovne veje in vozlišča, zahvaljujoč skupnemu (drevesnemu) zgoščevanju. S končnim hashom lahko uporabnik preveri pravilnost celotne zgodovine operacij, pa tudi pravilnost preteklih stanj baze podatkov (korenski verifikacijski hash novega stanja baze podatkov se izračuna ob upoštevanju preteklega stanja ). Za preverjanje in dodajanje novih zapisov sta na voljo Restful API in vmesnik cli.
  • Fulcio (SigStore WebPKI) je sistem za ustvarjanje overiteljev (Root-CA), ki izdajajo kratkotrajna potrdila na podlagi elektronske pošte, overjene prek OpenID Connect. Življenjska doba potrdila je 20 minut, v tem času pa mora razvijalec imeti čas za ustvarjanje digitalnega podpisa (če potrdilo pozneje pride v roke napadalcu, bo že poteklo).
  • Сosign (Container Signing) je komplet orodij za generiranje podpisov za vsebnike, preverjanje podpisov in postavitev podpisanih vsebnikov v repozitorije, združljive z OCI (Open Container Initiative).

Vir: opennet.ru

Dodaj komentar