Truecrypt

spialaspia@inventati.org

v0.1 16/06/2007 No Copyright
Guida all'installazione e all'uso di truecrypt con linux

1. Truecrypt

1.1 Introduzione

TrueCrypt ( http://www.truecrypt.org) e' un software opensource disponibile per Windows e Linux.

TrueCrypt serve per cifrare intere partizioni (su hard disk o su penne USB) o per creare unita' disco virtuali criptate all'interno di un file (file container).

Dopo aver digitato la password posta a protezione dei dati, si potra' accedere alle unita' virtuali come se fossero normali unita' disco.

Tutte le operazioni crittografiche verranno realizzate al volo da TrueCrypt in modo trasparente per l'utente.

1.2 Installazione

Per diverse distribuzioni esistono i pacchetti, oppure potete scaricare dal sito ufficiale i sorgenti per poi compilarli.

Una volta scaricati i sorgenti dovete compilarli, le seguenti operazioni andranno quindi svolte con i permessi di root.

# tar -zxvf truecrypt-4.3a-source-code.tar.gz

# cd truecrypt-4.3a-source-code/Linux

# ./install.sh

A questo punto truecrypt e' pronto per essere usato da linea di comando.

Se il vostro sistema non carica automaticamente il modulo del kernel date un

# modprobe truecrypt

e inserite il modulo truecrypt nella lista dei moduli caricati automaticamente all'avvio (come farlo dipende dalla vostra distribuzione di linux).

1.3 Permettere agli utenti normale di usare truecrypt

Normalmente truecrypt puo' essere utilizzato solo da root, ma con sudo anche gli utenti normali possono utilizzarlo.
Creiamo il gruppo truecrypt:

# groupadd truecrypt

e poi diciamo a sudo che tutti gli utenti di questo gruppo possono utilizzare truecrypt:

# visudo

e aggiungete questa riga:

%truecrypt ALL=(root) NOPASSWD:/usr/bin/truecrypt

Ricordatevi di rifare il login in modo che il vostro utente venga riconosciuto come appartenente al gruppo truecrypt.

1.4 Creare un file container normale

L'utilizzo da linea di comando puo' essere fatto come utente normale, non e' necessario essere root.
Per cominciare creiamo un file container:
$ truecrypt -c volume.tc
in questo modo diciamo semplicemente a truecrypt di creare un file di nome volume.tc, sara' poi lui a farci una serie di domande:

Volume type:
 1) Normal
 2) Hidden
Select [1]: 
Qui' vi chiede se volete creare un volume normale, o un volume nascosto dentro un altro volume. Per ora selezionate 1 per creare un volume normale.

Filesystem:
 1) FAT
 2) None
 Select [1]:
Questa opzione vi chiede se volete formattare il volume come FAT (che puo' essere letto sia con linux che con windows) oppure se per ora non lo volete formattare (potete comunque farlo in seguito se volete creare una partizione ext3 o altre).

Io ho avuto qualche problema con partizioni ext3 e la possibilita' di usare truecrypt come utente, quindi vi consiglio di creare volumi FAT, tanto poi solo l'utente avra' i permessi per accere al mount point.

Enter volume size (bytes - size/sizeK/sizeM/sizeG): 
Indicate la dimensione del file container, es 10M per 10 megabyte.

 Hash algorithm:
 1) RIPEMD-160
 2) SHA-1
 3) Whirlpool
 Select [1]: 
Qui' e' possibile scegliere l'algoritmo di hashing, se non sapete cos'e' lasciate pure la scelta di default per ripemd-160.

Encryption algorithm:
 1 ) AES
 2 ) Blowfish
 3 ) CAST5
 4 ) Serpent
 5 ) Triple DES
 6 ) Twofish
 7 ) AES-Twofish
 8 ) AES-Twofish-Serpent
 9 ) Serpent-AES
10 ) Serpent-Twofish-AES
11 ) Twofish-Serpent Select [1]: 
Qui' invece potete scegliere l'algoritmo di cifratura, anche qui' se non conoscete le differenze scegliete tranquillamente il primo, AES.

Enter password for new volume volume.tc:
 press [Enter] if you dont want any password
Inserite la password, vi chiedera' di reinserirla una seconda volta per verificare che non facciate errori.

Enter keyfile path [none]: here enter a full path to the key or
leave empty if you dont have any key
E' possibile proteggere il volume anche con una chiave che sta dentro un file, se vi basta la password come livello di sicurezza lasciate pure vuoto questo campo.

TrueCrypt will now collect random data. 
Is your mouse connected directly to the computer where TrueCrypt is running?
Truecrypt ha bisogno di dati casuali per creare il volume, se non avete il mouse direttamente collegato al PC rispondete [n]. Sul mio portatile anche se rispondo [y] il mouse e' come se non lo vedesse, se capita anche a voi rispondete [n] e molto semplicemente vi chiedera' di pigiare tasti a caso sulla tastiera per un po'.
Alla fine di questo processo il file container verra' scritto sul disco e sara' pronto per essere utilizzato.
Senza rispondere alle domande si poteva impostare il container anche in questo modo:

%dollar truecrypt --type normal --encryption AES --hash RIPEMD-160 --size 10M --filesystem NONE -c volume.tc

Ora formattiamo il volume:

Per mappare il volume basta dare il comando:

$ truecrypt volume.tc

inserite la password come richiesto, e poi potete verificare un po' di cose con il comando:

$ truecrypt -vl

/dev/mapper/truecrypt0:
 Volume: /tmp/volume.tc
 Type: Normal
 Size: 10485248 bytes
 Encryption algorithm: AES
 Mode of operation: LRW
 Read-only: No
 Hidden volume protected: No

come si vede il volume e' mappato su /dev/mapper/truecrypt0
ora possiamo formattarlo (in questo caso come ext3):
(se avete scelto in fase di creazione di creare un volume FAT questo passaggio non e' necessario).

$ mkfs.ext3 /dev/mapper/truecrypt0

ora che l'abbiamo formattato e' pronto per essere montato e utilizzato, prima togliamo il mapping:

$ truecrypt -d /dev/mapper/truecrypt0

1.5 Creare un volume nascosto

Una delle caratteristiche migliori di truecrypt e' quella di nascondere volume crittato dentro un altro volume crittato.
Se vi interessa utilizzare questa funzione con questo comando creiamo un volume nascosto di 5Mb dentro il volume normale che abbiamo creato prima.

$ truecrypt --type hidden --size 5M -c volume.tc

Rispondete alle domande come avete fatto prima (ovviamente scegliete una password diversa da quella del container normale).

ora formattate il volume nascosto:
(se avete creato il volume come FAT in fase di creazione questo passaggio non e' necessario.)

$ truecrypt volume.tc

$ mkfs.ext3 /dev/mapper/truecrypt0

$ truecrypt -d /dev/mapper/truecrypt0

Adesso avete un volume normale e dentro questo un volume nascosto.

E l'esistenza del volume nascosto non puo' essere provata, nemmeno guardando lo spazio utilizzato.

1.6 Utilizzare il volume crittato

Per prima cosa il volume normale va montato in una directory, ad esempio creiamo la directory /mnt/truecrypt:

$ mkdir /mnt/truecrypt

$ truecrypt -u -P volume.tc /mnt/truecrypt

Il -u serve a montare il container in modo che l'utente normale possa accedervi. Il -P serve a proteggere il volume nascosto in modo che potete aggiungere files nel volume normale senza intaccare il volume nascosto. Se non avete creato un volume nascosto non usate il -P. Ovviamente come password dovete inserire quella che avete scelto per il volume normale.

Ora potete mettere roba dentro /mnt/truecrypt e tutto quello che ci metterete sara' criptato e una volta smontato il volume non sara' piu' visibile.

Al termine dell'utilizzo ricordatevi di smontare il volume:

$ truecrypt -d /mnt/truecrypt

(Puo' essere comodo inserire il comando per montare il volume all'avvio del sistema in qualche script di avvio, e negli script di shutdown del sistema inserire la riga per smontare il volume)

Se invece volete lavorare sul volume nascosto lanciate truecrypt con questa sintassi:

$ truecrypt -u volume.tc /mnt/truecrypt

e quando vi chiede la password inserite la password che avete scelto per il volume nascosto, quindi sostanzialmente se inserite la password del volume normale sara' montato il volume normale, se invece inserite la password del volume nascosto verra' montato il volume nascosto.
State attenti a non confondere le password perche' se inserite la password del volume normale senza usare il -P rischiate di perdere il volume nascosto.

1.7 Interfacce grafiche

In attesa che gli sviluppatori rilascino un'interfaccia grafica anche per linux, esiste un'interfaccia grafica ancora in fase sperimentale per interagire con truecrypt.
L'utilizzo e' molto semplice, l'unico inconveniente e' che non prevede il comando [-u] e quindi utilizzarla come utente normale non e' molto utile.

Potete scaricarla da qui':

http://onekript.sourceforge.net)

Per utilizzarlo e' necessario avere installato il Kommander, un pacchetto per kde, se non usate kde come window manager per lanciarlo basta usare la sintassi:

# kmdr-executor onekript.kmdr