Aller au contenu

LUKS

LUKS (en anglais Linux Unified Key Setup) : format standard de chiffrement de disque sous Linux, manipulé par l'outil cryptsetup et mis en œuvre par le module noyau dm-crypt. Le volume est chiffré avec une clé aléatoire, la clé de volume ; cette clé est rangée dans un en-tête au début du disque, chiffrée séparément dans plusieurs emplacements (keyslots), un par phrase secrète ou fichier de clé. On peut ainsi ajouter ou révoquer une phrase (cryptsetup luksAddKey, luksKillSlot) sans rechiffrer les données.

Le cycle de vie tient en quelques commandes : cryptsetup luksFormat initialise l'en-tête, cryptsetup open /dev/... donnees crée le périphérique déchiffré /dev/mapper/donnees, qui se formate et se monte comme n'importe quel disque. Au démarrage, /etc/crypttab dit quels volumes ouvrir ; si c'est la racine, c'est l'initramfs qui demande la phrase secrète, sur la console (d'où l'intérêt d'une console série utilisable en cloud). Chez Scaleway, le pilote CSI de Kapsule chiffre ainsi un volume Block Storage quand la classe de stockage porte encrypted: "true", avec une phrase tirée d'un Secret Kubernetes.

Ce que LUKS protège : les données au repos, un volume détaché et attaché ailleurs, un instantané copié, un disque mis au rebut. Ce qu'il ne protège pas : une machine démarrée et déverrouillée, ni un /boot et un initramfs restés en clair et modifiables hors ligne. L'en-tête est le point unique de défaillance : abîmé, il rend les données irrécupérables, d'où cryptsetup luksHeaderBackup vers un lieu sûr.

Dans les cours

Voir aussi