O cabeçalho LUKS não contém código executável, apenas uma ou mais cópias criptografadas da chave mestra da partição LUKS. Cada método de senha / keyfile / outro método de acesso configurado irá descriptografar uma cópia da chave mestra, que é necessária para acessar o disco criptografado. A senha LUKS não é "enviada para o cabeçalho LUKS para descriptografia": em vez disso, o comando cryptsetup luksOpen
lê o cabeçalho LUKS e, em seguida, descriptografa na memória usando a senha.
Se um hacker modificou com sucesso o cabeçalho LUKS, isso praticamente indica que o hacker (ou uma ferramenta hacker) já conhecia a senha LUKS, já que é necessário modificar com sucesso o cabeçalho LUKS sem corrompê-lo.
Um possível cenário pode ser um hacker adicionando a substituição do comando regular cryptsetup
no arquivo initramfs da sua partição raiz por um modificado: o cryptsetup
modificado solicitaria sua senha LUKS como uma normal, mas, em seguida, além de desbloquear o disco, criptografaria novamente a chave mestra da partição LUKS com outra senha que é conhecida pelo invasor e a armazena em um dos slots livres no cabeçalho LUKS. Alternativamente, ele poderia apenas armazenar a chave mestra não criptografada em algum local oculto fora da partição LUKS criptografada. Em seguida, o cryptsetup
modificado poderia substituir o arquivo initramfs modificado em sua partição de inicialização pelo original, dificultando a detecção do que realmente aconteceu.
cryptsetup luksDump
pode ser usado para visualizar o conteúdo do cabeçalho LUKS em formato legível. Se você vir mais slots em uso do que o esperado, poderá usar cryptsetup luksKillSlot
para desativar os slots de chaves não autorizados sem saber a senha associada a eles. Tenha cuidado com este comando: é possível bloquear-se fora do disco criptografado se você cometer erros com este comando.