DragonFlyBSD implementa Disk Encryption di livello Next-Gen

È passato diverso tempo dall’ultima volta che abbiamo parlato di sviluppi interessanti su DragonFlyBSD, ma la scorsa settimana è stato introdotto dm_target_crypt_ng, un’implementazione di nuova generazione del loro codice DM-crypt per la crittografia dei dischi.

Lo sviluppatore di DragonFlyBSD, Michael Neumann, ha riprogettato il codice DM-crypt per questo sistema operativo BSD, trasformandolo in un’implementazione trasparente per la crittografia dei dischi compatibile con dm-crypt di Linux.

Michael Neumann ha spiegato nel commit iniziale questo codice di nuova generazione:

“dm_target_crypt_ng – Aggiunta implementazione di nuova generazione.

* Non utilizziamo più opencrypto o cryptodev. Erano asincroni e causavano molte (!) complicazioni al codice.

 

 

* Invece, utilizziamo il nostro set di cifrari crittografici implementati in crypto_cipher.{c,h}, che è un’API semplificata per utilizzare cifrari a blocchi simmetrici. Richiama principalmente le implementazioni effettive degli algoritmi crittografici contenute in sys/crypto.

 

 

* L’interattività è notevolmente migliorata! Quando si esegue “blogbench” con il vecchio modulo dm_target_crypt, “blogbench” sostanzialmente “blocca” il sistema a circa 400 blog (Nb). Il cursore del mouse si blocca continuamente per circa 1 secondo. Mentre il computer diventa più lento durante l’esecuzione di dm_target_crypt_ng, non si osserva alcun ritardo del mouse. Il risultato finale delle prestazioni di “blogbench” rimane pressoché invariato. Ad esempio:

 

 

# dm_target_crypt (vecchio)
Punteggio finale per le scritture: 2136
Punteggio finale per le letture: 200584

 

 

# dm_target_crypt_ng (nuovo)
Punteggio finale per le scritture: 2265
Punteggio finale per le letture: 203668

* I BIO vengono elaborati da due worker pool, ciascuno con un set di thread associati a una CPU specifica. Le richieste di lettura devono essere decrittografate, mentre le richieste di scrittura devono essere crittografate. Avere un worker pool separato per le richieste di lettura e scrittura dovrebbe garantire maggiore equità. Le richieste vengono schedulate ai worker tramite round-robin e “struct bio” viene utilizzato per concatenare le “richieste” da elaborare dai worker thread. I worker di lettura non necessitano di ulteriore allocazione di memoria per decrittografare i blocchi. I worker di scrittura utilizzano un mpipe condiviso come in precedenza, poiché è necessario copiare il buffer di scrittura prima di crittografarlo.

 

 

* Attualmente, dm_target_crypt_ng supporta solo AES-CBC e AES-XTS. Twofish e Serpent non sono supportati. Si dice che siano più sicuri, ma anche più lenti e non supportano l’hardware. Dovrebbe essere facile reinserirli in crypto_ciphers.{c,h}.

 

 

* Se si desidera provare il nuovo modulo, aggiungere la seguente riga a /boot/loader.conf:

dm_target_crypt_ng_load=YES

 

Questo potrebbe non funzionare con “swapon” poiché tenta di caricare manualmente “dm_target_crypt”.

 

 

* Il mio piano è di rendere “dm_target_crypt_ng” l’impostazione predefinita e rimuovere il vecchio “dm_target_crypt” dopo test e feedback più approfonditi.

Dal commit iniziale di qualche giorno fa, sono state aggiunte ulteriori patch per dm_target_crypt_ng. Le patch successive hanno rifattorizzato i cifrari crittografici, migliorato l’API dei cifrari crittografici e introdotto i cifrari Twofish/Serpent CBC/XTS. Alcuni interessanti miglioramenti per chi desidera utilizzare la crittografia del disco con DragonFlyBSD.

Dato che sono trascorsi più di due anni dalla precedente versione di questo sistema operativo, DragonFlyBSD 6.4, si spera che la prossima versione si concluda presto con questo target DM-crypt di nuova generazione e i molti altri miglioramenti che si sono aggiunti nel tempo.

Articolo originale su Phoronix

Rilasciato DragonFlyBSD 6.2.2, con fix per HAMMER2 e kernel

DragonFlyBSD 6.2 è stato introdotto a gennaio con il porting del driver del kernel Linux AMDGPU, miglioramenti HAMMER2 e il porting dell’hypervisor NVMM, tra gli altri miglioramenti.

Questo fine settimana è uscito DragonFlyBSD 6.2.2 con varie correzioni di bug su  quella base di codice stabile.

DragonFlyBSD 6.2.2 apporta correzioni al suo file system originale HAMMER2 utilizzato per impostazione predefinita per questo sistema operativo BSD. Le correzioni di HAMMER2 vanno dall’affrontare un possibile panic a bug come i file eliminati che permangono fino a quando il file system non viene smontato successivamente.

DragonFlyBSD 6.2.2 affronta anche possibili races su readdir() in TMPFS e ha una varietà di diverse correzioni del kernel. Sono disponibili anche dati aggiornati sul fuso orario come aggiornamento di manutenzione.

L’elenco di poco meno di due dozzine di correzioni di bug stabili che compongono DragonFlyBSD 6.2.2 può essere trovato tramite l’elenco dei commit. Questa versione stabile di DragonFlyBSD può essere scaricata da DragonFlyBSD.org.

Rilasciato DragonFlyBSD 6.0

DragonFlyBSD 6.0 è stato lanciato ufficialmente il 10 maggio come versione più recente di questo popolare sistema operativo BSD.

Dopo i recenti lanci di FreeBSD 13.0 e OpenBSD 6.9, DragonFlyBSD 6.0 è diventato l’ultima versione di questo sistema operativo BSD forkato molto tempo fa da FreeBSD.

Ci sono molti miglioramenti al kernel e altre modifiche da trovare con DragonFlyBSD 6.0, alcuni dei punti salienti includono:

– Miglioramento del paging della memoria, varie ottimizzazioni del codice in tutto il kernel in nome di prestazioni migliori, ridotta frammentazione della memoria e altre ottimizzazioni.

– Il driver AMDSMN è stato portato da FreeBSD.

– Migliore supporto del frame-buffer EFI.

– I processori Intel vulnerabili a Meltdown vengono ora rilevati durante l’avvio.

– Il file system HAMMER2 ha il supporto iniziale di più volumi e altre aggiunte e pulizie.

– Miglioramenti “significativi” delle prestazioni di TMPFS.

– Supporto per i controller Ethernet Intel I219 più recenti, tra gli altri aggiornamenti.

– Aggiornato il supporto del driver grafico rispetto allo stato upstream di Linux 4.10.17.

– DSynth ora supporta la compressione Zstd insieme a una varietà di altri aggiornamenti.

– Un nuovo driver del file system EXT 2/3/4 non GPL.

– GCC 8 è il compilatore C / C ++ predefinito di DragonFlyBSD 6.0.

DragonFlyBSD 6.0 può essere scaricato da DragonFlyBSD.org.

DragonFlyBSD aggiunge supporto multi-volume in HAMMER2

Il file system HAMMER2 che è stato utilizzato di default su DragonFlyBSD per un po’ di tempo non ha il supporto multi-volume rispetto al suo precedente file system HAMMER1. Ma a partire da questo fine settimana nell’ultimo codice di sviluppo Git, HAMMER2 ha ora un iniziale supporto per più volumi.

HAMMER2 con il prossimo DragonFlyBSD 6.0 ha in essere l’iniziale supporto di più volumi, attualmente in grado di gestire fino a 64 volumi. La funzionalità è simile a quella di HAMMER1 per consentire a un file system HAMMER2 di estendersi su più dispositivi a blocchi. Il limite attuale è di supportare fino a 64 volumi, inferiore ai 256 volumi che HAMMER1 può gestire.

Il codice aggiunto include il supporto del kernel e le utility dello user space aggiornate per poter passare più volumi nella creazione e gestione di una configurazione multi-volume HAMMER2.

Maggiori dettagli su questa implementazione di HAMMER2 tramite questo commit.

1 2