Nous pouvons facilement ajouter un fichier clé au chiffrement de disque LUKS sous Linux en exécutant la commande cryptsetup. Un fichier clé est utilisé comme phrase de passe pour déverrouiller un volume crypté. La phrase de passe permet aux utilisateurs de Linux d'ouvrir des disques chiffrés à l'aide d'un clavier ou d'une session ssh. Il existe différents types de fichiers clés que nous pouvons ajouter et activer le chiffrement de disque LUKS sur Linux en fonction de nos besoins :
- Fichier clé de phrase de passe - Il s'agit d'un fichier clé contenant une simple phrase de passe.
- Fichier clé de texte aléatoire - Il s'agit d'un fichier clé comprenant un bloc de caractères aléatoires qui est beaucoup plus résistant aux attaques par dictionnaire qu'un simple fichier clé basé sur une phrase de passe.
- Fichier clé binaire - Nous pouvons défiler une image, une vidéo, ou tout autre fichier binaire statique comme fichier clé pour LUKS. Cela le rend plus difficile à identifier comme un fichier clé. Pour l'attaquant, il aura l'air d'un fichier image ordinaire ou d'un clip vidéo au lieu d'un fichier clé de texte aléatoire.
Voyons comment activer le cryptage de disque LUKS avec un fichier clé.
Ce post explique comment ajouter et activer le chiffrement de disque LUKS avec un fichier clé sous Linux et une phrase de passe de sauvegarde pour ouvrir le volume de disque chiffré.
Comment activer le chiffrement de disque LUKS avec keyfile sous Linux ?
Je vous conseille vivement de créer à la fois un fichier de clé et une phrase de passe à des fins de sauvegarde si le fichier de clé défini est perdu ou modifié. De cette façon, vous serez en mesure de réaccéder à vos données stockées sur des volumes cryptés.
Étape 1 - Création d'un fichier clé avec des caractères aléatoires
AVERTISSEMENT ! Le choix du type de clé LUKS et du support de stockage dépend de votre modèle de menace. Je vais utiliser une clé texte aléatoire et une clé USB pour stocker la clé. Toutes les commandes doivent être exécutées en tant qu'utilisateur root. Faites attention aux noms de périphériques Linux, car des noms de périphériques erronés entraîneront une perte de données. L'auteur ou Hébergement web gratuit n'est pas responsable de telles actions.
Nous pouvons utiliser la commande standard de Linux telle que la commande dd ou la commande openssl pour créer une clé LUKS forte. Par exemple :
DEST=/path/to/mykeyfile
Pour le stylo USB monté dans /mnt/usb/ :
DEST=/mnt/usb/mykeyfile
Utilisez la commande dd :
dd bs=512 count=4 if=/dev/random of=$DEST iflag=fullblock
Comme je l'ai dit précédemment, vous pouvez utiliser la commande openssl pour générer un fichier de clé LUKS forte comme suit :
openssl genrsa -out $DEST 4096
Assurez-vous que seul l'utilisateur root peut accéder à notre fichier clé en utilisant la commande chmod/chown :
chmod -v 0400 $DEST
Voir comment utiliser les commandes chmod et chown pour plus d'informations.
Étape 2 - Stocker des données aléatoires sur l'appareil
Configurons le nom de l'appareil :
DEVICE=/dev/sdc
Utilisez la commande shred pour écraser un fichier ($DEVICE) et masquer son contenu :
shred -v --iterations=1 $DEVICE
Étape 3 - Formatage du périphérique (disque dur)
La syntaxe est la suivante pour formater et ajouter une phrase de passe de sauvegarde :
cryptsetup luksFormat $DEVICE
WARNING!
========
This will overwrite data on /dev/sdc irrevocably.
Are you sure? (Type uppercase yes): YES
Ajouter et activer une clé pour le cryptage de disque LUKS
Ensuite, nous allons ajouter le fichier de clé à l'en-tête LUKS comme suit :
cryptsetup luksAddKey $DEVICE $DEST
Vérifiez que la phrase de passe de sauvegarde et le fichier de clé sont tous deux définis pour /dev/sdc :
cryptsetup luksDump $DEVICE
Deux emplacements de clé indiquent que nous disposons d'une phrase de passe et d'un fichier de clé de secours pour déverrouiller /dev/sdc en utilisant l'une des méthodes.
Étape 3 - Ouvrir l'appareil
Nous utilisons le luksOpen comme suit pour ouvrir notre appareil en utilisant le fichier clé :
DEV_NAME=backup2
Pour une raison quelconque, si votre fichier de clé est détruit ou corrompu, nous pouvons alors utiliser une phrase de passe de sauvegarde comme suit :
DEV_NAME=backup2
Enter passphrase for /dev/sdc:
Vous verrez le périphérique à /dev/mapper/$DEV_NAME en utilisant la commande ls/file :
ls -l /dev/mapper/$DEV_NAME
Étape 4 - Formatage de l'appareil
Utilisez la commande mkfs.ext4 ou la commande mkfs.xfs comme suit :
mkfs.ext4 /dev/mapper/$DEV_NAME
Étape 5 - Montage de l'appareil
Utilisez la combinaison de la commande mkdir et de la commande mount comme suit pour monter le /dev/sdc :
mkdir /backup2
Vérifiez-le en utilisant la commande mount :
df -HT /backup2
Étape 6 - Montage persistant (permanent) de LUKS au démarrage à l'aide d'un fichier de clés
Ajoutez la ligne suivante à /etc/crypttab fichier :
backup2 /dev/sdc /mykeyfile luks
Ajoutez/modifiez la ligne suivante à /etc/fstab fichier :
/dev/mapper/backup2 /backup2 ext4 defaults 1 2
Étape 7 - Fermeture de l'appareil
D'abord, démontez-le en utilisant la commande umount, puis fermez-le comme suit :
umount /backup2/
Étape 8 - Accès d'urgence en cas d'endommagement de la clé de cryptage du disque LUKS
Puisque nous avons ajouté une phrase de passe de sauvegarde au slot # 0, tout ce que vous avez à faire est de taper les commandes suivantes :
DEVICE=/dev/sdc
Résumé
Cette page a décrit comment utiliser un fichier clé LUKS aléatoire avec une phrase de passe de sauvegarde pour déverrouiller des volumes chiffrés sous Linux. Il est également possible de crypter votre fichier clé en utilisant 2FA, ce que nous couvrirons la prochaine fois. Veuillez noter que vous devez toujours conserver une sauvegarde vérifiée selon la méthode 3-2-1. Voir cryptsetup page d'accueil du projet pour plus d'informations et lire la page de manuel suivante :
man cryptsetup