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

Publié le 26 novembre 2018

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


Home Screen Advantage - Infrequently Noted

A slide from Apple's presentation in Apple v. Epic, attempting to make the claim Epic could have just made a PWA if they didn't like the App Store terms because circa '20 Safari was so capable. LOL. Je n'aurai pas assez de popcorn pour le DM…

via Shaarli le 28 février 2024

800 employés de la poste britannique condamnés à tort à cause d’un logiciel défectueux - Next

En droit anglais et gallois, les ordinateurs sont considérés comme « fiables », sauf preuve du contraire, souligne The Guardian, ce qui « renverse la charge de la preuve normalement appliquée dans les affaires pénales ». Euh, ok !

via Shaarli le 15 janvier 2024

Mise en place et étude d'un Honey Pot SSH (Cowrie) | | Sécurité Informatique | IT-Connect (it-connect.fr) – wallabag

Article intéressant. C'est clairement dans la même démarche que mon article sur les phishing.

via Shaarli le 09 janvier 2024

Généré avec openring


Recettes de gourmands


Meringues

Pratique pour utiliser des blancs d'œufs, car les ingrédients sont au tant pour tant.

via cooking.pofilo.fr le 21 mars 2024

Risotto classique

Vraiment très simple mais le résultat est succulent.

via cooking.pofilo.fr le 28 février 2024

Pain italien

via cooking.pofilo.fr le 17 février 2024

Généré avec openring