[Tutoriel] Chiffrer un périphérique sous Linux

Tags: Linux Tutoriel Informatique Sécurité


 Attention, cet article date de plus d'un an. Les informations qu'il contient sont peut-être obsolètes. 

Bonjour à tous,

Aujourd’hui, nous allons voir comment chiffrer vos périphériques (clés USB, disques durs …) sous Linux afin de garantir la confidentialité de ceux-ci. La confidentialité étant l’un des 3 piliers de la sécurité de l’information. Pour cela, nous allons utiliser un outil open-source utilisant le standard LUKS.

Les 3 piliers de la sécurité
Les 3 piliers de la sécurité

Chiffrement, cryptage et cryptation

Tout d’abord, dans ce paragraphe (au titre ironique, j’espère que vous l’aurez compris), j’aimerais d’abord faire un petit rappel sur les termes chiffrer, déchiffrer et crypter, décrypter.

Déchiffrer et décrypter servent le même but: prendre un message incompréhensible et le rendre lisible.

Chiffrer / déchiffrer

Prenez un coffre et mettez-y un cadenas à clé. Ensuite, faites 5 copies de cette clé et passez cette clé à vos voisins. Voilà, vous avez chiffré votre coffre et seul vous et vos voisins peuvent ouvrir le coffre car vous possédez la clé. En informatique, le chiffrement, c’est pareil.

Le coffre correspond aux données que vous voulez chiffrer. Le cadenas correspond à l’algorithme avec lequel vous allez les chiffrer. Pour la clé, le terme est le même des deux côtés de la métaphore.

Ici, je vous ai parlé du chiffrement symétrique, la clé est la même pour chiffrer et déchiffrer mais il existe également le chiffrement asymétrique avec des clés publiques et privées.

Crypter / décrypter

Décrypter est totalement différent de déchiffrer. En effet, là où vous déchiffrez (ouvrez le coffre) avec la clé, vous décryptez sans la clé et donc en essayant de casser le cadenas avec un gros marteau. Décrypter n’a donc informatiquement que peu de sens car cette action consiste à casser la clé en essayant de multiples combinaisons, vous ne pouvez pas avoir un algorithme qui vous décryptera votre message crypté du premier coup comme pour le déchiffrement.

Quant aux termes crypter et cryptage, vous me ferez le plaisir de les laisser dans un coffre crypté (je suis presque fier de cette blague ^^), ces mots n’existent pas et sont issus de encryption en anglais qui se traduit par chiffrement.

TLDR (Too Long To Read)

Pour déchiffrer, vous donnez le message chiffré et une clé à un algorithme, celui-ci vous retournera toujours et systématiquement la donnée en clair. Pour décrypter, eh bien débrouillez-vous et cherchez par vous-même, vous n’avez pas de clé, il faut donc tester jusqu’à éventuellement trouver si on est chanceux :)

LUKS

Logo de LUKS
Logo de LUKS

LUKS signifie (en anglais) Linux Unified Key Setup. C’est le standard pour le chiffrement de disque associé au noyau Linux. Si je reprends la page Wikipédia, LUKS permet de chiffrer l’intégralité d’un disque de telle sorte qu’il soit utilisable sur d’autres plates-formes et distributions de Linux (voire d’autres systèmes d’exploitation). Il supporte des mots de passe multiples, afin que plusieurs utilisateurs soient en mesure de déchiffrer le même volume sans partager leur propre mot de passe.

Cryptsetup

Cryptsetup est donc un logiciel implémentant le standard LUKS sur Linux. Nous allons voir ici comment l’utiliser pour chiffrer nos volumes.

Mise en place avec Cryptsetup

À noter que toutes les commandes ci-dessous sont à exécuter en root et toutes les données sur votre disque dur vont être écrasées. Enfin, il faudra remplacer /dev/sda et sg3 dans toutes les commandes pour les adapter à votre cas.

  • Pour commencer, je vous laisse faire un petit apt update && apt install cryptsetup puis un cryptsetup --version et de noter la version (de mon côté, je suis en 1.7.3).

  • Ensuite, il faut (après avoir branché le disque dur) faire un fdisk -l pour connaître le nom du lecteur (l’équivalent des lettres C:, D: … côté Windows). Voici ce que j’obtiens:

Disk /dev/sda: 2.7 TiB, 3000592982016 bytes, 5860533168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: BA5EC986-5DB7-4B67-BF7D-208FAF3D1385

Mon disque s’appelle donc /dev/sda.

  • On veut maintenant chiffrer notre disque: cryptsetup -y -v luksFormat /dev/sda

  • Il est temps d’initialiser le volume (que je vais appeler sg3) avec le mot de passe (le mettre sur un gestionnaire de mots de passe semble être une bonne idée non ?): cryptsetup luksOpen /dev/sda sg3

  • On peut maintenant vérifier le statut de cette initialisation: cryptsetup -v status sg3 pour obtenir:

/dev/mapper/sg3 is active.
  type:    LUKS1
  cipher:  aes-xts-plain64
  keysize: 256 bits
  device:  /dev/sda
  offset:  4096 sectors
  size:    5860529072 sectors
  mode:    read/write
Command successful.
  • À présent, il est temps de formater la partition LUKS. Cette étape est très longue (et optionnelle), je vous recommande de la lancer depuis tmux ou de veiller à ne pas fermer votre terminal. On va commencer par “écrire des 0” sur tout le disque. Cela permet de s’assurer que le monde extérieur verra les données comme étant aléatoires (le volume étant chiffré): dd if=/dev/zero of=/dev/mapper/sg3 status=progress Sur mon disque dur de 2,7 To, cela a mis plus de 5 jours et demi, alors soyez patient ^^

  • On peut désormais mettre en place notre système de fichiers: mkfs.ext4 /dev/mapper/sg3

  • On crée ensuite le dossier dans lequel on fera le montage: mkdir -p /media/sg3

  • On peut désormais monter le disque dur: mount /dev/mapper/sg3 /media/sg3

  • On vérifie enfin que le disque est bien monté avec un df -h:

/dev/mapper/sg3  2.7T   89M  2.6T   1% /media/sg3
  • On peut donc le démonter classiquement avec un umount /media/sg3 suivi d’un cryptsetup luksClose sg3

Comment remonter le disque

C’est bien beau de chiffrer un disque, mais il faut savoir le remonter à chaque utilisation.

  • cryptsetup luksOpen /dev/sda sg3 en rentrant votre mot de passe
  • mount /dev/mapper/sg3 /media/sg3 pour monter le volume

Et voilà ! Pour démonter, c’est comme la dernière étape du paragraphe précédent.

Remarques

Voici quelques remarques en vrac, ça peut aider ou donner des idées :)

Version

Le fait de connaître la version est important si vous voulez utiliser votre disque dur depuis une autre machine, assurez-vous d’utiliser la même version où qu’il n’y ait pas de problème de compatibilité entre les 2 (voir dans les release notes).

Entropie

Le fait de mettre des 0 sur la partition chiffrée est assez controversé. Certains diront de remplir avec des 0 ou 1 aléatoires, mais c’est beaucoup plus long et le disque est déjà chiffré donc il y a déjà un niveau d’aléatoire. Pour cette raison, remplir avec des 0 suffit puisqu’il est impossible de distinguer les données à 0 des données chiffrées.

Aller plus loin

Il est également possible de monter automatique le disque, je vous conseille de faire un tour côté crypttab et fstab.

On peut aussi ouvrir automatiquement le volume sans taper de mots passe à l’aide d’un support amovible. Je n’ai pas testé mais voici un tutoriel permettant de le faire.

Avec PAM, on peut ouvrir le volume automatiquement sans mot de passe ni support amovible. D’un point de vue sécurité, je ne préfère pas cette méthode mais il est intéressant de savoir que c’est possible.

Conclusion

Voilà, vos données sont enfin en sécurité et vous maitrisez qui peut y avoir accès. Mais attention, ça ne veut pas dire que vos données sont en sécurité ad vitam æternam car il suffit de formater le disque et vous perdez tout ! Comme vu en introduction, on ne gère que la confidentialité des données ;)

Si vous avez des questions ou remarques, n’hésitez pas dans les commentaires ou par mail si vous êtes timide !

Commentaires




Ailleurs sur le Web


Building A Virtual Machine inside ChatGPT

C'est juste dingue :o

via Shaarli le 06 décembre 2022

Le vrai coût écologique d’un email - Les Numériques

Vous avez sans doute souvent entendu que supprimer ses vieux emails et mettre de l’ordre dans sa messagerie était “bon pour la planète”. A priori, ça ne peut pas faire de mal, mais c’est une idée à laquelle il faut aujourd’hui tordre le cou. En effet, nou…

via Shaarli le 15 octobre 2022

La France Insoumise veut (encore) taxer l’utilisation commerciale des œuvres du domaine public

Je rejoins à 100% l'avis de SebSauvage. Ah mais MERDE hein. Je refuse que des gens piquent de l'argent à d'autres en exploitant ce que j'ai VOLONTAIREMENT mis dans le domaine public. Le copyreich a bien travaillé à laver les cerveaux. Est-ce…

via Shaarli le 03 octobre 2022

Généré avec openring


Recettes de gourmands


Flammekueche

Sacrilège, cette tarte flambée est dans la catégorie des pizzas ... On verra si je crée cette catégorie si je rajoute d'autres tartes flambées !

via cooking.pofilo.fr le 25 décembre 2022

Tourte au cantal

Relativement simple à préparer, cette tourte vous réchauffera durant les soirées d'hiver.

via cooking.pofilo.fr le 11 décembre 2022

Poulet Coco Curry

Un classique, mais toujours efficace. Le riz peut être remplacé par des pâtes ou des haricots verts. N’hésitez pas à doser le curry (force et quantité) selon vos préférences.

via cooking.pofilo.fr le 24 décembre 2021

Généré avec openring