Společnost Google oznámila vydání prvních stabilních verzí komponentů, které tvoří projekt Sigstore, schopný pro produkční nasazení. Sigstore vyvíjí nástroje a služby pro ověřování softwaru pomocí digitálních podpisů a vedení veřejného registru, který potvrzuje pravost změn (transparency log). Projekt je rozvíjen pod záštitou neziskové organizace Linux Foundation ve spolupráci se společnostmi Google, Red Hat, Cisco, vmWare, GitHub a HP Enterprise za účasti organizace OpenSSF (Open Source Security Foundation) a Purdue University.
Sigstore lze považovat za obdobu Let’s Encrypt pro kód, který poskytuje certifikáty pro podepisování kódu digitálními podpisy a nástroje pro automatizaci kontroly. Pomocí Sigstore budou vývojáři moci vytvářet digitální podpisy pro artefakty související s aplikacemi, jako jsou vydávací soubory, obrazce kontejnerů, manifesty a spustitelné soubory. Materiál použitý pro podepisování je odražen ve veřejném registru chráněném proti změnám, který lze použít pro ověření a audit.
Místo trvalých klíčů používá Sigstore krátkodobé efemérní klíče, které jsou generovány na základě oprávnění potvrzených poskytovateli OpenID Connect (při generování klíčů potřebných k vytvoření digitálního podpisu se vývojář identifikuje prostřednictvím poskytovatele OpenID s vazbou na e-mail). Pravost klíčů je ověřena prostřednictvím veřejného centralizovaného registru, který umožňuje zjistit, že autor podpisu je skutečně ten, za koho se vydává, a podpis byl vytvořen stejným účastníkem, který byl odpovědný za předchozí vydání.
Připravenost Sigstore k nasazení je podmíněna vydáním dvou klíčových komponent — Rekor 1.0 a Fulcio 1.0, jejichž programové rozhraní bylo označeno za stabilní a nadále bude zachovávat zpětnou kompatibilitu. Komponenty služby jsou napsány v jazyce Go a šíří se pod licencí Apache 2.0.
Komponent Rekor obsahuje implementaci logu pro uchovávání certifikovaných digitálními podpisy metadat, která odrážejí informace o projektech. Pro zajištění integrity a ochrany proti zpětnému zkreslení dat se využívá stromová struktura „Merkleho strom“ (Merkle Tree), v níž každý větev ověřuje všechny podřízené větve a uzly díky společnému (stromovému) hashování. Maje konečný hash, může uživatel ověřit správnost celé historie operací, jakož i správnost minulých stavů DB (kořenový kontrolní hash nového stavu databáze se počítá s ohledem na minulý stav). Pro ověřování a přidávání nových záznamů je k dispozici RESTful API, jakož i rozhraní příkazového řádku.
Komponent Fulcio (SigStore WebPKI) zahrnuje systém pro vytváření certifikačních autorit (root CA), které vydávají krátkodobé certifikáty na základě e-mailu, autentizovaného přes OpenID Connect. Doba platnosti certifikátu činí 20 minut, během nichž musí vývojář stihnout vytvořit digitální podpis (pokud se certifikát dostane do rukou útočníka, již bude neplatný). Dále projekt vyvíjí nástroj Cosign (Container Signing), určený k vytváření podpisů pro kontejnery, ověřování podpisů a umisťování podepsaných kontejnerů do repozitářů kompatibilních s OCI (Open Container Initiative).
Implementace Sigstore umožňuje zvýšit bezpečnost distribučních kanálů softwaru a ochránit se před útoky zaměřenými na nahrazení knihoven a závislostí (supply chain). Jedním z klíčových problémů bezpečnosti v otevřeném softwaru je složitost ověření zdroje získání programu a verifikace procesu sestavení. Například pro ověření integrity vydání většina projektů používá hashe, ale často nezbytné informace pro ověření autenticity jsou uloženy na nechráněných systémech a ve veřejných repozitářích s kódem, což vede k tomu, že útočníci mohou nahradit potřebné soubory pro verifikaci a, aniž by to vzbudilo podezření, vložit škodlivé změny.
Použití digitálních podpisů pro ověřování vydání dosud nezískalo široké uplatnění kvůli obtížím při správě klíčů, distribuci veřejných klíčů a odvolání kompromitovaných klíčů. Aby ověřování mělo smysl, je navíc třeba zajistit spolehlivý a bezpečný proces distribuce veřejných klíčů a hashů. I když je digitální podpis k dispozici, mnoho uživatelů kontrolu ignoruje, protože je nutné věnovat čas studiu procesu ověřování a pochopit, který klíč si zaslouží důvěru. Projekt Sigstore se pokouší zjednodušit a automatizovat tyto procesy tím, že poskytuje hotové a ověřené řešení.
Zdroj: opennet.ru
