Descriptação automática com o TPM2 (Ubuntu)

farbus

Desbanido
Registrado
Eu sempre gostei de ter meus dispositivos encriptados, mas só há pouco tempo passei a usar a implementação desse TPM 2 junto para desencriptar automaticamente no boot do sistema.

No caso, foi o Windows 11 mesmo que me chamou a atenção para essa possibilidade, então resolvi buscar uma forma de fazer algo similar com a instalação do meu Ubuntu, que tenho junto na mesma máquina, e tudo com o secure boot ativado para maior segurança.


Vou passar um bem resumido do que fiz, e do resultado que obtive, mas no final apresento também as fontes principais que tomei como base.


Fiz a instalação normal do Ubuntu com encriptação LVM completa do disco, utilizando uma chave razoavelmente forte, e incluí o PATH em /etc/profile, conforme abaixo:

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
export PATH

Em seguida instalei os seguintes pacotes:

sudo apt install clevis-tpm2 clevis-luks clevis-dracut

E precisei executar também estes comandos:

sudo dracut -f /boot/initrd.img-$(uname -r)
sudo chmod o+rw /dev/tpmrm0

No próximo passo será necessário identificar a unidade de disco onde está o linux.
Observem que no meu caso o disco da minha instalação é o sdb:

m9J5mp3.png


E este comando serve para verificar as informações de criptografia vinculadas na partição onde está o disco criptografado:

sudo cryptsetup luksDump /dev/sdb3

vY9saxD.png

Obs: No meu caso a Keyslot 1 já está ocupada porque eu já fiz os procedimentos, mas quem não fez ainda, esse slot vai estar desocupado.

Em seguida o comando para vinculação da chave TPM 2 na partição criptografada desse disco:

sudo clevis luks bind -d /dev/sdb3 tpm2 '{"pcr_bank":"sha256","pcr_ids":"7"}'

[Entrar com a senha para a desencriptação do disco]

A vinculação da chave no keyslot pode ser conferida dando novamente o comando abaixo:

sudo cryptsetup luksDump /dev/sdb3

Depois, basta reiniciar para testar se descriptação automática funcionou.


Obs: Se houver atualização de kernel, pode ser que a chave seja invalidada, então será necessário desvincular a chave antiga e setar uma nova.

Para verificar o slot da key vinculado (provavelmente 1):

sudo cryptsetup luksDump /dev/sdb3

Considerando que está no slot 1 mesmo:

sudo clevis luks unbind -d /dev/sdb3 -s 1

E em seguida basta realizar a nova vinculação,

sudo clevis luks bind -d /dev/sdb3 tpm2 '{"pcr_bank":"sha256","pcr_ids":"7"}'



Resultado final:



Obs: Desconsiderem a forma que faço boot pelo linux, pois não gosto de gerenciador de boot, prefiro que minha máquina faça sempre o boot diretamente no Windows, e uso o atalho "F8" da minha mobo para eventualmente fazer boot no linux.


Abaixo seguem as fontes que tomei como base,

https://kowalski7cc.xyz/blog/luks2-tpm2-clevis-fedora31
https://www.fit-pc.com/wiki/index.php?title=Linux:_Full_Disk_Encryption


Só um suspiro final, acho o resultado satisfatório, apesar de não ser tão rápido quanto o bitlocker ao desencriptar o disco de sistema do Windows. Mas o que me incomoda mesmo é a mensagem do luks durante o processo de descpriptação... Eu tentei, mas não consegui uma forma de silenciar/esconder completamente a mensagem dele...
 
Última edição:

Users who are viewing this thread

Voltar
Topo