Byl publikován vydání rámce TUF 1.0 (The Update Framework), který poskytuje prostředky pro bezpečné ověřování dostupnosti a stahování aktualizací. Hlavním cílem projektu je chránit klienta před běžnými útoky na repozitáře a infrastrukturu, včetně boje proti šíření falešných aktualizací, které byly vytvořeny po získání přístupu k klíčům pro generování digitálních podpisů nebo kompromitaci repozitáře. Projekt se vyvíjí pod záštitou organizace Linux Foundation a používá se k posílení bezpečnosti dodávání aktualizací v projektech, jako jsou Docker, Fuchsia, Automotive Grade Linux, Bottlerocket a PyPI (začlenění ověřování stahování a metadat v PyPI se očekává v blízké budoucnosti). Kód referenční implementace TUF je napsán v jazyce Python a šíří se pod licencí Apache 2.0.
Projekt vyvíjí řadu knihoven, formátů souborů a utilit, které se mohou snadno integrovat do stávajících systémů aktualizace aplikací a poskytují ochranu v případě kompromitace klíčů na straně vývojářů softwaru. Pro použití TUF stačí přidat do repozitáře nezbytná metadata a do klientského kódu integrovat poskytnuté v TUF procedury pro stahování a ověřování souborů.
Rámec TUF se ujímá úkolů ověřování vzniku aktualizace, stahování aktualizace a ověřování její integrity. Systém instalace aktualizací se přímo nespojuje s dodatečnými metadaty, jejichž ověřování a stahování má na starosti TUF. Pro integraci s aplikacemi a systémy instalace aktualizací je nabízen nízkoúrovňový API pro přístup k metadatům a realizace vysoceúrovňového klientského API ngclient, které je připraveno pro integraci s aplikacemi.
Mezi útoky, proti nimž může TUF účinně zasáhnout, patří podstrčení starých vydání pod záminkou aktualizací s cílem zablokovat opravu zranitelností v softwaru nebo vrácení uživatele na starou zranitelnou verzi, stejně jako šíření škodlivých aktualizací, které jsou správně podepsány pomocí kompromitovaného klíče, a provádění DoS útoků na klienty, jako je například zaplnění disku nekonečnou aktualizací.
Ochrana před kompromitací infrastruktury dodavatele softwaru je zajištěna udržováním samostatných ověřitelných záznamů o stavu repozitáře nebo aplikace. Ověřitelná metaúdaje TUF zahrnují informace o klíčích, kterým lze důvěřovat, kryptografické hash hodnoty pro posouzení integrity souborů, další digitální podpisy pro potvrzení metadata, údaje o číslech verzí a informace o životnosti záznamů. Používané k ověřování klíče mají omezenou životnost a vyžadují neustálou aktualizaci, aby se ochránily před podepisováním starými klíči.
Snižování rizika kompromitace celého systému je realizováno pomocí modelu s rozdělením důvěry, ve kterém je každá strana omezena pouze na tu oblast, za kterou přímo odpovídá. V systému je použita hierarchie rolí s vlastními klíči, například root role podepisuje klíče pro role odpovědné za metadata v repozitáři, údaje o čase vytvoření aktualizací a cílové sestavy, na což role odpovědná za sestavy podepisuje role související s potvrzováním dodávaných souborů.

Pro ochranu před kompromitací klíčů se používá mechanismus rychlého odvolání a nahrazení klíčů. V každém jednotlivém klíči jsou soustředěny pouze minimálně nezbytné pravomoci, a pro operace potvrzování je třeba použít několik klíčů (únik jednotlivého klíče neumožňuje okamžitý útok na klienta, a pro kompromitaci celého systému je nutné získat klíče všech účastníků). Klient může přijímat pouze soubory, které byly vytvořeny později než již dříve získané soubory, a data jsou nahrávána pouze v souladu s velikostí uvedenou v ověřených metadatech.
Uveřejněná verze TUF 1.0.0 nabízí zcela přepracovanou a stabilizovanou referenční implementaci specifikace TUF, kterou lze využít jako hotový příklad při vytváření vlastních implementací nebo pro integraci do svých projektů. Nová implementace obsahuje podstatně méně kódu (1400 řádků místo 4700), je snadněji udržovatelná a může být snadno rozšiřována, například v případě potřeby přidání podpory specifických síťových zásobníků, úložných systémů nebo šifrovacích algoritmů.
Zdroj: opennet.ru
