GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Utilisation de l'espace avant la 1ère partition de la clé USB en tant que clé Luks ?

J'utilise arch linux avec une partition racine luks cryptée (démarrage non crypté), avec une phrase de passe pour le moment.
Maintenant, j'ai un fichier clé (3072 octets), qui est écrit sur la clé USB de cette façon :

sudo dd if=tempKeyFile.bin of=/dev/sdd bs=512 seek=1 count=6

et également défini comme passe supplémentaire

sudo cryptsetup luksAddKey /dev/sdb6 tempKeyFile.bin

Lorsque j'ouvre la partition manuellement avec :

sudo cryptsetup --key-file tempKeyFile.bin open /dev/sdb6 luks_root

tout fonctionne, la partition est mappée et peut être montée.
Maintenant ma ligne kernel-parameter-line dans grub.cfg ressemble à ceci :

linux /vmlinuz-linux root=UUID=$UUID_OF_luks_root$ rw cryptdevice=UUID=$UUID_OF_sdb6$:luks_root cryptkey=/dev/sdd:1:6

Mais au démarrage, j'obtiens cette erreur :

No key available with this passphrase.
Invalid Keyfile. Reverting to passphrase.

J'ai déjà essayé le décalage 2 au lieu de 1, mais même résultat. J'ai remarqué qu'il ne dit pas que le fichier clé n'a pas pu être trouvé/lu, mais qu'il était incorrect.

Il semble y avoir peu de documentation sur cette façon de stocker le fichier de clés luks. Arch-wiki le mentionne, mais très brièvement et je semble être conforme, donc je pense que cela devrait être possible.

dans mon mkinitcpio.conf MODULES, BINAIRES et FICHIERS sont vides et je mets :

HOOKS=(base udev autodetect keyboard modconf block encrypt filesystems fsck)

donc bloquer est juste avant chiffrer.

Quel est le problème ici ?

Réponse acceptée :

Depuis le crochet de chiffrement d'ArchLinux (/lib/initcpio/hooks/encrypt ):

*)
    # Read raw data from the block device
    # ckarg1 is numeric: ckarg1=offset, ckarg2=length
    dd if="$resolved" of="$ckeyfile" bs=1 skip="$ckarg1" count="$ckarg2" >/dev/null 2>&1
    ;;

Ainsi, bien qu'il prenne en charge la lecture d'une clé à partir d'un périphérique de bloc brut, il utilise une taille de bloc de 1 (au lieu de la valeur par défaut 512), vous devez donc multiplier vos valeurs par 512 pour que cela fonctionne.

Donc au lieu de cryptkey=/dev/sdd:1:6 essayez cryptkey=/dev/sdd:512:3072 .


Linux
  1. Comment sauvegarder ou cloner des partitions Linux à l'aide de la commande 'cat'

  2. Comment chiffrer une partition avec DM-Crypt LUKS sous Linux

  3. Vérifier l'espace disque sous Linux à l'aide des commandes df et du

  4. Comment cloner une partition de disque Linux sur le réseau à l'aide de dd

  5. Simulation d'un événement Key Press à l'aide de Python pour Linux

Comment créer ou redimensionner en toute sécurité des partitions sous Linux à l'aide de GParted

Création de disques virtuels à l'aide de la ligne de commande Linux

Comment vérifier l'utilisation de l'espace disque sous Linux à l'aide de Ncdu

Comment cloner et restaurer une partition Linux à l'aide de la commande dd

15 choses à savoir avant d'utiliser Kali Linux

Comment chiffrer les périphériques de bloc à l'aide de LUKS sous Linux