TUF 1.0 är tillgängligt, ett ramverk för att organisera säker leverans av uppdateringar

Utgåvan av TUF 1.0 (The Update Framework) har publicerats och tillhandahåller verktyg för att säkert söka efter och ladda ner uppdateringar. Huvudmålet med projektet är att skydda klienten från typiska attacker på arkiv och infrastruktur, inklusive att motverka angripares marknadsföring av fiktiva uppdateringar som skapats efter att ha fått tillgång till nycklar för att generera digitala signaturer eller äventyra arkivet. Projektet är utvecklat under Linux Foundations regi och används för att förbättra säkerheten för uppdateringsleverans i projekt som Docker, Fuchsia, Automotive Grade Linux, Bottlerocket och PyPI (inkluderandet av nedladdningsverifiering och metadata i PyPI förväntas i nära framtid). TUF-referensimplementeringskoden ä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 programuppdateringssystem, vilket ger skydd i händelse av viktiga kompromisser från mjukvaruutvecklarnas sida. För att använda TUF räcker det att lägga till nödvändig metadata till förvaret och integrera procedurerna i TUF för att ladda ner och verifiera filer i klientkoden.

TUF-ramverket tar på sig uppgifterna att söka efter en uppdatering, ladda ner uppdateringen och verifiera dess integritet. Uppdateringsinstallationssystemet stör inte direkt ytterligare metadata, vars verifiering och laddning utförs av TUF. För integration med applikationer och uppdateringsinstallationssystem erbjuds ett lågnivå-API för åtkomst av metadata och en implementering av en klient-API-ngklient på hög nivå, redo för integration med applikationer.

Bland de attacker som TUF kan motverka är ersättning av gamla utgåvor under sken av uppdateringar för att blockera korrigering av mjukvarusårbarheter eller användarens återställning till en gammal sårbar version, samt främjande av skadliga uppdateringar korrekt signerade med en komprometterad nyckel, DoS-attacker på klienter, som att fylla upp disken med oändliga uppdateringar.

Skydd mot kompromiss med programvaruleverantörens infrastruktur uppnås genom att upprätthålla separata, verifierbara register över tillståndet för förvaret eller applikationen. Metadata verifierad av TUF inkluderar information om nycklar som kan litas på, kryptografiska hash för att utvärdera integriteten hos filer, ytterligare digitala signaturer för att verifiera metadata, information om versionsnummer och information om posternas livslängd. De nycklar som används för verifiering har en begränsad livslängd och kräver ständig uppdatering för att skydda mot signaturbildning av gamla nycklar.

Att minska risken för kompromisser i hela systemet uppnås genom användningen av en delad förtroendemodell, där varje part är begränsad endast till det område som den är direkt ansvarig för. Systemet använder en hierarki av roller med sina egna nycklar, till exempel, rotrollen signerar nycklar för roller som ansvarar för metadata i förvaret, data om tidpunkten för generering av uppdateringar och målsammansättningar, i sin tur rollen som ansvarar för sammansättningsskyltar roller kopplade till certifieringen av levererade filer.

TUF 1.0 är tillgängligt, ett ramverk för att organisera säker leverans av uppdateringar

För att skydda mot nyckelkompromettering används en mekanism för omedelbar återkallelse och utbyte av nycklar. Varje enskild nyckel innehåller endast de minsta nödvändiga befogenheterna, och autentiseringsoperationer kräver användning av flera nycklar (läckan av en enda nyckel tillåter inte en omedelbar attack på klienten, och för att äventyra hela systemet måste alla deltagares nycklar vara fångad). Klienten kan endast acceptera filer som är nyare än tidigare mottagna filer, och data laddas endast ned enligt den storlek som anges i den certifierade metadatan.

Den publicerade versionen av TUF 1.0.0 erbjuder en helt omskriven och stabiliserad referensimplementering av TUF-specifikationen som du kan använda som ett färdigt exempel när du skapar dina egna implementeringar eller för integration i dina projekt. Den nya implementeringen innehåller betydligt mindre kod (1400 rader istället för 4700), är lättare att underhålla och kan enkelt utökas, till exempel om det är nödvändigt att lägga till stöd för specifika nätverksstackar, lagringssystem eller krypteringsalgoritmer.

Källa: opennet.ru

Lägg en kommentar