[Résolu] MAJ 22.04 -> 24.04.1 cryptsetup
Publié : mer. 11 sept. 2024, 21:33
Utiliser des conteneurs chiffrés émulant un disque, c'est bien côté sécurité. Mais pouvoir les déchiffrer, c'est encore mieux...
Or le passage de la 22.04 à la 24.04, à "casser" mes scripts !
On va d'abord rappeler la création d'un conteneur,
On verra que la solution est simple, une fois qu'on l'a trouvé...
Rappel pour la création d'un conteneur (en tant que root) :
Etape 1
Pour créer un conteneur, on peut utiliser par exemple :
Etape 2
On assigne un périphérique virtuel au conteneur :
permet de trouver le prochain conteneur libre, admettons /dev/loop0 dans cet exemple, donc on fait la liaison :
et on vérifie :
Etape 2
On créé un périphérique chiffré dans /dev/mapper avec un décalage de 1234 pour la clé (normalement on fait ça dans un script pour ne pas laisser de trace dans l'historique, mais ici, on est dans un exemple, donc on fermera les yeux...) :
Juste pour info, l'aes-cbc-essiv:sha256 n'est plus le choix le plus recommandé par Debian, mais là encore, c'est un exemple...
On vérifie la liaison :
Et le nouveau périphérique :
Etape 3
La toute première fois, il faut évidemment formater le périphérique chiffré :
Etape 3 bis
Les fois suivantes, il faut juste monter son périphérique comme si c'était un disque quelconque, ici dans /mnt :
Etape 4
On peut ensuite manipuler ses fichiers dans /mnt, de manière totalement transparente.
Mon problème :
Avec la nouvelle version de cryptsetup 2.7.0 :
avertissait d'un changement avec le message
mais se terminait sans erreur, laissant penser que la commande était ok.
Sauf qu'à l'étape 3 bis qui suivait : impossible de monter le périphérique, non reconnu en ext4...
La solution :
Ajouter l'option -hash ripemd160 à l'étape 2 :
et tout rentre dans l'ordre.
Merci à https://bbs.archlinux.org/viewtopic.php?id=293452 pour l'astuce qui est, il faut le dire, assez vicieuse à trouver...
Démontage
Pour fermer le conteneur (toujours en tant que root) :
Or le passage de la 22.04 à la 24.04, à "casser" mes scripts !
On va d'abord rappeler la création d'un conteneur,
On verra que la solution est simple, une fois qu'on l'a trouvé...
Rappel pour la création d'un conteneur (en tant que root) :
Etape 1
Pour créer un conteneur, on peut utiliser par exemple :
Code : Tout sélectionner
dd if=/dev/urandom of=/home/toto/moncoffre.dat bs=1G count=5On assigne un périphérique virtuel au conteneur :
Code : Tout sélectionner
losetup -fCode : Tout sélectionner
losetup /dev/loop0 moncoffre.datCode : Tout sélectionner
losetup -aOn créé un périphérique chiffré dans /dev/mapper avec un décalage de 1234 pour la clé (normalement on fait ça dans un script pour ne pas laisser de trace dans l'historique, mais ici, on est dans un exemple, donc on fermera les yeux...) :
Code : Tout sélectionner
cryptsetup create holmes /dev/loop0 -c aes-cbc-essiv:sha256 -o 1234On vérifie la liaison :
Code : Tout sélectionner
cryptsetup status holmesCode : Tout sélectionner
ls -l /dev/mapper/holmesLa toute première fois, il faut évidemment formater le périphérique chiffré :
Code : Tout sélectionner
mkfs.ext4 /dev/mapper/holmesLes fois suivantes, il faut juste monter son périphérique comme si c'était un disque quelconque, ici dans /mnt :
Code : Tout sélectionner
mount /dev/mapper/holmer /mntOn peut ensuite manipuler ses fichiers dans /mnt, de manière totalement transparente.
Mon problème :
Avec la nouvelle version de cryptsetup 2.7.0 :
Code : Tout sélectionner
cryptsetup create holmes /dev/loop0 -c aes-cbc-essiv:sha256 -o 1234Code : Tout sélectionner
ATTENTION : Utilisation des options par défaut pour le chiffrement (aes-cbc-essiv:sha256, taille de clé 256 bits) qui pourraient être incompatibles avec les vieilles versions.Sauf qu'à l'étape 3 bis qui suivait : impossible de monter le périphérique, non reconnu en ext4...
La solution :
Ajouter l'option -hash ripemd160 à l'étape 2 :
Code : Tout sélectionner
cryptsetup create holmes /dev/loop0 -c aes-cbc-essiv:sha256 -o 1234 -hash ripemd160Merci à https://bbs.archlinux.org/viewtopic.php?id=293452 pour l'astuce qui est, il faut le dire, assez vicieuse à trouver...
Démontage
Pour fermer le conteneur (toujours en tant que root) :
Code : Tout sélectionner
cd
umount /mnt
df
cryptsetup remove holmes
ls -l /dev/mapper
losetup -d /dev/loop0
losetup -a