GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:utilizzare lo spazio prima della prima partizione della chiavetta USB come chiave Luks?

Sto usando arch linux con una partizione root luks crittografata (avvio non crittografato), con ancora una passphrase.
Ora ho un file di chiavi (3072 byte), che è scritto su USB-Stick in questo modo:

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

e anche impostato come pass aggiuntivo

sudo cryptsetup luksAddKey /dev/sdb6 tempKeyFile.bin

Quando apro la partizione manualmente con:

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

tutto funziona, la partizione è mappata e può essere montata.
Ora il mio kernel-parameter-line in grub.cfg assomiglia a questo:

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

Ma all'avvio, ottengo questo errore:

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

Ho già provato l'offset 2 invece di 1, ma stesso risultato. Ho notato che non dice che non è stato possibile trovare/leggere il file di chiavi, ma non era corretto.

Sembra che ci sia poca documentazione su questo modo di archiviare il file di chiavi luks. Arch-wiki ne fa menzione, ma molto brevemente e mi sembra di essere conforme, quindi penso che dovrebbe essere possibile.

nel mio mkinitcpio.conf MODULI, BINARI e FILE sono vuoti e ho impostato:

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

quindi il blocco è subito prima della crittografia.

Qual è il problema qui?

Risposta accettata:

Dall'hook encrypt di 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
    ;;

Quindi, mentre supporta la lettura di una chiave da un dispositivo a blocchi non elaborati, utilizza una dimensione del blocco di 1 (invece del 512 predefinito), quindi devi moltiplicare i tuoi valori per 512 per farlo funzionare.

Quindi, invece di cryptkey=/dev/sdd:1:6 prova cryptkey=/dev/sdd:512:3072 .


Linux
  1. Come eseguire il backup o clonare le partizioni Linux utilizzando il comando "cat".

  2. Connettiti a un server utilizzando SSH su Linux o Mac OS X

  3. Linux / UNIX:come creare una partizione estesa usando fdisk

  4. Determinazione dell'utilizzo del disco in Linux utilizzando il comando "du".

  5. Come clonare la partizione del disco di Linux sulla rete usando dd

Come creare o ridimensionare in sicurezza le partizioni in Linux usando GParted

Creazione di dischi virtuali utilizzando la riga di comando di Linux

Come controllare l'utilizzo dello spazio su disco in Linux utilizzando Ncdu

Come clonare e ripristinare la partizione Linux usando il comando dd

15 cose da sapere prima di usare Kali Linux

Come crittografare i dispositivi a blocchi utilizzando LUKS su Linux