A Red Hat és a Google, közösen a Purdue Egyetemmel, létrehozták a Sigstore projektet, amelynek célja a szoftverek digitális aláírásokkal történő ellenőrzésére és a hitelesség megerősítésére szolgáló eszközök és szolgáltatások fejlesztése (transparency log). A projekt a Linux Foundation nonprofit szervezet égisze alatt fog folytatódni.
A javasolt projekt növelni fogja a szoftverek terjesztési csatornáinak biztonságát és védelmet nyújt a programkomponensek és függőségek (supply chain) helyettesítése ellen indított támadásokkal szemben. Az egyik kulcsfontosságú biztonsági probléma az open source szoftverek esetében a program forrásának és a build folyamatának ellenőrzésének nehézsége. Például a kiadások integritásának ellenőrzésére a legtöbb projekt hash funkciókat használ, azonban a hitelesség ellenőrzéséhez szükséges információk gyakran védtelen rendszerekben és megosztott kód-repozitóriumokban tárolódnak, amelyeket, ha kompromittálnak, a támadók helyettesíteni tudják a szükséges ellenőrzési fájlokat, így gyanú nélkül beilleszthetnek kártékony módosításokat.
Csak egy kis részhalmaza a projekteknek használ digitális aláírásokat a kiadások terjesztése során a kulcsok kezelésének bonyolultsága, a nyilvános kulcsok terjesztése és a kompromittált kulcsok visszavonása miatt. Az érvényes hitelesítéshez megbízható és biztonságos nyilvános kulcsok és hash értékek terjesztési folyamata is szükséges. Még ha digitális aláírás is létezik, sok felhasználó figyelmen kívül hagyja az ellenőrzést, mivel időt kellene szánniuk az ellenőrzési folyamat megismerésére és annak megértésére, hogy melyik kulcs érdemel bizalmat.
A Sigstore a kód Let’s Encrypt megfelelőjeként van bemutatva, amely hitelesítéseket biztosít a kód digitális aláírásaival és automatizálási eszközöket az ellenőrzéshez. A Sigstore segítségével a fejlesztők képesek lesznek digitális aláírásokat létrehozni a programhoz kapcsolódó artefaktumokhoz, például kiadási fájlokhoz, konténerképekhez, manifesztumokhoz és végrehajtható fájlokhoz. A Sigstore sajátossága, hogy az aláírásra használt anyagok egy módosíthatatlan nyilvános naplóban tükröződnek, amely ellenőrzésre és auditálásra is felhasználható.
A Sigstore-ban a tartós kulcsok helyett rövid életű efemer kulcsokat alkalmaznak, amelyeket az OpenID Connect szolgáltatók által igazolt jogosultságok alapján generálnak (a kulcsok digitális aláírásához a fejlesztő az OpenID szolgáltatón keresztül az e-mail címéhez köti magát). A kulcsok valóságtartalmát egy nyilvános központosított napló ellenőrzi, amely lehetővé teszi, hogy megbizonyosodjon arról, hogy az aláírás szerzője valóban az, akinek mondja magát, és az aláírást az a résztvevő hozta létre, aki a korábbi kiadásokért is felelt.
A Sigstore kész szolgáltatásként igénybe vehető, valamint egy eszközkészletet is biztosít, amely lehetővé teszi az ilyen típusú szolgáltatások telepítését a saját infrastruktúrájukon. A szolgáltatás ingyenesen elérhető minden fejlesztő és szoftverszolgáltató számára, és a semleges Linux Foundation platformján van telepítve. A szolgáltatás minden összetevője nyílt forráskódú, Go nyelven íródott, és Apache 2.0 licenc alatt kerül forgalomba.
A fejlesztés alatt álló összetevők közül említhetők:
- A Rekor — egy naplóimplementáció, amely ellenőrzött digitális aláírásokkal rendelkező metaadatok tárolására szolgál, amelyek a projektekről szólnak. Az adatok integritásának és a visszamenőleges manipulációk elleni védelemhez egy fa-struktúrájú "Merkle-fával" biztosítanak, amelyben minden ága ellenőrzi az alatta lévő ágakat és csomópontokat, a közös (fa) hashelés révén. A felhasználónak a végső hash segítségével lehetősége van ellenőrizni az összes művelet történetének helyességét, valamint a DB korábbi állapotainak helyességét (az új állapot gyökér ellenőrző hash-át a korábbi állapot figyelembevételével számolják ki). Az új bejegyzések verifikálásához és hozzáadásához Restful API, valamint CLI-felület áll rendelkezésre.
- A Fulcio (SigStore WebPKI) — egy olyan rendszer, amely a rövid életű certifikátok kiadását végző tanúsítványkiadó központokat (Root-CA) hozza létre, a jelentkezett e-mail cím alapján, amely az OpenID Connect-en keresztül van hitelesítve. A tanúsítvány élettartama 20 perc, amely alatt a fejlesztőnek alá kell írnia (ha a tanúsítvány később rossz kezekbe kerül, az már lejárt).
- A Cosign (Container Signing) — egy eszközkészlet, amely lehetővé teszi a konténerek aláírásának létrehozását, az aláírások ellenőrzését és az aláírt konténerek tárolását OCI (Open Container Initiative) kompatibilis tárolókban.
Forrás: opennet.ru
