Blog Post
Créer un container chiffré sous Linux 12 oct.

Créer un container chiffré sous Linux

By Florian

Ce week-end j'ai eu besoin de stocker des fichiers de façon sécurisée. Je ne souhaitais pas chiffrer une clé de 8Go complète car les fichiers sont de petite tailles. J'ai donc cherché à créer un container chiffré que je puisse utiliser et transporter partout.

Création du fichier chiffré

Il se trouve que Linux a un système de chiffrement de partitions : LUKS à travers l’outil cryptsetup, partie intégrante du noyau Linux. J'ai donc cherché à savoir comment créer un fichier chiffré dans lequel je puisse stocker des données grâce à ce système. Les manipulations sont plutôt simple et voici comment procéder.

Tout d'abord, créons un fichier vide qui servira de container.

sudo dd if=/dev/zero bs=1M count=100 of=~/my-container.img

Nous remplissons un fichier my-container.img de zéros, ce fichier fera 100Mo.

Ensuite nous devons chiffrer ce fichier.

sudo cryptsetup luksFormat ~/my-container.img

À ce moment, LUKS vous demandera un mot de passe afin de chiffrer le fichier, il vous demandera également de bouger la souris ou saisir des caractères afin d'améliorer l'entropie. Une fois chiffré, il faut faire en sorte que le container soit montable comme n'importe quelle partition.

sudo cryptsetup luksOpen ~/my-container.img my-container

Nous demandons à ce que notre fichier soit ouvert pour pouvoir y accéder. Le système nous demandera de saisir le mot de passe afin de pouvoir ouvrir ce fichier. Pour le moment, il s'agit d'un fichier quelconque, pour pouvoir l'utiliser comme une partition et y placer des fichiers à l'intérieur, il faut le formater.

sudo mkfs.ext4 /dev/mapper/my-container

Nous créons une système de fichier ext4 dans notre fichier chiffré. Attention à ne pas se tromper de chemin, vous pourriez perdre des données voire rendre votre disque dur de travail inutilisable.

Utilisation du fichier chiffré

Une fois formaté, il ne reste plus qu'à monter le système de fichier comme n'importe quelle clé usb.

sudo mount /dev/mapper/my-container /mnt

À partir de là, on peut placer des fichiers dans le répertoire /mnt qui seront cryptés, une fois le système de fichier démonté et fermé.

Pour démonter et fermer le fichier, il suffit d'utiliser les deux commandes suivantes.

sudo umount /mnt
sudo cryptsetup luksClose my-container

On peut maintenant transporter le fichier ~/my-container.img sur n'importe quel support sans risque.

Pour à nouveau accéder aux fichiers ou en ajouter de nouveaux, il suffit d'ouvrir à nouveau le container avec LUKS et de monter la partition.

sudo cryptsetup luksOpen ~/my-container.img my-container
sudo mount /dev/mapper/my-container /mnt

Astuce

Il est possible d'ajouter jusqu'à 8 mots de passe sur le fichier, cela permet à diverses personnes d'utiliser le fichier avec chacun son mot de passe. Pour cela, la commande luksAddKey permet d'ajouter un mot de passe. Elle vous demander d'abord de saisir un de ceux déjà enregistré puis le nouveau.

sudo cryptsetup luksAddKey ~/my-container.img

Enfin, pour supprimer un mot de passe, deux possibilité : soit la commande luksRemoveKey qui vous demandera le mot de passe à supprimer, soit la commande luksKillSlot avec l'index du mot de passe à supprimer (l'index commence à zéro). Pour connaître l'index, la commande luksDump listera les slots utilisés sous Keyslots

sudo cryptsetup luksDump ~/my-container.img
sudo cryptsetup luksRemoveKey ~/my-container.img
sudo cryptsetup luksKillSlot ~/my-container.img 1

Avec ça, plus aucune raison de ne pas stocker ses fichiers de façon sécurisée ! 🙂