Spoločnosť Google oznámila vytvorenie prvých stabilných verzií komponentov tvoriacich projekt Sigstore, ktorý bol vyhlásený za vhodný na vytváranie funkčných implementácií. Sigstore vyvíja nástroje a služby na verifikáciu softvéru pomocou digitálnych podpisov a vedenia verejného logu, ktorý potvrdzuje autenticitu zmien (transparency log). Projekt je realizovaný pod záštitou neziskovej organizácie Linux Foundation spoločnosťami Google, Red Hat, Cisco, VMware, GitHub a HP Enterprise, za účasti organizácie OpenSSF (Open Source Security Foundation) a univerzity Purdue.
Sigstore možno považovať za analóg Let’s Encrypt pre kód, poskytujúci certifikáty na potvrdenie kódu digitálnymi podpisami a nástroje na automatizáciu overovania. Pomocou Sigstore budú mohol vývojári vytvárať digitálne podpisy pre artefakty súvisiace s aplikáciami, ako sú súbory s vydaniami, kontajnerové obrazy, manifesty a spustiteľné súbory. Materiál používaný na podpisovanie sa odráža v chránenom verejnom logu, ktorý možno využiť na overovanie a audit.
Namiesto trvalých kľúčov v Sigstore sú použité krátkodobo platné efemérne kľúče, ktoré sa generujú na základe oprávnení potvrdených poskytovateľmi OpenID Connect (pri generovaní kľúčov potrebných na vytvorenie digitálneho podpisu sa vývojár identifikuje cez poskytovateľa OpenID s vazbou na email). Autenticita kľúčov sa overuje podľa verejného centralizovaného logu, ktorý umožňuje presvedčiť sa, že autor podpisu je skutočne ten, za koho sa vydáva, a podpis bol vytvorený tým istým účastníkom, ktorý zodpovedal za predchádzajúce vydania.
Pripravenosť Sigstore na implementáciu je podmienená vytvorením vydania dvoch kľúčových komponentov — Rekor 1.0 a Fulcio 1.0, ktorých programové rozhraní bolo vyhlásené za stabilné a do budúcnosti zachovávajúce spätnú kompatibilitu. Komponenty služby sú napísané v jazyku Go a distribuované pod licenciou Apache 2.0.
Komponent Rekor obsahuje realizáciu logu na uchovávanie certifikovaných digitálnymi podpismi metadát, odrážajúcich informácie o projektoch. Na zabezpečenie integrity a ochrany pred pozmeňovaním údajov sa používa stromová štruktúra „Merkleho strom“ (Merkle Tree), v ktorej každá vetva overuje všetky nižšie ležiace vetvy a uzly vďaka spoločnému (stromovému) hashovaniu. Majúc konečný hash, používateľ si môže overiť správnosť celej histórie operácií, ako aj správnosť minulých stavov databázy (koreňový kontrolný hash nového stavu databázy sa vypočítava s ohľadom na predchádzajúci stav). Na overenie a pridanie nových záznamov je k dispozícii RESTful API, ako aj príkazový riadok.
Komponent Fulcio (SigStore WebPKI) obsahuje systém na vytváranie certifikačných autorít (root CA), ktoré vydávajú krátkodobé certifikáty na základe e-mailu, autentifikovaného cez OpenID Connect. Doba platnosti certifikátu je 20 minút, počas ktorých sa musí vývojár stihnúť podpísať (ak sa certifikát neskôr dostane do rúk útočníka, už bude expirujúci). Okrem toho sa projekt vyvíja nástroj na podpisovanie kontajnerov (Cosign), určený na vytváranie podpisov kontajnerov, kontrolu podpisov a ukladanie podpísaných kontajnerov do repozitárov kompatibilných s OCI (Open Container Initiative).
Zavedenie Sigstore umožňuje zvýšiť bezpečnosť kanálov distribúcie programov a ochrániť sa pred útokmi zameranými na podvrhnutie knižníc a závislostí (supply chain). Jedným z kľúčových problémov s bezpečnosťou v otvorenom softvéri je zložitost overovania zdroja získania programu a verifikácie procesu zostavenia. Napríklad na overenie integrity vydania väčšina projektov používa hashe, no často potrebné informácie na overenie pravosti sú uchovávané v nezabezpečených systémoch a vo verejných repozitároch s kódom, v dôsledku čoho môžu útočníci zmeniť potrebné súbory na overenie a bez vzbudzenia podozrenia implementovať škodlivé zmeny.
Používanie digitálnych podpisov na overenie vydaní zatiaľ nezískalo široké uplatnenie kvôli zložitostiam pri správe kľúčov, distribúcii verejných kľúčov a odvolaní kompromitovaných kľúčov. Na to, aby malo overenie zmysel, je potrebné zabezpečiť spoľahlivý a bezpečný proces distribúcie verejných kľúčov a kontrolných súčtov. Aj pri existencii digitálneho podpisu mnohí používatelia ignorujú overenie, pretože je potrebné stráviť čas štúdiom procesu overovania a pochopením, ktorý kľúč si zaslúži dôveru. Projekt Sigstore sa snaží zjednodušiť a automatizovať tieto procesy, poskytujúc hotové a overené riešenie.
Zdroj: opennet.ru
