Il progetto Redox OS ha presentato il gestore di pacchetti pkgar, scritto nel linguaggio Rust

Sviluppatori del sistema operativo Redox, scritto utilizzando il linguaggio Rust e il concetto di microkernel, hanno presentato nuovo gestore di pacchetti pkgar. Nel progetto si sta sviluppando un nuovo formato di pacchetti, una libreria con funzioni di gestione dei pacchetti e un toolkit da riga di comando per creare e estrarre una raccolta di file verificati crittograficamente. Il codice di pkgar è scritto in Rust e distribuito sotto licenza MIT.

Il formato pkgar non pretende di essere universale ed è ottimizzato tenendo conto delle specifiche del sistema operativo Redox OS. Il gestore di pacchetti supporta la verifica delle fonti tramite firma digitale e il controllo dell'integrità. Le somme di controllo vengono calcolate utilizzando la funzione hash blake3. La funzionalità pkgar legata alla verifica può essere accessibile senza la necessità di salvare effettivamente l'archivio del pacchetto, manipolando solamente la parte del'intestazione. In particolare, il pacchetto è composto da un file di intestazione (.pkgar_head) e un file di dati (.pkgar_data). Un pacchetto completo correttamente firmato (.pkgar) può essere creato semplicemente unendo il file di intestazione al file di dati ("cat example.pkgar_head example.pkgar_data > example.pkgar").

Il file di intestazione contiene checksum separati per l'intestazione e le strutture con parametri dal file di dati, oltre a una firma digitale per la verifica del pacchetto. Il file di dati include un elenco sequenziale di tutti i file e le directory forniti nel pacchetto. Prima di ogni elemento dati è presente una struttura con metadati che includono il checksum per i dati stessi, la dimensione, i permessi, il percorso relativo del file installato e l'offset dei parametri del prossimo elemento dati. Se durante l'aggiornamento alcuni file non sono stati modificati e il checksum corrisponde, vengono saltati e non caricati.

Per verificare l'integrità della fonte è sufficiente ottenere solo il file di intestazione, mentre la correttezza del file di dati selezionato può essere controllata scaricando solo le strutture con i parametri di quel file e verificando la loro corrispondenza con il checksum contenuto nel file di intestazione. I dati stessi possono essere verificati solo dopo il download, utilizzando il checksum dalla struttura dei parametri precedentemente ai dati.

I pacchetti sono progettati per consentire una creazione ripetibile, il che significa che la creazione di un pacchetto per una specifica directory porta sempre alla generazione di un pacchetto identico. Dopo l'installazione, nel sistema vengono conservati solo i metadati necessari per ricostruire il pacchetto dai dati installati (la composizione del pacchetto, i checksum, i percorsi e i diritti di accesso sono inclusi nei metadati).

Obiettivi principali di pkgar:

  • Atomicità — gli aggiornamenti vengono applicati automaticamente quando possibile.
  • Risparmio di traffico — i dati vengono trasmessi sulla rete solo quando cambia l'hash (solo i file modificati vengono scaricati durante l'aggiornamento).
  • Alte prestazioni, vengono utilizzati algoritmi crittografici veloci (blake3 supporta il parallel processing dei dati durante il calcolo dell'hash). Se i dati del repository non sono stati precedentemente memorizzati nella cache, l'hash per i dati da scaricare può essere calcolato durante il download.
  • Minimalismo — a differenza di altri formati, pkgar include solo i metadati necessari per l'estrazione del pacchetto.
  • Indipendenza dalla directory di installazione — il pacchetto può essere installato in qualsiasi directory, da qualsiasi utente (l'utente deve avere i diritti di scrittura nella directory scelta).
  • Sicurezza — i pacchetti vengono sempre verificati crittograficamente e la verifica avviene prima di qualsiasi operazione effettiva sul pacchetto (innanzitutto si scarica l'intestazione e se la firma digitale è corretta, i dati vengono scaricati in una directory temporanea che vengono spostati nella directory di destinazione dopo la verifica).

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster