Déverrouiller la racine Debian chiffrée par LUKS avec le file key sur la partition de démarrage

J'essaie de déchiffrer la racine Debian avec un file key stocké dans la partition de démarrage (partition décryptée). Cela va casser la security, mais cela n'a pas d'importance maintenant. Je dois conclure cela avec succès ou mourir en essayant.

J'ai créé les hooks à initramfs et le file key se trouve dans le directory /boot dans le file initrd.img-* . Le path d'access au file key ( /boot/keyfile ) se trouve dans le file /etc/crypttab .

J'ai mis à jour les initramfs avec sudo update-initramfs -u mais j'ai reçu ce message: cryptsetup: WARNING: target sdaX_crypt uses a key file, skipped.

Ignorer le message et redémarrer entraîne un disque non initialisable. Le message est Gave up waiting for root device. est affiché et tombe dans le shell initramfs .

Dans l'environnement initramfs , le cryptsetup n'existe pas. (Cela devrait exister?)

Seens que la update-initramfs -u "pense" le périphérique sdaX_crypt sera monté d'une autre manière et ne sera pas configuré pour décrypter avec le file keyfile.

Comment puis je faire ça?

Pour vraiment ignorer le message et ne pas sauter la partition, il faut (au less) commenter / supprimer le return 1 dans /usr/share/initramfs-tools/hooks/cryptroot après la ligne où le message d'erreur est écrit 274 – depening sur la version de cryptsetup utilisée). Attention, ce file est géré par défaut par le gestionnaire de packages et est donc écrasé lors de toute mise à jour du package cryptsetup.

Veuillez lire aussi https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776409 pour plus d'informations sur le problème.

Je ne l'ai pas testé, il pourrait y avoir d'autres raisons que la raison pour laquelle le cas d'un file key n'est pas pris en count.

Vous pouvez utiliser l'option keyscript dans votre crypttab à la place (man crypttab). Il suffit de créer un script qui echos votre mot de passe et le définir comme l'argument keyscript, puis régénérer vos ramfs. Vous n'avez pas besoin de hooks, et vous n'avez pas besoin de mettre le script dans / boot /.

vg1-root_crypt UUID=94a3b301-123-12-a3-ea0403 none luks,keyscript=/etc/echo-root-luks-pass

Je ne sais pas pourquoi les initramfs hooks pour cryptsetup vous interdisent d'avoir juste le file key listé dans crypttab. Probablement ne veulent pas tolérer un tel comportement.

PS Je ne pense pas que cela brise la security, cela l'affaiblit plus ou less selon la security de votre partition / boot. Vous pourriez par exemple / démarrer une key USB, et garder l'USB dans vos chaussettes, etc.

Si ma memory me sert bien, votre problème est que votre fstab est modifié pour pointer vers la partition cryptée, puisque vous avez démarré à partir d'une partition non chiffrée votre fstab (pendant que vous exécutez update-initrd ) devrait pointer vers votre volume non chiffré. Après avoir créé l'image initrd, vous pouvez modifier votre fstab pour qu'il pointe sur la partition chiffrée.