Chiffrement d'une partition sous GNU/Linux

Chiffrer une partition : Ce court tutoriel va vous permettre d'empêcher l'accès à une partition de disque dur. La partition sera chiffrée et le déchiffrement ne sera possible qu'avec le bon mot de passe. L'accès peut également être subordonné à la présence d'un fichier, mais ce cas ne sera pas traité ici. Il sera facile de généraliser ce tutoriel pour d'autres cas.

Commentaires

Si les bons modules ne sont pas lancés, vérifier leur présence avec "lsmod" :

Le paquet "loop-aes-utils" doit être installé. J'ai dû forcer le chargement du module "cryptoloop" par le noyau que j'avait recompilé.

Principe : on génère une clé plus ou moins aléatoire dans un fichier. Ce fichier est chiffré symétriquement par gnupg. C'est le mot de passe utilisé qui servira au déblocage du fichier aléatoire lequel servira de clé pour la partition.
La partition est désignée comme chiffrée puis elle est formatée. Le montage de la partition demande le mot de passe et le démontage n'en demande pas.
Afin d'automatiser le processus, on utilise fstab pour n'avoir qu'une simple commande à entrer.

Les commandes sont à faire en tant que super utilisateur.

Générer une clé aléatoire

Il faut fournir une clé symétrique qui sera demandée à chaque montage.

echo $RANDOM$RANDOM$RANDOM | sha1sum | gpg --symmetric > cle_XX.gpg

Créer le volume chiffré

Écraser tout autre cryptoloop au besoin. Au cas où on veut détruire une partition chiffrée déjà existante.

dd if=/dev/zero of=/dev/XX bs=1024 count=50

Lier un périphérique de boucle à la partition XX
-e indique le type de chiffrement
-K désigne un fichier chiffré (symétriquement) par Gnupg

losetup -e aes-256 -K cle.gpg /dev/loop/0 /dev/XX

À ce stade, il suffira d'utiliser /DEV/LOOP/0 comme n'importe quel périphérique.
Ne plus utiliser /dev/XX. En particulier un formatage détruirait la partition chiffrée !

mke2fs -j /dev/loop/0

mkdir /tmp/test

mount /dev/loop/0 /tmp/test

Démontage

umount /dev/loop/0

losetup -d /dev/loop/0

Remontage

losetup -e aes-256 -K cle.gpg /dev/loop/0 /dev/XX

mkdir /tmp/test

mount /dev/loop/0 /tmp/test

Avec fstab

Ne pas oublier d'indiquer le chemin complet vers le fichier clé.

/dev/hdc2 /mnt/aes ext2 defaults,noauto,user,loop=/dev/loop/0,encryption=AES256,gpgkey=cle.gpg

Il suffira ensuite, en tant que simple utilisateur :

mount /mnt/aes

Références :

http://deb.riseup.net/storage/encryption/loop-aes/ http://tldp.org/HOWTO/Cryptoloop-HOWTO/loopdevice-setup.html