Version 1.0 av ramverket TUF (The Update Framework) har publicerats, vilket erbjuder verktyg för sÀker kontroll och nedladdning av uppdateringar. Huvudsyftet med projektet Àr att skydda klienten mot vanliga attacker mot repository och infrastruktur, inklusive att motverka spridning av falska uppdateringar skapade efter att obehöriga fÄtt tillgÄng till nycklar för att skapa digitala signaturer eller kompromettera repository. Projektet utvecklas under Linux Foundation och anvÀnds för att öka sÀkerheten i uppdateringsleveranser i projekt som Docker, Fuchsia, Automotive Grade Linux, Bottlerocket och PyPI (verifiering av nedladdningar och metadata i PyPI förvÀntas snart bli tillgÀngligt). Koden för referensimplementationen av TUF Àr skriven i Python och distribueras under Apache 2.0-licensen.
Projektet utvecklar en serie bibliotek, filformat och verktyg som enkelt kan integreras i befintliga appuppdateringssystem, vilket sÀkerstÀller skydd vid kompromettering av nycklar pÄ mjukvaruutvecklarens sida. För att anvÀnda TUF behöver man bara lÀgga till nödvÀndiga metadata i repository och integrera de procedurer som tillhandahÄlls av TUF för nedladdning och verifiering av filer i klientkoden.
TUF-ramverket ansvarar för att kontrollera tillkomsten av uppdateringar, ladda ner uppdateringar och verifiera deras integritet. Systemet för att installera uppdateringar överlappar inte direkt med ytterligare metadata, vars kontroll och nedladdning hanteras av TUF. För integration med applikationer och installationssystem erbjuds ett lÄgnivÄ-API för Ätkomst till metadata och en implementering av ett hög-nivÄ-klient-API, ngclient, som Àr redo för integration med applikationer.
Bland de attacker som TUF kan motverka mÀrks ersÀttning av gamla versioner med uppdateringar för att blockera ÄtgÀrder som ÄtgÀrdar programvarusÄrbarheter eller för att Äterföra anvÀndare till en gammal, sÄrbar version, samt spridning av skadliga uppdateringar som Àr korrekt signerade med hjÀlp av en komprometterad nyckel, samt utförandet av DoS-attacker pÄ klienter, sÄsom att fylla disken med oÀndliga uppdateringar.
Skydd mot kompromettering av mjukvaruleverantörens infrastruktur uppnÄs genom att upprÀtthÄlla separata verifierbara poster om tillstÄndet i förrÄdet eller applikationen. Verifierbara TUF-metadata inkluderar information om pÄlitliga nycklar, kryptografiska hash-vÀrden för att bedöma integriteten hos filer, ytterligare digitala signaturer för att bekrÀfta metadata, information om versionsnummer och uppgifter om livslÀngden för poster. Nycklarna som anvÀnds för verifiering har en begrÀnsad livslÀngd och krÀver konstant uppdatering för att skydda mot signering med gamla nycklar.
Risken för kompromettering av hela systemet minskas genom att anvÀnda en modell med delat förtroende, dÀr varje part Àr begrÀnsad till det omrÄde för vilket den direkt ansvarar. Systemet anvÀnder en hierarki av roller med sina egna nycklar, till exempel signerar roten nycklar för de roller som ansvarar för metadata i förrÄdet, uppgifter om tidpunkten för uppdateringar och mÄlkompileringar, medan rollen som ansvarar för kompileringar signerar roller som Àr kopplade till bekrÀftelsen av levererade filer.

För att skydda mot kompromettering av nycklar anvÀnds en mekanism för snabb Äterkallelse och byte av nycklar. Varje enskild nyckel koncentrerar endast minimalt nödvÀndiga befogenheter, och för bekrÀftelseoperationer krÀvs anvÀndning av flera nycklar (lÀckage av en enskild nyckel tillÄter inte omedelbar attack pÄ klienten, och för att kompromettera hela systemet mÄste nycklarna frÄn alla parter fÄngas). Klienten kan bara acceptera filer som skapats senare Àn redan tidigare mottagna filer, och data laddas endast i enlighet med storleken som anges i de verifierade metadata.
Den publicerade versionen TUF 1.0.0 erbjuder en helt omarbetad och stabiliserad referensimplementation av TUF-specifikationen, som kan anvÀndas som ett fÀrdigt exempel vid skapandet av egna implementationer eller för integration i egna projekt. Den nya implementationen innehÄller avsevÀrt mindre kod (1400 rader istÀllet för 4700), Àr enklare att underhÄlla och kan enkelt utvidgas, till exempel vid behov av att lÀgga till stöd för specifika nÀtverksstackar, lagringssystem eller krypteringsalgoritmer.
KĂ€lla: opennet.ru
