Créer une partition chiffrée sous Linux avec LUKS

En entreprise, il y a souvent des cas où on veut protéger des données sensibles. Le plus souvent, on archive les données dans des fichiers cryptés ; en cas de besoin, on peut décrypter ces archives pour y accéder, et en attendant on est rassuré sur le fait que personne d’autre ne peut les lire, ce qui permet par exemple de les stocker dans le cloud sans trop de stress.

Pour savoir comment chiffrer des fichiers individuellement, je vous invite à lire l’un de mes précédents articles : Crypter un fichier sous Linux avec OpenSSL, GPG ou scrypt

Il y a des cas où on préfère chiffrer un disque dur complet (pour être précis, une partition complète), parce que c’est plus pratique : on ne perd pas de temps à traiter les fichiers individuellement, on les manipule comme n’importe quels fichiers sur n’importe quel disque dur. Le système d’exploitation chiffre et déchiffre à la volée en toute transparence ; par contre, si quelqu’un vole le disque dur, il ne pourra pas accéder aux données.

Prenons l’exemple d’un disque dur externe, car c’est ce qu’il y a de plus pratique lorsqu’on veut prévoir des rotations (par exemple, un disque en cours d’utilisation, un autre dans le coffre-fort de l’entreprise et un dernier au domicile).

Gestion des partitions

Il se peut que vous ayez besoin de gérer les partitions présentes sur le disque dur. Pour cela, on utilisera le logiciel gparted.

Pour l’installer sous Ubuntu :

sudo apt install gpartedLangage du code : Bash (bash)

Une fois le disque branché, lancez simplement gparted :

sudo gpartedLangage du code : Bash (bash)

Recherchez le disque dans le menu déroulant. Vous verrez alors la liste des partitions présentes dessus. Vous pouvez alors détruire les partitions existantes, en recréer de nouvelles…
Si vous créez une partition pour qu’elle soit chiffrée, indiquez le système de fichiers ext4.

Configuration de LUKS et formatage

Commençons par installer l’utilitaire cryptsetup :

sudo apt install cryptsetupLangage du code : Shell Session (shell)

Imaginons que le disque dur est disponible sur /dev/sda, et que la partition à chiffrer est sur /dev/sda1.

On va chiffrer la partition avec la commande suivante :

sudo cryptsetup luksFormat /dev/sd1Langage du code : Bash (bash)

Il vous demandera de confirmer, puis de saisir une passphrase.

Personnellement, j’utilise des passphrases d’au moins 15 caractères avec des majuscules, des minuscules, des chiffres et des caractères spéciaux. Si vous regardez mon article sur les mots de passe, vous saurez que cela correspond à une entropie de 92 bits, ce qui est très suffisant (de l’ordre de plusieurs dizaines de milliards d’années pour casser la passphrase).

Ensuite, on ouvre la partition chiffrée :

sudo cryptsetup open /dev/sda1 crypted_partitionLangage du code : Shell Session (shell)

Le dernier paramètre peut être n’importe quelle chaîne de caractères, mais elle est importante parce qu’elle va être utilisée par la suite pour identifier la partition chiffrée sous /dev/mapper.

On va ensuite formater la partition chiffrée :

sudo mkfs.ext4 /dev/mapper/crypted_partitionLangage du code : Shell Session (shell)

On peut enfin fermer la partition chiffrée :

sudo cryptsetup close crypted_partitionLangage du code : Shell Session (shell)

Utilisation

À ce stade, le plus simple est de débrancher puis de rebrancher le disque. Au bout de quelques secondes (possiblement quelques dizaines de secondes), une popup s’ouvrira pour vous inviter à saisir la passphrase. Après l’avoir fait, vous aurez accès au contenu du disque… et vous vous rendrez compte que vous ne pouvez rien écrire dedans.

En effet, le contenu de la partition appartient à l’utilisateur root. Il va donc falloir changer le propriétaire :

sudo chown user\: /media/user/UUIDLangage du code : Shell Session (shell)

En remplaçant évidemment user par votre login, et UUID par l’identifiant de la partition montée.

Une fois cette opération effectuée, vous pouvez démonter logiquement le disque par les moyens habituels. Débranchez puis rebranchez-le, et vérifiez que vous y avez bien accès en lecture et en écriture.

À partir de là, vous devriez pouvoir utiliser le disque comme n’importe quel autre disque dur externe. Son contenu sera chiffré de manière transparente. Il y a évidemment un impact sur les performances d’accès au disque, mais rien de vraiment visible pour de l’archivage asynchrone.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Notifiez-moi des commentaires à venir via email. Vous pouvez aussi vous abonner sans commenter.