Como criptografar a partição /home com o algoritmo Adiantum?

Gostaria de criptografar meus arquivos pessoais (apenas a partição /home, com ext4). Tenho um notebook antigo (com um i3-3217U) que não possui aceleração AES por hardware, então gostaria de utilizar o Adiantum que se mostra bem mais rápido nesse caso, como se pode ver:

cryptsetup benchmark -c xchacha12,aes-adiantum -s 256
Tests are approximate using memory only (no storage IO).
            Algorithm |       Key |      Encryption |      Decryption
xchacha12,aes-adiantum        256b       444,7 MiB/s       445,7 MiB/s
cryptsetup benchmark -c aes-xts-plain64 -s 256
Tests are approximate using memory only (no storage IO).
 Algorithm |       Key |      Encryption |      Decryption
    aes-xts        256b        96,6 MiB/s       111,6 MiB/s

Já vi diversos sites falando sobre o Adantium mas nenhum oferece um tutorial para o usuário Linux mediano de como implementá-lo na criptografia do seu disco, também perguntei no fórum do Mint mas não recebi resposta. Qualquer ajuda é bem vinda, obrigado!

Não é apenas escrever o modo de criptografia que vc quer ao usar o luksFormat ?? Nesse vídeo o cara mostra o comando “padrão” (aos 4:03) mas vc poderia adaptar ao método que vc quer.

Mas o LUKS implica criptografia completa de disco, não? Como eu disse, quero criptografar apenas a partição /home. Estou pesquisando aqui e o dm-crypt parece ser o que desejo, mas estou bem confuso se em uma futura reinstalação do Linux (formatando partição / e EFI) vou poder reutilizar a minha /home criptografada

Não necessariamente.

Então, vc está confundindo tudo:

  • O dm-crypt é um módulo para gerenciamento de dispositivos criptografados.
  • O LUKS é uma extensão do dm-crypt. Eles trabalham juntos.
  • Qualquer disco, partição ou arquivo pode ser usado como dispositivo criptografado. O dm-crypt faz a camada de tradução para que esse dispositivo seja entendido pelo sistema como um dispositivo com os dados reais.
  • Em um disco inteiro criptografado, vc pode criar uma tabela de partição que ficará também criptografada.
  • Em um disco não criptografado, a tabela de partição fica visível sem proteção, mas vc pode configurar uma partição para que seja criptografada. Essa partição, uma vez feita a montagem pelo dm-crypt (comando crypsetup open ou para facilitar sua vida cryptsetup luksOpen) pode ser montada como uma partição normal.
  • É possível até mesmo vc criar um arquivo com um tamanho fixo, digamos 250MB, e formatá-lo como unidade criptografada, e montá-lo como dispositivo.
  • Atente que ao usar apenas o home criptogradado ainda poderá haver vazamento de informação atraves do diretório /tmp ou do swap. Também vai dificultar para vc fazer uma segunda instalação e tentar aproveitar o mesmo /home criptografado. Faça backup antes, pois um erro nessa etapa e não será possível recuperar os arquivos…
1 Curtida

Todos os passos a seguir devem ser feitos através do boot de uma iso live, não dentro do próprio sistema que necessita da home
Obviamente você precisa mudar o caminho das partições, caminho para disco de backup e o nome do usuário de acordo com suas necessidades

  1. Fazer backup dos seus arquivos atuais da /home, já que será necessário formatá-la
    tar -cpf {caminho_para_backup}/home-backup.tar /home

  2. Formatar a partição /home com a criptografia desejada
    sudo cryptsetup luksFormat --type luks2 --sector-size 4096 -c xchacha12,aes-adiantum-plain64 -s 256 {caminho_da_partição_home}

  3. Montar a partição criptografada
    sudo cryptsetup luksOpen {caminho_da_partição_home} homecriptografada

  4. Criar um sistema de arquivos de sua escolha para carregar o diretório home
    sudo mkfs.ext4 /dev/mapper/homecriptografada

  5. Listar o UUID de todas as partições, anote os valores da partição LUKS e do sistema de arquivos que criou dentro dela
    lsblk -o NAME,UUID,TYPE,FSTYPE,MOUNTPOINT /dev/sda

  6. Montar a partição root
    sudo mkdir -p /mnt/root
    sudo mount {caminho_da_partição_root} /mnt/root

  7. Modificar o arquivo /mnt/root//etc/crypttab na partição root para que o sistema descriptografe a partição durante o boot, com o conteúdo abaixo, mudando apenas o valor de UUID para o que o LUKS gerou no seu disco. Caso o arquivo não exista, crie-o com “sudo touch /mnt/root/etc/crypttab && sudo chown root:root /mnt/root/etc/crypttab && sudo chmod 744 /mnt/root/etc/crypttab”
    homecriptografada UUID=188481b8-371f-49fd-93d3-3c4fc70138eb none luks,timeout=180

  8. Modificar o arquivo /mnt/root/etc/fstab adicionando o novo valor do UUID da nova partição da /home para que o sistema a reconheça e consiga montá-la com sucesso
    UUID=09446886-cb7e-4bff-85a7-065843e4c9d7 /home ext4 noatime,defaults 0 2

  9. Montar a nova partição home
    sudo mkdir -p /mnt/novahome
    sudo mount /dev/mapper/homecriptografada /mnt/novahome

  10. Restaurar os seus arquivos, reiniciar e ver se funcionou
    tar -xpf {caminho_para_backup}/home-backup.tar -C /mnt/novahome

  11. Talvez esse passo não seja necessário, faça se tiver problemas com o acesso aos arquivos, como por exemplo se a sua distribuição ficar travada na tela de login do usuário (reinicie na iso live e faça todos os comandos de montagem novamente)
    find /mnt/novahome -type d -print0 | xargs -0 chmod 755
    find /mnt/novahome -type f -print0 | xargs -0 chmod 644
    sudo adduser {seu_usuário_atual}
    sudo chown -R {seu_usuário_atual}:{seu_usuário_atual} /mnt/novahome

1 Curtida