Déchiffrer plusieurs disques
au démarrage

Les articles précédents montraient comment utiliser un système entièrement chiffré, qui pouvait le cas échéant être déverrouillé à distance. Il suffit, dans tous les cas, de taper un simple mot de passe pour que le disque principal soit déchiffré et le système lancé.

Dans mon cas cependant, plusieurs autres disques durs sont également chiffrés, pas forcément avec les mêmes mots de passe : nous allons ici voir comment les déchiffrer d’un coup, avec un seul mot de passe.

Pour cela, je crée une clef aléatoire, qui sera stockée sur mon disque principal (chiffré) :

head -c 64 /dev/urandom > /root/.data.key
chmod 600 /root/.data.key

En supposant que le disque à déchiffrer est /dev/sda1, je peux alors indiquer à cryptsetup de lui ajouter ce fichier comme clef de chiffrement (le mot de passe actuel sera conservé) :

cryptsetup -v luksAddKey -i 1 /dev/sda1 /root/.data.key

Pour que le disque soit déchiffré au démarrage, j’édite alors /etc/crypttab pour ajouter :

# /etc/crypttab
data UUID=$(blkid /dev/sda1 -o value -s UUID) /root/.data.key

Et /etc/fstab :

# /etc/fstab
/dev/mapper/data /media/data ext4 rw,noatime 0 2

Au démarrage, sitôt le système déchiffré et lancé, /etc/fstab et /etc/crypttab vont alors automatiquement monter le disque et le déchiffrer en utilisant le fichier tout juste créé.