← retour aux snippets

cryptsetup LUKS2: reencrypt et rotation de clé

Faire une ré-encryption in-place d'un volume LUKS2 et changer de clé de manière sûre.

objectif

Ré-encrypter un volume LUKS2 et remplacer la clé sans copier les données ailleurs.

code minimal

DEV=/dev/nvme0n1p3

# 1) sauvegarder l'en-tête avant toute opération
sudo cryptsetup luksHeaderBackup "$DEV" --header-backup-file header.img

# 2) ajouter la nouvelle clé (slot libre requis)
sudo cryptsetup luksAddKey "$DEV" /root/new.key

# 3) ré-encryption in-place (LUKS2 requis)
sudo cryptsetup reencrypt --encrypt --key-file /root/old.key --new-key-file /root/new.key "$DEV"

utilisation

# reprendre après interruption
sudo cryptsetup reencrypt --resume "$DEV"

# état
sudo cryptsetup status "$DEV" || true

variante(s) utile(s)

# rotation de clé sans ré-encryption des données (plus rapide)
sudo cryptsetup luksKillSlot "$DEV" 0  # après ajout et test de la nouvelle clé

notes

  • nécessite LUKS2; vérifiez avec cryptsetup luksDump.
  • la ré-encryption est longue; utilisez un onduleur et sauvegardez header.img.