giovedì 18 settembre 2008

Creare una partizione cripttata su disco USB

Questo breve tutorial spiega come creare una partizione cripttata utilizzando Linux. Il metodo utilizzato renderà la partizione utilizzabile anche sotto Windows usando l'applicazione freeOTFE portable
Innanzitutto ringrazio l'autore del post su www.ubuntista.it da cui ho tratto la maggior parte delle istruzioni.

L'idea è quella di utilizzare una parte di un disco USB rimovibile per ospitare una partizione criptata che possa essere utilizzata sia sotto Linux che sotto Windows (i test per ora sono stati effettuati solo sotto Windows XP).

Provvederemo quindi a creare due partizioni una delle quali verrà criptata, mentre l'altra conterrà file in chiaro ed il programma freeOTFE portable per l'uso sotto windows dei dati criptati.

ATTENZIONE: Seguire queste istruzioni implica la perdita totale dei dati contenuti nella partizione da criptare, quindi… occhio a cosa state cancellando! In grassetto trovate i comandi da digitare nel terminale.

PASSO 1:
Installiamo una utility per criptare:

$ sudo aptitude install cryptsetup


PASSO 2:

Ora è il momento di preparare la partizione; se non siete sicuri su come si chiami, lanciate questo comando:

$ sudo fdisk -l

Vi verranno mostrate tutte le partizioni disponibili, con il dettaglio del nome del dispositivo.

Ora che siete sicuri sul nome del device (nel mio caso sto facendo una prova sulla mia chiavetta USB, ovvero /dev/sdb1), potete lanciare il seguente comando per creare la partizione da criptare (volendo avreste anche potuto usare un tool grafico come gparted):

$ sudo fdisk /dev/[dispositivo]

(ovviamente dovete sostituire [dispositivo] con il nome del dispositivo in cui c’è (o ci sarà) la partizione che vi interessa criptare; nel mio caso, sdb è il dispositivo, e sdb1 è la partizione che intendo criptare, mentre sdb2 sarà la partizione in chiaro)

Vi verrà proposto il menu di fdisk; è sufficiente creare le partizioni (con il tasto n(ew), createle primarie o estesa a seconda delle necessità), e poi rendere permanenti le modifiche della tabella delle partizioni con il tasto w(rite).

PASSO 3:

Per essere sicuri che il proprio kernel sia aggiornato sulla nuova tabella delle partizioni, potete lanciare il comando:

$ sudo partprobe

Nel mio caso, ad esempio, Ubuntu erroneamente mi lancia una finestra di Nautilus sulla root della chiavetta USB, e il terminale mi dice che il dispositivo è occupato. Potrebbe quindi essere necessario chiudere la finestra di Nautilus e smontare il dispositivo.

PASSO 4:

Per prima cosa creiamo il filesystem nella seconda partizione. Ho scelto di utilizzare il filesystem NTFS data l'alta compatibilità con le ultime versioni di Ubuntu (e Linux in generale) e, naturalmente, la totale compatibilità con Windows.

$ sudo mkntfs /dev/[seconda partizione]

(Nel mio caso [seconda partizione] è /dev/sdb2)

Creiamo anche una etichetta per la partizione:

$ sudo ntfslabel /dev/[seconda partizione] Volume_in_chiaro


N.B. Se i comandi sopra non fossero disponibili occorre prima installare il pacchetto ntfsprogs con

$ sudo apt-get install ntfsprogs


Prima di criptare, scriveremo dei dati nella nuova partizione, per evitare “attacchi” che cercano pattern esistenti nei dati “sparsi” ancora presenti nella partizione; potete usare uno dei seguenti tre comandi (l’ultimo è il più sicuro ma richiede più tempo):

$ sudo dd if=/dev/zero of=/dev/[dispositivo] bs=4k

oppure

$ sudo dd if=/dev/urandom of=/dev/[dispositivo] bs=4k

Per migliorare la sicurezza di queste operazioni, potete effettuare delle operazioni col vostro PC (muovere il mouse, lanciare applicazioni, ecc) per rendere la casualità più efficace possibile.

PASSO 5:

A questo punto la prima partizione è pronta per essere criptata. Il metodo usato in questo tutorial si chiama LUKS, con dei valori di mio gusto per ciò che riguarda lunghezza della stringa, hash e cifratura (potete cambiarli a piacimento, se sapete cosa state facendo).
Con questo comando vi verrà anche chiesta la passphrase (frase segreta) per accedere alla vostra partizione.
Non dimenticatevi la passphrase, altrimenti è molto probabile che non potrete più accedere ai dati della vostra partizione!

$ sudo cryptsetup luksFormat /dev/[prima partizione] -c aes -s 256 -h sha256

(Nel mio caso [seconda partizione] è /dev/sdb2)

PASSO 6:

Ora che abbiamo creato l’impostazione di base per la cifratura, dobbiamo aprire la partizione per usarla (il [nome] può essere qualsiasi cosa a vostro piacimento, ma evitate gli spazi ed eventualmente anche le lettere accentate):

$ sudo cryptsetup luksOpen /dev/[prima partizione] [nome]

PASSO 7:

Ora che il dispositivo è aperto ed aggiunto al device mapper, possiamo creare dentro esso un filesystem, ed usarlo. Ecco l’ultimo comando da lanciare (nome è il [nome] dato sopra)

$ sudo mkntfs /dev/mapper/nome

E quindi creiamo una etichetta per il volume:

$ sudo ntfslabel /dev/mapper/nome Volume_criptato


Per quanto riguarda l'uso del volume criptato sotto le ultime versioni di Ubuntu (e di altre distro Linux recenti) questo è praticamente tutto! Infatti al prossimo inserimento del disco USB penserà a tutto Gnome a partire dalla richiesta della password e del montaggio del filesystem NTFS.

Per poter utilizzare la partizione criptata sotto Windows sarà sufficiente scaricare il software gratuito FreeOTFE portable e, dopo aver inserito il disco USB su di un sistema windows e montato la partizione in chiaro, installarlo su questa. Questo software permetterà l'apertura anche sotto questa piattaforma della partizione criptata!

Nessun commento: