dm-crypt + luks: Posso ter um cabeçalho separado sem armazená-lo no dispositivo criptografado do luks?

3

Gostaria de criptografar meu disco rígido externo com dm-crypt + luks, mas não estou satisfeito com todas as informações que o cabeçalho LUKS está fornecendo em texto simples.

Portanto, gostaria de manter o cabeçalho LUKS e os dados criptografados separados um do outro:

  1. Armazene a partição LUKS (CRYPT) sem o cabeçalho na unidade externa.
  2. Sempre que eu quiser acessar os dados criptografados, mesclar cabeçalho e CRYPT e montar a partição luks normalmente.

Eu já sei como conseguir isso manualmente:

  1. Cabeçalho LUKS de backup com dd.
  2. Substituir o cabeçalho do LUKS na unidade externa.
  3. Sempre que a partição LUKS for montada, escreva-a de volta e monte normalmente.
  4. Desmonte e sobrescreva o cabeçalho novamente, quando terminar.

Isso não é muito ideal, porque os Setores do cabeçalho luks seriam sobrescritos toda vez que o drive é montado e eu temeria, que esses setores ficarão ruins com certeza.

Outra abordagem seria que o arquivo de cabeçalho e a partição luks criptografada sejam mesclados em um dispositivo Linux virtual, que pode ser montado normalmente.

Com "mesclando em um dispositivo virtual", quero dizer, que o cabeçalho não é realmente gravado de volta na partição luks, mas o sistema está percebendo dessa maneira. O cabeçalho ainda permanece no meu pendrive.

Meu único problema é que não sei como criar um dispositivo virtual como esse.

Qualquer ajuda seria apreciada.

    
por user1861174 11.10.2014 / 18:13

1 resposta

8

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.

    
por 05.11.2014 / 05:10