GitHub predložil na diskusiu návrh na zavedenie služby Sigstore na overovanie balíkov pomocou digitálnych podpisov a vedenie verejného logu na potvrdenie pravosti pri distribúcii vydaní. Použitie Sigstore poskytne dodatočnú úroveň ochrany pred útokmi zameranými na zmenu softvérových komponentov a závislostí (supply chain). Napríklad zavedená zmena ochráni zdrojové kódy projektov v prípade kompromitácie účtu vývojára jednej z závislostí v NPM a vytvorenia aktualizácie balíka so škodlivým kódom zločincom.
Vďaka novej úrovni ochrany budú môcť vývojári priradiť vytvorený balík k použitým zdrojovým kódom a zostavovacieho prostrediu, čím poskytnú užívateľovi možnosť overiť, že obsah balíka zodpovedá obsahu zdrojových kódov v hlavnom repozitári projektu. Použitie Sigstore podstatne uľahčuje správu kľúčov a umožňuje zbaviť sa problémov spojených s registráciou, odvolávaním a správou kryptografických kľúčov. Sigstore sa prezentuje ako ekvivalent Let’s Encrypt pre kód, poskytujúci certifikáty na overenie kódu digitálnymi podpisami a nástroje na automatizáciu overovania.
Namiesto neustálych kľúčov sa v Sigstore používajú krátkodobé efemérne kľúče, ktoré sa generujú na základe oprávnení. Materiál použitý na podpisovanie je zaznamenaný v zabezpečenom pred zásahmi verejnom logu, ktorý umožňuje overiť, že autor podpisu je naozaj ten, za koho sa vydáva, a že podpis vytvoril ten istý účastník, ktorý bol zodpovedný za predchádzajúce vydania. Na zabezpečenie integrity a ochrany pred zmenou údajov zadným dátumom sa používa stromová štruktúra „Merkleho strom“ (Merkle Tree), v ktorej každá veta overuje všetky nižšie vetvy a uzly vďaka vzájomnému (stromovému) hashovaniu. S konečným hashom môže užívateľ overiť správnosť celej histórie operácií a takisto správnosť predchádzajúcich stavov databázy (koreňový kontrolný hash nového stavu databázy sa počíta so zreteľom na predchádzajúci stav).
Zdroj: opennet.ru
