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ů pkgarProjekt vyvíjí nový formát balíčků, knihovnu s funkcemi pro správu balíčků a nástroje příkazového řádku pro vytváření a extrakci kryptograficky ověřené kolekce souborů. Kód pkgar je napsán v Rustu a distribuovány pod licencí MIT.

Formát pkgar není zamýšlen jako univerzální a je optimalizován pro specifika operačního systému Redox OS. Správce balíčků podporuje ověřování zdroje pomocí digitálního podpisu a kontrolu integrity. Kontrolní součty se počítají pomocí hašovací funkce. blake3K ověřovacím funkcím balíčku pkgar lze přistupovat bez nutnosti ukládat archiv balíčku, a to pouze manipulací s jeho záhlaví. Balíček se konkrétně skládá ze záhlaví (.pkgar_head) a datového souboru (.pkgar_data). Správně podepsaný a kompletní balíček (.pkgar) lze získat pouhým připojením záhlaví k datovému souboru („cat example.pkgar_head example.pkgar_data > example.pkgar“).

Záhlaví souboru obsahuje samostatné kontrolní součty pro záhlaví a parametrické struktury z datového souboru a také digitální podpis pro ověření balíčku. Datový soubor obsahuje postupný seznam všech souborů a adresářů obsažených v balíčku. Každému datovému prvku předchází struktura metadat, která zahrnuje kontrolní součet pro samotná data, jejich velikost, přístupová práva, relativní cestu k instalovanému souboru a posun parametrů dalšího datového prvku. Pokud se jednotlivé soubory během procesu aktualizace nezměnily a jejich kontrolní součty se shodují, jsou přeskočeny a nestaženy.

Integritu zdroje lze ověřit získáním pouze hlavičkového souboru a správnost vybraného datového souboru lze ověřit načtením pouze parametrických struktur souboru a ověřením, zda odpovídají kontrolnímu součtu uvedenému v hlavičkovém souboru. Samotná data lze po načtení ověřit pomocí kontrolního součtu z parametrické struktury předcházející datům.

Balíčky jsou navrženy tak, aby byly opakovatelné, což znamená, že vytvoření balíčku pro daný adresář vždy vede k identickému balíčku. Po instalaci jsou v systému uložena pouze metadata, která jsou dostatečná k rekonstrukci balíčku z nainstalovaných dat (obsah balíčku, kontrolní součty, cesty a přístupová práva jsou obsaženy v metadatech).

Hlavní cíle pkgaru:

  • Atomicity – aktualizace se aplikují automaticky, kdykoli je to možné.
  • Úspora provozu - data se po síti přenášejí pouze při změně hashe (během aktualizace se stahují pouze změněné soubory).
  • Vysoký výkon s využitím rychlých kryptografických algoritmů (blake3 podporuje paralelní zpracování dat během výpočtu hash). Pokud data z úložiště nebyla dříve uložena do mezipaměti, lze hash stažených dat vypočítat během stahování.
  • Minimalismus - Na rozdíl od jiných formátů obsahuje pkgar pouze metadata potřebná k rozbalení balíčku.
  • Nezávislost na instalačním adresáři - balíček může být nainstalován do libovolného adresáře libovolným uživatelem (uživatel musí mít oprávnění pro zápis do vybraného adresáře).
  • Zabezpečení - pakety jsou vždy kryptograficky ověřovány a ověření se provádí před provedením skutečných operací s paketem (nejprve se stáhne hlavička a pokud je digitální podpis správný, stáhnou se data do dočasného adresáře, který se po ověření přesune do cílového adresáře).

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster