CrytoFS e chiavi USB - ver 0.1

Corrado Ignoti

Abstract:

Tutti sono capaci di usare una chiave USB. Questo HOWTO spiega come trasformare una normale chiavetta USB in un drive nel quale mettere i propri dati in modo sicuro e al riparo di sguardi indiscreti utilizzando un filesystem crittografato.

1 Cosa serve

Oltre alla chiavetta USB, ma questo é scontato, dobbiamo assicurarci che il nostro kernel sia stato adeguatamento configurato per il supporto delle CrytoAPI e che questa opzione sia stata abilitata. In questo HOWTO utilizzeremo "blowfish" come algoritmo per la cifratura dei dati: nel caso di utilizzo di un altro algoritmo la procedura da seguire sará comunque la stessa.

2 Formattare la chiave

Nella normalitá dei casi le chiavi USB in vendita sono formattate utilizzando VFAT, anche se la cosa non é compromettente ai fini del nostro lavoro, é meglio formattarle utilizzando un filesystem diverso. Viste le modalitá con le quali useremo il filesystem é meglio non utilizzarne uno journaled: io ho usato il caro e buon vecchio ext2. Poiché la chiave é vista con un normale dispositivo di storage, anche la sua formattazione e l'eventuale ripartizionamento avviene utilizzando i classici comandi fdisk e mke2fs.

3 Creazione del file per il cryptoFS

Adesso creiamo il file nel quale metteremo il nostro filesystem crittografato. Prima di procedere a questa operazione assicurate di avere a disposizione, nel vostro kernel, il supporto per le crytoAPI, il supporto per i loop device e quello per i cryto-loop device. L'utility per fare il mount dei cryto-loop-device é losetup: ne esistono due versioni una delle quali é stata modifica per permettere all'utente di specificare la lunghezza della chiave che intende usare per un determinato algoritmo. Io ho usato questa versione, visto che in Gentoo é giá compresa. In alcune distro questa funzionalitá non cé. E' comuque possibile scaricare i sorgenti delle util-linux, applicare la patch ed utilizzare la nuova versione di losetup mettendolo in una directory diversa da quello fornito con la distribuzione.
Per la creazione del file si usa dd, supponendo di avere una chiave da 128 MB creiamo un file da 110 MB:

 fizban$ dd if=/dev/urandom of=~/crypto bs=1024k count=110

A questo punto possiamo associare il file ad un crypto loop device. Nell'esempio ho usato "blowfish" per la cifratura del file e una chiave da 128 bit.

 fizban$ losetup -e blowfish-128 /dev/loop0 ~/crypto

La pagina di manuale della versione modificata delle util-linux per supportare chiavi a dimensione variabile, non accoglie le modifiche relative alla sintassi del comando: questo significa che invocandola non troverete in nessun modo questa sintassi.
Una volta invocato il comando vi verrá richiesta la chiava per crittografare il fs: attenzione che avete 1 sola possibiliá per inserirla!
Adesso possiamo creare un file system vero e proprio e montarlo in una subdirectory:

 root# mke2fs /dev/loop0
 root# mkdir ~/crypto
 root# mount -t ext2 /dev/loop0 /mnt/crypto

Adesso e' necessario settare i permessi affinché l'utente "fizban" (quello che usate per lavorare con il vostro PC) passa avere pieno accesso al filesytem.
Siamo alla fine, smontate il filesystem e rilasciate il dispositivo di loop.

 root# umount /mnt/crypto
 root# losetup -d /dev/loop0

Copiate il file /crypto sulla vostra chiave USB, come se fosse un qualsiasi file e cancellate quello presente sul vostro disco fisso. A questo punto potrete montarlo ed utilizzarlo direttamente dal dispositivo USB.

About this document ...

E' possibile scaricare questo documento in formato PDF