Red Hat i Google predstavili su Sigstore, servis za kriptografsku verifikaciju koda

Red Hat i Google, zajedno sa Univerzitetom Purdue, osnovali su projekat Sigstore, čiji je cilj stvaranje alata i servisa za provjeru softvera pomoću digitalnih potpisa i održavanje javnog dnevnika za potvrdu autentičnosti (transparentnost dnevnika). Projekat će se razvijati pod pokroviteljstvom neprofitne organizacije Linux Foundation.

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 gotovu uslugu koju već možete koristiti, i skup alata koji vam omogućavaju implementaciju sličnih usluga na vlastitu opremu. Usluga je besplatna za sve programere i dobavljače softvera, a raspoređena je na neutralnoj platformi - Linux Foundation. Sve komponente usluge su otvorenog koda, napisane u Go-u i distribuirane pod licencom Apache 2.0.

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

Dodajte komentar