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

Tags: Linux Tutoriel Informatique Sécurité


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


Les trackers publicitaires ont-ils vraiment été supprimés du site de «Libé» pour les abonnés ? - Libération

Mon dieu ... Mensonges et mauvaise foi, le quotidien de Libération ?? Ils essaient de faire la distinction entre trackers (publicitaires) et trackers (d'analyse) ... Il faut arrêter le mensonge et avouer qu'on laisse des trackers, mais ne pas essaye…

via Shaarli le 15 novembre 2019

Trackers first-party

Un excellent article. J'ai suivi le sujet via son compte Twitter, ici on a un résumé propre et clair.

via Shaarli le 15 novembre 2019

L’intelligence artificielle, le grand malentendu

« On a commencé à fantasmer sur le mot, constate Luc Julia, sur l’idée qu’on pourrait créer quelque chose proche de nous qui nous remplacerait, voire nous contrôler. Alors que c’est l’inverse : c’est nous qui contrôlons l’IA ! Cette IA dont on parle à lon…

via Shaarli le 13 novembre 2019

Généré avec openring