Redox OS-projektet introducerede pkgar-pakkehåndteringen, skrevet i Rust

Operativsystem udviklere Redox, skrevet ved at bruge Rust-sproget og mikrokernekonceptet, præsenteret ny pakkeadministrator pkgar. Projektet udvikler et nyt pakkeformat, et pakkehåndteringsbibliotek og et kommandolinjeværktøj til at oprette og hente en kryptografisk verificeret samling af filer. Pkgar-koden er skrevet i Rust og distribueret af under MIT-licensen.

pkgar-formatet foregiver ikke at være universelt og er optimeret under hensyntagen til de specifikke specifikationer af Redox OS-operativsystemet. Pakkehåndteringen understøtter kildebekræftelse ved hjælp af en digital signatur og integritetskontrol. Kontrolsummer beregnes ved hjælp af en hash-funktion blake3. Den verifikationsrelaterede funktionalitet af pkgar kan tilgås uden faktisk at gemme pakkearkivet ved kun at manipulere overskriftsdelen. Især består pakken af ​​en header-fil (.pkgar_head) og en datafil (.pkgar_data). En korrekt signeret fuld oversigtspakke (.pkgar) kan fås ved blot at tilføje header-filen til datafilen ("cat example.pkgar_head example.pkgar_data > example.pkgar").

Header-filen indeholder separate kontrolsummer for headeren og strukturer med parametre fra datafilen, samt en digital signatur til at verificere pakken. Datafilen inkluderer en sekventiel liste over alle filer og mapper, der er leveret i pakken. Hvert dataelement er forudgået af en struktur med metadata, der inkluderer en kontrolsum for selve dataene, størrelse, adgangsrettigheder, relativ sti til filen, der installeres, og forskydningen af ​​parametrene for det næste dataelement. Hvis individuelle filer ikke er ændret under opdateringsprocessen, og kontrolsummen matcher, springes de over og indlæses ikke.

Du kan kontrollere kildens integritet ved kun at modtage header-filen og korrektheden af ​​den valgte datafil ved kun at indlæse strukturerne med parametrene for denne fil og sørge for, at de overholder kontrolsummen, der er certificeret i header-filen. Selve dataene kan kontrolleres, efter at de er blevet indlæst, ved hjælp af kontrolsummen fra strukturen med parametre, der går forud for dataene.

Pakker er i sagens natur gentagelige, hvilket betyder, at oprettelse af en pakke til en specifik mappe altid vil resultere i en identisk pakke. Efter installationen gemmes kun metadata i systemet, hvilket er tilstrækkeligt til at rekonstruere pakken fra de installerede data (sammensætningen af ​​pakken, kontrolsummer, stier og adgangsrettigheder er indeholdt i metadataene).

Hovedmål med pkgar:

  • Atomicitet - opdateringer anvendes automatisk, når det er muligt.
  • Trafikbesparelser - data overføres kun over netværket, når hashen ændres (under opdatering downloades kun ændrede filer).
  • Der bruges højtydende, hurtige kryptografiske algoritmer (blake3 understøtter parallel databehandling ved beregning af hash). Hvis dataene fra depotet ikke tidligere er blevet cachelagret, kan en hash for de downloadede data beregnes på downloadtidspunktet.
  • Minimalistisk - I modsætning til andre formater inkluderer pkgar kun de metadata, der er nødvendige for at udtrække pakken.
  • Uafhængighed af installationsmappen - pakken kan installeres i enhver mappe, af enhver bruger (brugeren skal have skrivetilladelse til den valgte mappe).
  • Sikkerhed - Pakker verificeres altid kryptografisk, og verifikation udføres før egentlige handlinger udføres på pakken (headeren indlæses først, og hvis den digitale signatur er korrekt, indlæses data i en midlertidig mappe, som flyttes til målbiblioteket efter verifikation).

Kilde: opennet.ru

Tilføj en kommentar