Não estou ciente de uma maneira de alterar as chaves LUKS sem cryptsetup
. Eu vou editar isso se eu encontrar um jeito. Mas eu acho que posso te ajudar com todo o resto.
Acho que você precisa de clareza sobre como a criptografia se encaixa no grande esquema das coisas.
dm_crypt
, através do utilitário cryptsetup
userspace, funciona em qualquer coisa que se pareça com um dispositivo de bloco. Isso pode ser um disco rígido inteiro (ou seja, /dev/sda
), uma única partição desse disco rígido (ou seja, /dev/sda1
) ou VG (grupo de volume, ou seja, /dev/volume_group
).
Um VG terá anteriormente feito um PV (volume físico) usando pvcreate
em uma ou mais partições reais do disco (como /dev/sda1
). Em seguida, todos os PVs são entroncados em um VG usando vgcreate
, que cria um novo dispositivo representando o VG em /dev
. Depois de criar o VG, você precisa formatá-lo emitindo um comando como mkfs.ext4 /dev/volume_group
e, em seguida, mount /dev/volume_group
para qualquer lugar. Observar um comando mount
simples executado como root deve lhe dar uma idéia do que está no momento em seu sistema.
Um volume criptografado deve ser criado passando um dispositivo de bloco (não importa se é um disco real ou um VG) para cryptsetup luksFormat
. Nesse momento, você pode digitar uma frase secreta ou especificar um arquivo-chave. Em seguida, para usá-lo, você precisa abrir esse dispositivo de bloco usando cryptsetup luksOpen
(que solicita a frase-senha atribuída anteriormente ou você pode especificar um arquivo-chave); isso criará outro dispositivo de bloco "virtual" em /dev/mapper
, ou seja, /dev/mapper/encrypted
. Isso é o que você deseja dar a ferramentas como mkfs.ext4
, fsck
e mount
para realmente usar o dispositivo de bloqueio criptografado.
Importante: Antes de você fazer o cryptsetup luksFormat
, você quer sobrescrever o espaço livre no seu disco com dados aleatórios, seja com dd
ou o comando badblocks
. luksFormat
não faz isso e se você não fizer isso antes, um adversário pode dizer onde você gravou no disco e onde você não o fez.
O ponto em usar um grupo de volumes em combinação com criptografia em um único disco rígido é servir a mesma finalidade que partições de disco, mas como está dentro de um volume criptografado, seu esquema de "particionamento" não pode ser descoberto a menos que seja desbloqueado. Portanto, você pegaria um disco inteiro, criaria um volume criptografado e usaria pvcreate
, vgcreate
e lvcreate
para criar volumes lógicos que são montados como se fossem partições. (Isso explica: link )
Desmontar o volume realmente envolverá umount /dev/mapper/encrypted
para desconectar o sistema de arquivos e, em seguida, um cryptsetup luksClose encrypted
para desconectar o dispositivo de bloco virtual.
cryptsetup
permite adicionar ( luksAddKey
) e remover chaves ( luksDelKey
). Eu acho que você pode ter até 8 chaves em um volume criptografado. Uma chave é alterada, adicionando uma nova chave e, em seguida, excluindo a chave antiga.
A sintaxe específica para todas as opções cryptsetup
está aqui: link