Bylo vydáno vydání projektu gittuf 0.4, které vyvíjí hierarchický systém ověřování obsahu repozitářů Git, umožňující minimalizovat rizika v případě kompromitace jednotlivých vývojářů, kteří mají přístup k repozitáři. Gittuf poskytuje dodatečnou vrstvu bezpečnosti pro Git a soubor nástrojů pro správu klíčů všech vývojářů, kteří mají přístup k repozitáři, a pro nastavení pravidel přístupu k větvím, tagům a jednotlivým souborům. Kód projektu je napsán v jazyce Go a je distribuován pod licencí Apache 2.0. Projekt je ve fázi aktivního vývoje a má kvalitu alfa-verze, vhodnou pro experimenty, ale zatím není připravený pro pracovní nasazení.
Informace a artefakty, které poskytují dodatečné ověření provedených změn, jsou uchovávány ve skladu objektů Git v samostatném specifickém pro gittuf prostoru názvů, což umožňuje zachovat zpětnou kompatibilitu s existujícími nástroji a službami, včetně GitHub a GitLab. Při použití nástrojů, které nepodporují gittuf, zůstává repozitář zcela přístupný, ale je omezená možnost rozšířeného ověření jeho integrity. Architektura gittuf je založena na ověřených prvcích rámce TUF (The Update Framework), který se používá k ochraně procesů vytváření aktualizací v takových projektech, jako jsou Docker, Fuchsia, AGL (Automotive Grade Linux) a PyPI.
Model ověřování v gittuf je založen na aplikaci hierarchického systému distribuce důvěry. Kořen důvěry (root of trust) patří majiteli repozitáře, který může generovat klíče pro účastníky vývoje a určovat pravidla, podle kterých mohou být vytvořené klíče použity. Gittuf umožňuje vytvářet flexibilní granulární pravidla, která určují pravomoci každého vývojáře a oblast repozitáře, ve které má možnost provádět změny. Například vývojář může být autorizován k vytváření tagů, provádění změn v určitých větvích nebo změnám pouze jednotlivých souborů v repozitáři.
Vývojáři a změny, které provádějí, jsou identifikováni pomocí klíčů a digitálních podpisů. Gittuf umožňuje generovat nové klíče, bezpečně je distribuovat, provádět pravidelnou rotaci klíčů, odvolávat kompromitované klíče, spravovat seznamy přístupu (ACL) a názvové prostory v Git repositářích. Gittuf také provádí vedení referenčního logu všech změn (RSL — Reference State Log), jehož integritu a ochranu před zpětným zkreslením zajišťuje pomocí stromové struktury „Merkle Tree“ — každý uzel ověřuje všechny nižší větve a uzly díky stromovému hashování (mít konečný hash, uživatel si může ověřit správnost celé historie operací, stejně jako správnost minulých stavů).
Pro ověření digitálních podpisů commitů a tagů formuje a distribuuje vlastník repositáře veřejné klíče, které jsou přímo spojeny s repositářem. Pro prevenci škodlivého postupu změn, které byly vytvořeny po získání přístupu k klíčům pro generování digitálních podpisů jednotlivých vývojářů, se používají mechanismy pro odvolání a náhradu klíčů. Klíče mají omezenou životnost a vyžadují neustálou aktualizaci pro ochranu před generováním podpisu starými klíči.
Zdroj: opennet.ru
