Posso usar um cabeçalho luks desanexado para várias unidades?

3

Posso usar o mesmo cabeçalho individual de LUKS para várias unidades?
O que devo ter em mente? Isso também é possível se as unidades forem fundamentalmente diferentes (tamanhos diferentes, fabricação, etc.)?

Razão: Eu quero usar várias unidades em um único sistema com LUKS, mas do ponto de vista de segurança não há nenhum benefício em usar cabeçalhos diferentes. Mas talvez haja razões técnicas para não fazê-lo?

    
por therealmarv 16.08.2016 / 21:44

1 resposta

2

Técnico

Sim, você pode absolutamente copiar um cabeçalho LUKS de um disco para outro. Para ser exato, você pode copiá-lo de um projeto de bloco para outro dispositivo de bloco, isso significa que você pode copiar com segurança o cabeçalho LUKS de uma partição (um dispositivo de bloco) para um dispositivo de bloco que representa todo o disco. Você pode simplesmente fazer:

dd if=/path/to/block/deviceA of=/path/to/block/deviceB bs=2M count=1

Existe uma limitação técnica, se você estiver usando algo como udev para identificar dispositivos de bloco pelo UUID e atribuí-los a arquivos de dispositivos específicos do que udev pode ficar confuso já que todas as unidades terão o mesmo UUID. Isso ocorre porque o cabeçalho LUKS contém um UUID.

Observe que isso não é o mesmo que montar sistemas de arquivos em /etc/fstab . mount estará olhando para os UUIDs dos sistemas de arquivos que estão no topo da LUKS (contanto que a unidade seja descriptografada).

O fato de o cabeçalho LUKS poder ser usado em qualquer dispositivo de bloco também significa que o tamanho do dispositivo não é importante para o cabeçalho. Se você estiver usando o cabeçalho em uma única partição, a tabela de partições saberá o tamanho do dispositivo de bloco, se você estiver usando em um disco inteiro, então o kernel saberá seu tamanho.

Segurança

Do ponto de vista da segurança, copiar cabeçalhos do LUKS é uma má ideia . O cabeçalho LUKS contém uma chave de criptografia com a qual os dados são criptografados, ou seja, os dados são criptografados com a chave dentro do cabeçalho, não com uma chave gerada a partir da senha. O cabeçalho LUKS, em seguida, armazena essa chave de criptografia várias vezes criptografada em uma chave gerada a partir de uma senha.

Se o disco puder ser descriptografado com 3 senhas diferentes, a chave será armazenada três vezes: cada vez criptografada sob uma chave gerada a partir de uma senha.

Como exemplo, vamos assumir que você tem dois discos e cada um pode ser descriptografado com duas senhas, e você copiou o cabeçalho LUKS de um disco para outro. Agora, se uma das senhas for comprometida, a chave de criptografia será comprometida. Se um invasor conseguir colocar as mãos no disco A e obter a chave usando a senha comprometida, será necessário destruir os dados no disco rígido, pois o invasor poderá descriptografá-lo.

Na mesma situação (uma senha é comprometida), se você não copiou o cabeçalho LUKS, a recuperação seria muito mais fácil. Se diskA estiver na posse de um invasor e ele tiver a chave de criptografia para diskA, ele ainda não poderá descriptografar os dados no diskB. Ele pode, é claro, usar a senha comprometida para obter a chave de criptografia do discoB do discoB, mas, se você for mais rápido que o invasor, poderá desabilitar a senha comprometida do discoB (isso acontece sobrescrevendo a chave de criptografia armazenada no arquivo comprometido). senha).

Portanto, há benefícios de usar cabeçalhos diferentes. Um dos objetivos do cabeçalho é permitir que senhas diferentes sejam usadas e fazer com que os dados criptografados em cada dispositivo de bloco sejam criptografados com uma chave diferente, embora a senha usada para descriptografar as unidades seja a mesma.

    
por 17.08.2016 / 03:05