Lorsque l’on souhaite crypter des données avec Linux, il est assez simple de créer une partition cryptée, celle-ci est montée au démarrage ou à la demande ; le disque seul, sans mot-de-passe, devient inutilisable.
Toutefois, cette solution ne permet pas bien, ni la sauvegarde des données cryptées, ni le déplacement physique de ces données, ni leur copie lors d’une réinstallation qui devient alors une étape critique.
La solution à ces problèmes est l’utilisation d’un fichier crypté plutot que d’une partition cryptée. Le fichier en question sera une parition logique cryptée ou cryptofile. La partition logique ainsi crée est en réalité un fichier qui pourra donc être manipulé comme tel.
La création passe par plusieurs étapes :
- Créer une partition logique initialisée aléatoirement de sorte à faire du bruit.
dd if=/dev/urandom of=systFile1 bs=1k count=300000
Cette commande initialise un fichier systFile1 de 300000 blocs de 1ko. Le nombre et la taille des blocs est à votre discretion. - Il faut ensuite associer ce fichier à un périphérique loop qui va permettre, non seulement de considérer le fichier comme un périphérique et de le traiter, donc, comme une partition physique, mais aussi de gérer le cryptage / décryptage des informations.
losetup -e twofish256 -T /dev/loop0 systFile1
twofish256 est le cryptage retenu, l’option -T va demander 2 fois la saisie du mot de passe, /dev/loop0 correspond au périphérique loop, il est possible de choisir loop1, loop2… enfin on trouve le fichier précédemment créé. - Il reste à formater la partition :
mkfs -t ext2 /dev/loop0 - Enfin, la partition peut être montée comme n’importe quelle autre à l’aide de mount :
mount -t ext2 /dev/loop0 mnt/
Cette solution fonctionne parfaitement, toutefois, en cas de saisie d’un mot de passe erroné, le système à tendence à bloquer n’arrivant pas à monter la partition. Des options permettent sans doute d’eviter cela… si vous le connaissez, donnez-les mois ;o).
Petite remarque enfin, n’oubliez pas de monter le module loop_fish2