Você pode simplesmente usar o LUKS no modo de cabeçalho desanexado:
cryptsetup luksFormat /dev/sda4 --header ~/lukshdr --align-payload 0 --cipher twofish
cryptsetup open /dev/sda4 --header ~/lukshdr mycrypt
cryptsetup luksSuspend mycrypt --header ~/lukshdr
cryptsetup luksResume mycrypt --header ~/lukshdr
Você pode colocar o arquivo de cabeçalho onde quiser, incluindo um dispositivo de bloco.
~/lukshdr
deve ter pelo menos 1049600 bytes de tamanho para que luksFormat
funcione:
dd if=/dev/zero bs=1049600 count=1 > ~/lukshdr
Se você executar lsblk -b
, verá que o tamanho do dispositivo mapeado é precisamente igual ao tamanho do dispositivo LUKS; não há espaço onde qualquer cabeçalho ou metadados possa se esconder.
$ lsblk -b
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 80026361856 0 disk
├─sda1 8:1 0 254803968 0 part /boot
├─sda2 8:2 0 5999951872 0 part [SWAP]
├─sda3 8:3 0 19999490048 0 part /
└─sda4 8:4 0 53771067392 0 part
└─mycrypt 254:0 0 53771067392 0 crypt /tmp/mnt
Na verdade, desde que as cifras subjacentes permaneçam ininterruptas, o dispositivo LUKS será parecido com dados aleatórios para qualquer pessoa que não tenha o arquivo de cabeçalho.