Projekt Redox OS představil správce balíčků pkgar napsaný v Rustu

Vývojáři operačního systému Redox, psaný pomocí jazyka Rust a konceptu mikrojádra, prezentovány nový správce balíčků pkgar. Projekt vyvíjí nový formát balíčků, knihovnu pro správu balíčků a sadu nástrojů příkazového řádku pro vytváření a získávání kryptograficky ověřené kolekce souborů. Kód pkgar je napsán v Rust and distribuovány pod licencí MIT.

Formát pkgar nepředstírá, že je univerzální a je optimalizován s ohledem na specifika operačního systému Redox OS. Správce balíčků podporuje ověření zdroje pomocí digitálního podpisu a kontroly integrity. Kontrolní součty se počítají pomocí hashovací funkce blake3. K funkcím pkgar souvisejícím s ověřováním lze přistupovat bez skutečného uložení archivu balíčků manipulací pouze s částí záhlaví. Balíček se skládá zejména z hlavičkového souboru (.pkgar_head) a datového souboru (.pkgar_data). Správně podepsaný úplný souhrnný balíček (.pkgar) lze získat jednoduchým připojením hlavičkového souboru k datovému souboru („cat example.pkgar_head example.pkgar_data > example.pkgar“).

Soubor hlavičky obsahuje samostatné kontrolní součty pro hlavičku a struktury s parametry z datového souboru a také digitální podpis pro ověření balíčku. Datový soubor obsahuje sekvenční výpis všech souborů a adresářů dodaných v balíčku. Každému datovému prvku předchází struktura s metadaty, která obsahuje kontrolní součet pro samotná data, velikost, přístupová práva, relativní cestu k instalovanému souboru a offset parametrů dalšího datového prvku. Pokud se během procesu aktualizace jednotlivé soubory nezměnily a kontrolní součet se shoduje, jsou přeskočeny a nenačtou se.

Integritu zdroje můžete zkontrolovat přijetím pouze hlavičkového souboru a správnost vybraného datového souboru načtením pouze struktur s parametry tohoto souboru a ujištěním se, že odpovídají kontrolnímu součtu certifikovanému v hlavičkovém souboru. Samotná data lze po načtení zkontrolovat pomocí kontrolního součtu ze struktury s parametry předcházejícími datům.

Balíčky jsou ze své podstaty opakovatelné, což znamená, že vytvoření balíčku pro konkrétní adresář bude mít vždy za následek identický balíček. Po instalaci jsou v systému uložena pouze metadata, která stačí k rekonstrukci balíčku z nainstalovaných dat (složení balíčku, kontrolní součty, cesty a přístupová práva jsou obsaženy v metadatech).

Hlavní cíle pkgar:

  • Atomicita – aktualizace jsou aplikovány automaticky, kdykoli je to možné.
  • Úspora provozu - data jsou přenášena po síti pouze při změně hashe (při aktualizaci se stahují pouze změněné soubory).
  • Používají se vysoce výkonné, rychlé kryptografické algoritmy (blake3 podporuje paralelní zpracování dat při výpočtu hashů). Pokud data z úložiště nebyla dříve uložena do mezipaměti, lze v době stahování vypočítat hash pro stažená data.
  • Minimalistický – Na rozdíl od jiných formátů obsahuje pkgar pouze metadata potřebná k extrahování balíčku.
  • Nezávislost na instalačním adresáři - balíček může být instalován do libovolného adresáře, libovolným uživatelem (uživatel musí mít oprávnění k zápisu do zvoleného adresáře).
  • Zabezpečení - Pakety jsou vždy kryptograficky ověřeny a ověření se provádí před provedením skutečných operací s balíčkem (nejprve se načte hlavička a pokud je digitální podpis správný, data se načtou do dočasného adresáře, který se poté přesune do cílového adresáře). ověření).

Zdroj: opennet.ru

Přidat komentář