Page 1 sur 1

[Résolu] MAJ 22.04 -> 24.04.1 cryptsetup

Publié : mer. 11 sept. 2024, 21:33
par le Manchot Masqué
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 :

Code : Tout sélectionner

dd if=/dev/urandom of=/home/toto/moncoffre.dat bs=1G count=5
Etape 2
On assigne un périphérique virtuel au conteneur :

Code : Tout sélectionner

losetup -f
permet de trouver le prochain conteneur libre, admettons /dev/loop0 dans cet exemple, donc on fait la liaison :

Code : Tout sélectionner

losetup /dev/loop0 moncoffre.dat
et on vérifie :

Code : Tout sélectionner

losetup -a
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...) :

Code : Tout sélectionner

cryptsetup create holmes /dev/loop0 -c aes-cbc-essiv:sha256 -o 1234
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 :

Code : Tout sélectionner

cryptsetup status holmes
Et le nouveau périphérique :

Code : Tout sélectionner

ls -l /dev/mapper/holmes
Etape 3
La toute première fois, il faut évidemment formater le périphérique chiffré :

Code : Tout sélectionner

mkfs.ext4 /dev/mapper/holmes
Etape 3 bis
Les 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 /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 :

Code : Tout sélectionner

cryptsetup create holmes /dev/loop0 -c aes-cbc-essiv:sha256 -o 1234
avertissait d'un changement avec le message

Code : 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.
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 :

Code : Tout sélectionner

cryptsetup create holmes /dev/loop0 -c aes-cbc-essiv:sha256 -o 1234 -hash ripemd160
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) :

Code : Tout sélectionner

cd
umount /mnt
df
cryptsetup remove holmes
ls -l /dev/mapper
losetup -d /dev/loop0
losetup -a