Chiffrer une clé USB avec Cryptsetup et luksformat


Une autre solution pour la protection de données consiste à chiffrer les partitions présentes sur les disques ou encore chiffrer une clef USB dans laquelle seront stockées des données sensibles.

Nous allons prendre l'exemple d'une clé USB sur /dev/sdc1.

Avant toute chose, il faut s'assurer que certains modules (dont la liste est ci-dessous) soient bien chargés, surtout si le programme présente quelques problèmes lors de l'utilisation.


Pour charger un de ces modules il suffit de taper dans un interpréteur de commandes et en tant qu'administrateur (root) :
$ su
# modprobe aes


Installation :


Pour commencer, il faut installer certains paquets (comme dosfstools pour le système de fichier vfat) qui sont présents dans le dépôt officiel de Debian :
# aptitude install cryptsetup mkfs dosfstools
Ensuite nous allons nous assurer que le fichier /proc/crypto soit bien configuré :
$ cat /proc/crypto
name : md5
driver : md5-generic
module : kernel
priority : 0
refcnt : 1
type : digest
blocksize : 64
digestsize : 16
Voilà à quoi devrait ressembler le fichier crypto si aucune modification n'y a été apportée. C'est donc l'algorithme de chiffrement AES (recommandé par la NSA) qui sera utilisé avec un hachage SHA256.


Formatage et chiffrement de la clé USB :

# luksformat -t vfat /dev/sdc1 (Ne pas monter la clé avant de réaliser cette commande)
Le mot de passe (passphrase) est alors demandé plusieurs fois, il est conseillé d'utiliser un mot de passe relativement long pour plus de sécurité.


Création du point de montage :

# mkdir /mnt/disk
Ensuite on modifie les fichiers /etc/fstab et /etc/crypttab en ajoutant pour chacun une ligne :
# nano /etc/fstab
/dev/sdc1 /mnt/disk vfat defaults 0 0
# nano /etc/crypttab
disk /dev/sdc1 none luks,timeout=15
Vous pouvez d'ores et déjà constater qu'en connectant la clé, celle-ci n'est pas reconnue par le système contrairement à d'habitude. Rien de plus normal, il faut désormais passer par luks en lui indiquant le mot de passe pour pouvoir monter la clé au sein du système comme ci-dessous :


Montage de la clé :

# /sbin/cryptsetup luksOpen /dev/sdc1 disk
Enter LUKS passphrase: (Entrez le mot de passe choisi lors du chiffrement de la clé)
key slot 0 unlocked.
Command successful.
Il est également possible de procéder en lançant le service cryptdisks :
# /etc/init.d/cryptdisks start
S'affiche alors la fenêtre proposant de monter le média et d'y accéder (diffère selon les environnements graphiques). Et le contenu de la clé se trouvera alors dans le répertoire /mnt/disk.


Démontage de la clé :

# umount /mnt/disk
# cryptsetup luksClose disk


N.B : Il est possible d'ouvrir cette clé USB sous le système d'exploitation Windows® en utilisant le programme FreeOTFE.