23.6 Filesystem cifrati

Per mantenere le informazioni al sicuro sul proprio sistema si può optare per realizzare una partizione del disco protetta da cifratura, in maniera tale che le informazioni vengano cifrate prima di essere memorizzate su di essa e decifrate quando vengono lette da essa. Tale operazione può essere effettuata per mezzo di appositi software che consentono l’accesso alla partizione stessa effettuando le operazioni di cifratura e decifratura in maniera del tutto trasparente per l’utente. Ovviamente il sistema richiederà la chiave di cifratura per poter effettuare il mount della partizione stessa.

Su GNU/Linux esiste dm-crypt9, il successore di cryptoloop, ...

Prima di creare una partizione cifrata è opportuno (anche se non necessario) riempire la partizione in oggetto con dei valori casuali. Ciò può essere fatto con il seguente comando:

 
# dd if=/dev/urandom of=device  
dove device è il nome della partizione (es. /dev/hda3 se si tratta della terza partizione del primo disco ATA). Il dispositivo /dev/urandom genera devi valori pesudocasuali che vengono utilizzati per scrivere sulla partizione device.

La generazione di valori pseudocasuali di /dev/urandom è piuttosto buona. Quella di /dev/randomè migliore, ma impiega un tempo circa 50 000 volte superiore del precedente.

Una volta riempita la partizione di valori casuali, è necessario creare una relazione tra la partizione fisica (cifrata) del disco con una logica gestita a livello mapper. La partizione può essere creata per mezzo del comando cryptsetup10.

[da completare ...]

 
# cryptsetup create mapper_name device  
A questo punto cryptsetup richiede l’inserimento della passphrase (la chiave utilizzata da AES per la cifratura/decifratura delle informazioni che verranno scritte/lette sulla/dalla partizione.

Quindi si può procedere all’inizializzazione del filesystem (es. ext3) che deve essere contenuto all’interno della partizione. Questo lo si può fare con il comando

 
# mkfs.ext3 /dev/mapper/mapper_name  
La partizione può dunque essere montata in un mount point. Ad esempio, se la si vuol montare nel mount point /mnt/encrypted si crei, con l’utente superuser, detta directory, con il comando

 
# mkdir /mnt/encrypted  
quindi si modifichi il file /etc/passwd inserendo la riga relativa al mount del nuovo dispositivo, ovvero analoga a quella riportata di seguito

 
/dev/mapper/mapper_name /mnt/encrypted ext3 noauto,noatime 0 0  
A questo punto si può montare la partizione con il comando

 
# mount /dev/mapper/mapper_name /mnt/encrypted  
ed utilizzare /mnt/encrypted come una qualunque directory. Ovviamente le operaizioni sulla partizione cifrata saranno leggermente più lente rispetto a quelle sulle partizioni non cifrate, dovute alle opportune operazioni di cifratura/decifratura che deve effettuare il sistema sulle informazioni, ma la differenza di prestazioni non sembra essere molto evidente.

Ovviamente, ogni volta che si riavvierà il sistema i sarà la necessità di montare la partizione cifrata con i seguenti comandi:

 
# cryptsetup create mapper_name device
# mount /dev/mapper/mapper_name /mnt/encrypted  
È possibile smontare la partizione con i comandi seguenti:

 
# umount /mnt/encrypted
# cryptsetup remove mapper_name  


  23.6.1 Filesystem cifrati su file