Comment puis-je modifier les spécifications de hachage et le temps d' itération d'un périphérique LUKS dm-crypt existant ?
De toute évidence, je peux passer les options si je crée un nouvel appareil, par exemple quelque chose comme ceci:
sudo cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 --iter-time 2100 --hash sha512 /dev/loop0
Mais si l'appareil existe déjà, comment puis - je changer par exemple sha256
pour sha1
ou modifier le temps d'itération sans « détruire » le dispositif. (De toute évidence, vous devrez retaper votre mot de passe car un nouveau hachage sera généré.)
hash-spec
est ou lesiter-time
paramètres sont plus spécifiquement.cryptsetup-reencrypt
. La liste à puces ressemble à ce que vous essayez de me faire: "modifier les paramètres de chiffrement arbitraires".Réponses:
Chaque emplacement de clé a son propre temps d'itération. Si vous souhaitez modifier le nombre d'itérations, créez un nouvel emplacement avec la même phrase secrète et un nouveau nombre d'itérations, puis supprimez l'ancien emplacement.
Je pense que l'algorithme de hachage ne peut pas être configuré par emplacement, c'est toujours PBKDF2 avec une fonction de hachage choisie au niveau mondial.
Les versions récentes de cryptsetup incluent un outil
cryptsetup-reencrypt
, qui peut modifier la clé de cryptage principale et tous les paramètres, mais il est considéré comme expérimental (et il rechiffre l'ensemble du périphérique même si cela ne serait pas nécessaire pour simplement changer la fonction de dérivation de clé basée sur un mot de passe) .la source
Si tout ce que vous voulez changer est le hachage, il n'est pas nécessaire de rechiffrer. Cependant, vous devez toujours créer un nouvel en-tête LUKS. Même chiffre, même clé principale, même décalage, hachage différent.
Vous pouvez l'essayer par vous-même. Nous avons d'abord configuré un appareil LUKS avec des paramètres standard et un nombre d'itérations nulles:
À ce stade, nous avons un appareil LUKS avec les données chiffrées "Hello World I am LUKS". En particulier, cela ressemble à ceci:
Comme vous pouvez le voir, l'itération moche compte, les hachages sha1 standard.
Afin de passer à un nombre d'itérations élevé et à un hachage sha512, sans rechiffrement, nous avons besoin d'un nouvel en-tête LUKS utilisant la même clé principale, le même chiffrement et le même décalage de charge utile.
Obtention de la clé principale: (Attention: cet exemple divulgue votre clé principale dans un fichier lisible par le monde, dans la liste des processus, ainsi que dans l'historique de votre shell. Pour être sûr, faites-le en RAM / sur un Live CD / autre)
Créez le nouvel en-tête LUKS à l'aide de cette clé: (l'échec est possible - faites d'abord une sauvegarde de votre ancien en-tête LUKS!)
Et voici à quoi ça ressemble:
Maintenant, nous l'avons. Même chiffre, décalage [s'ils diffèrent, vous devez les spécifier avec le luksFormat], le nouveau hachage et le nombre approprié d'itérations.
Mais le contenu est-il toujours là?
Voilà.
la source
cryptsetup-reencrypt --keep-key --hash sha512
fait la même chose.