Partizioni criptate con cryptoloop Come tutti, anche voi avrete delle infomazioni professionali e/o personali che non volete lasciare alla portata di tutti. Se state cercando un metodo per proteggere i vostri dati, anche in caso di furto (toccatevi) del vostro portatile o dell vostro HD, forse cryptoloop può fare al caso vostro. * Metodo Innanzitutto dovremo creare un file della dimensione voluta, che sarà poi montato sul nostro file system protetto da un algoritmo di nostra scelta (qui useremo twofish). * Creare il file Utilizzeremo dd per creare un file di 1 Gb (1000 blocchi di 1 Mb) che riempiremo di 0 (input file = /dev/zero), per esempio “sikurezza” all'interno della vostra home dir : $ dd if=/dev/zero bs=1M count=1000 of=~/sikurezza NB : per rendere più complesso un eventuale tentativo di decriptazione, possiamo utilizzare come fonte /dev/random : $ dd if=/dev/random bs=1M count=1000 of=~/sikurezza In questo caso il tempo di creazione del file aumenta, fino a qualche minuto o a qualche decina di minuti...ma la prudenza non è mai troppa ;) * Scegliere l'algoritmo di criptazione Installamo il modulo cryptoloop : $ sudo modprobe cryptoloop Verifichiamolo : $ lsmod | grep cryptoloop Dovreste vedere due righe simili a queste (ovviamente i numeri possono non essere uguali): cryptoloop 3584 0 loop 14728 1 cryptoloop Vediamo l'elenco degli algoritmi di criptazione disponibili sul sistema col comando : $ sudo modinfo /lib/modules/`uname -r`/kernel/crypto/* | grep description Questo è l'elenco relativo alla mia macchina (Hoary 5.04 kernel 2.6.10-5-386): description: Anubis Cryptographic Algorithm description: ARC4 Cipher Algorithm description: Blowfish Cipher Algorithm description: Cast5 Cipher Algorithm description: Cast6 Cipher Algorithm description: CRC32c (Castagnoli) calculations wrapper for lib/crc32c description: Null Cryptographic Algorithms description: Deflate Compression Algorithm for IPCOMP description: DES & Triple DES EDE Cipher Algorithms description: Khazad Cryptographic Algorithm description: MD4 Message Digest Algorithm description: Michael MIC description: Serpent and tnepres (kerneli compatible serpent reversed) Cipher Algorithm description: SHA1 Secure Hash Algorithm description: SHA256 Secure Hash Algorithm description: SHA-512 and SHA-384 Secure Hash Algorithms description: Quick & dirty crypto testing module description: TEA & XTEA Cryptographic Algorithms description: Twofish Cipher Algorithm description: Whirlpool Message Digest Algorithm Scegliamo un algoritmo di criptazione (non di hash o di digest) come blowfish o twofish. Io ho scelto twofish. * Creare il file system criptato Montiamo ora il file con losetup , (losetup is used to associate loop devices with regular files or block devices, to detach loop devices and to query the status of a loop device) indicando l’algoritmo di criptazione scelto con l’opzione -e : $ sudo losetup -e twofish /dev/loop0 ~/sikurezza !!!!!! ATTENZIONE : La password che vi viene ora chiesta NON è quella di sudo! Queste è quella propria della partizione: vi verrà chiesta ogni volta che la vorrete montare. Scegliete quindi una password robusta e differente da quella di login. Se vi viene restituito un errore che indica che /dev/loop0 è occupato (ioctl: LOOP_SET_FD: Dispositivo o risorsa occupata), trovate una device libera col comando $ sudo losetup -f Dobbiamo adesso creare il file sistem sulla partizione, ad esempio ext3 : $ sudo mkfs.ext3 /dev/loop0 ed un mount point : $ sudo mkdir /mnt/sikurezza et voilà, la nostra “cassaforte” è pronta ! Possiamo liberare /dev/loop0 (o /dev/loopX) : $ sudo losetup -d /dev/loop0 * Montaggio automagico ;) Per montare (e smontare) il file system criptato, aggiungiamo questa riga in /etc/fstab (su una sola riga, ovviamnte): /home/$vostro_user/sikurezza /mnt/sikurezza ext3 noauto,encryption=twofish,user,exec 0 0 sostituendo a $vostro_user il nostro username Ora possiamo montare la nostra partizione (quando ne avremo bisogno) con : $ mount /mnt/sikurezza ed inserendo la passowrd, e smontarla dopo l'uso con : $ umount /mnt/sikurezza !!!! NB : Potete modificare i file di questa partizione solo come root (usando sudo, meglio). L'optimum sarà utilizzarla quindi per quelle informazioni che necessitano dei soli privilegi di lettura (es il segretissimo “Mucche sferiche a densità uniforme.txt”). * Caricare il modulo cryptoloop all'avvio Per non dovere caricare “a manina” (es via modprobe) il modulo cryptoloop, è sufficente aggiungerlo a /etc/modules : $ sudo -s # echo "cryptoloop" >> /etc/modules # exit In questo modo, il modulo sarà caricato all'avvio del sistema (e evitando che otteniate un errore quando proverete a montare la partizione criptata). * Aggiungere file alla partizione criptata Come lo ho detto più sopra, potete scrivere nella divisione soltanto come root. Dovrete quindi utilizzare sudo ogni volta, o loggarvi come root con sudo -s ******* Piccola nota paranoica ******** Non serve a nulla proteggere i vostri dati mettendoli in una partizione criptata se ne restano tracce in chiaro su un' altra . Dunque, anziché spostare dati (e questo equivale a copiarli e poi cancellarli in modo "convenzionale"), copiate prima e poi cancellate gli originali con un metodo più sicuro (Google is your friend). * E gli altri ? Cryptoloop non è l'unica soluzione, né la più efficace. Lo ho descritto qui poiché è, IMHO, il più semplice da implementare per proteggere una quantità variabile di dati. Se volete spingervi oltre , ed in particolare utilizzare il successore di cryptoloop (dm-crypt), vi raccomando la lettura dell' eccellente http://www.ubuntulinux.org/wiki/EncryptedFilesystemHowto (in inglese) sulla cui ultima parte sono basate queste mie note (grazie per il vostro lavoro ragazzi) * Copyright This work is licensed under a Creative Commons License. Massimo Danieli andycapp@freshnet.org