Crypter un système de fichier sous linux

Il est parfois utile de crypter certaines informations sensibles (fichiers de mots de passes, comptes, etc.). Cette page explique seulement comment créer et utiliser une partition ou un fichier crypté pour un simple utilisateur. Pour une sécurité optimale, il faut crypter toutes les partitions, le swap, etc.


Configuration requise


Il convient d'utiliser un noyau récent (ici: 2.6.15.1).
Avant toute chose, il faut charger les modules de cryptographie :

modprobe cryptoloop
modprobe twofish
Si les modules ne sont pas trouvés, c'est peut-être que ces options sont directement intégrées au noyau, essayez de passer à la suite. Si une erreur survient lors des paragraphes suivants, c'est qu'il vous faudra probablement recompiler le noyau avec les bonnes options (voir les liens en fin de cette page).

Nous prenons ici l'exemple d'un fichier crypto.img. Le fonctionnement est le même pour une partition (remplacer crypto.img par /dev/hd...).
De même, nous cryptons ici avec twofish mais de nombreux autres algorithmes sont disponibles (voir le man de losetup).


Création du système de fichier


Commençons par créer un fichier de 10 Mo dans le répertoire courant (ce sera la taille du système de fichier) :

dd if=/dev/urandom of=crypto.img bs=1M count=10
On peut maintenant créer le système de fichier (il se peut que les utilisateurs n'aient pas les droits sur /dev/loop, vous devrez peut-être faire cette manipulation en root ou changer ces droits) :
losetup -e twofish /dev/loop0 crypto.img
/sbin/mkfs.ext2 -j -m 0 /dev/loop0
losetup -d /dev/loop0
NB : Le mot de passe (minimum 20 caractères) demandé par losetup sera celui utilisé pour monter le système de fichier.


Montage du système de fichier


On monte ici sur le répertoire /secure (le mot de passe est demandé) :

mount -t ext2 -o defaults,user,exec,loop,encryption=twofish crypto.img /secure
On peut maintenant mettre des fichiers dans /secure, ceux-ci seront automatiquement cryptés.
Pour éviter de retaper cela à chaque fois, rajouter une ligne au fichier /etc/fstab :

/home/toto/crypto.img /secure ext2 noauto,defaults,user,exec,loop,encryption=twofish 1 2

N'importe quel utilisateur ayant accès au fichier /home/toto/crypto.img et au répertoire /secure (et connaissant le mot de passe) pourra monter le système de fichier :
mount /secure
Dans tous les cas, le démontage se fait de façon standard avec umount :
umount /secure
Pensez à faire des sauvegardes (cryptées) de vos fichiers cryptées. En cas de plantage inopiné de la machine pendant l'utilisation du système de fichier crypté, vous pourriez perdre des données...
Signalons aussi l'utilitaire wipe qui permet d'effacer un fichier de façon sécurisé.


Pour aller plus loin


Crypter un système de fichiers
Camoufler un système UNIX
Mise en place d'un répertoire utilisateur chiffré

© 2001 ArSuniK. Tous droits réservés.
Contenu revu le 14 juillet 2008