LUKS : le standard de chiffrement sous Linux
Posté le 21. Juillet 2022 • 4 minutes • 808 mots • Autres langues: English
Un peu comme pour mon article sur TLS, je suis dans l’obligation de faire un point de langage avant de commencer : on dit chiffrer, bordel !
Pardon pour la forme, mais dans le milieu informatique les termes “crypter”, “cryptage” et autre “désencrypter”, ça n’existe pas et ça me fait saigner des oreilles. Si vous voulez une explication claire et limpide sur ce sujet, je vous recommande chaudement la ressource, que dis-je, le bien public qu’est le site : chiffrer.info.
Dans cet article, je vais vous présenter LUKS, pour Linux Unified Key Setup, qui est le standard de chiffrement pour les systèmes basés sur GNU/Linux. Bien évidemment, il existe des alternatives mais on peut tout de même parler de LUKS comme un incontournable.
Chiffrement d’une partition
Dans notre exemple, nous utilisons Debian 11. Je vous recommande d’utiliser LVM pour gérer vos partitions et notamment s’il y a du chiffrement. Mais vous pouvez utiliser des partitions physiques sur vos disques si vous le souhaitez.
- Création du logical volume
datasLuks
dans le group volumeVG1
:
|
|
- Préparation du contenaire LUKS :
|
|
Vous pouvez préciser diverses options disponibles dans le man
de cryptsetup. Toutefois, les options par défaut sont en adéquation aux règles de l’art si votre distribution est récente ainsi que votre version de cryptsetup.
C’est à cette étape que vous devez choisir la passphrase qui permettra de déchiffrer la partition. Faites-vous plaisir sur la génération aléatoire : au moins 150 bits d’entropie pour cette passphrase qui protègera vos données. Stockez-la dans votre gestionnaire de mot de passe.
Notez que l’on peut mettre jusqu’à 8 clés/passphrase différentes car il y a 8 slots (pour avoir différentes passphrases pour différents utilisateurs par exemple).
- Ouverture du contenaire LUKS :
|
|
- Mettons un système de fichier en place dans ce contenaire :
|
|
- Enfin, on monte le système de fichier sur un point de montage :
|
|
Vous êtes libre ensuite d’adapter votre fstab
. Votre partition chiffrée est désormais prête à l’usage 👍
Gestion de l’en-tête LUKS
L’en-tête LUKS contient les métadonnées nécessaires au déchiffrement de la partition :
- la version de LUKS
- la suite cryptographique utilisée ainsi que son mode
- l’algorithme de hash utilisé pour la passphrase
- l’UUID de la device
- etc.
L’en-tête est placé en début de partition, s’il est perdu ou illisible (suite à un secteur disque défectueux par exemple) alors toute votre partition chiffrée sera perdue car elle ne sera plus ouvrable.
L’en-tête LUKS doit donc absolument être sauvegardé au même titre que votre passphrase
Afficher l’en-tête LUKS
Voici la sortie de la commande cryptsetup luksDump /dev/VG1/datasLuksLV
:
|
|
Sauvegarder l’en-tête LUKS
|
|
Restaurer l’en-tête LUKS
|
|
Supprimer l’en-tête LUKS
Il est possible de supprimer l’en-tête et donc rendre les données définitivement inaccessibles s’il n’y a pas de backup. Cela peut aussi être utile si les données de cet en-tête sont corrompues et que l’on souhaite ensuite procéder à une restauration.
|
|
Vous avez désormais les bases pour chiffrer vos partition avec LUKS. Dans mon prochain article, je vous présenterai :
- Un script bash d’automatisation pour le remontage de vos partitions chiffrées suite à un redémarrage.
- Un script bash d’alerte en cas de partition chiffrée non montée sur un serveur.
UPDATE du 12/08/2022 : Je viens de mettre en ligne l’article, cliquez ici !
Ressources :