Hello,
I’ve an HP EliteBook 840 G5 that I’ve been using up until now with Windows 10. I want to replace it with Debian 12 however since this is a laptop I would like to have my disk fully encrypted as well as the boot stage (initramfs etc).
My threat model: make sure if someone stoles the laptop, powered off, they won’t be able to access my data. I would also like to avoid evil maid attacks and make sure I’m not booting into some modified kernel / system with spyware or that will leak my TPM keys.
I’ve found some information online but I’m unsure of how secure those setups are and/or if it isn’t even possible to have the same level of security that Windows provides.
Here are a few of my questions:
- Anyone around here that has a similar HP laptop and did this?
- What about enrolling secure boot keys on the UEFI? From what I read simply using the typical Linux shim makes things more secure but it doesn’t fix the problem. Enrolling keys seems to break some motherboards
- Even if I use
--tpm2-pcrs=1,4,5,7,9
how secure is that, should I add more? - What is the impact of this in system upgrades? How do I deal with those?
- If I want to proceed with this what I should know / what typically fails or can be problematic / security issue?
Some of the information I found:
- https://0pointer.net/blog/unlocking-luks2-volumes-with-tpm2-fido2-pkcs11-security-hardware-on-systemd-248.html
- https://saligrama.io/blog/post/upgrading-personal-security-evil-maid/
- https://fedoramagazine.org/automatically-decrypt-your-disk-using-tpm2/
Thank you.
I think pcr 7+8 (for grub) or pcr 7+12 (for systemd-boot) should be okay. The more pcr you add, the higher likelihood you need to re-enroll after updates.
https://www.freedesktop.org/software/systemd/man/systemd-cryptenroll.html
The reason why using your own keys can be a problem is if you exclude the Microsoft certificates, then oproms from graphics cards stop working. You have to add the Microsoft certs after using your own key for the top level platform key.
For Debian, if you use out of kernel modules like Nvidia, you have create signing keys and edit a config file so dkms to sign those modules for those modules to work with Secure Boot. Instructions are on the Debian wiki.
The more pcr you add, the higher likelihood you need to re-enroll after updates
So that means if I run upgrades and forget to re-enroll I’ll get a broken system that I won’t be able to boot to and fix it?
That just means the TPM will not auto unlock the encrypted disk. You would have to unlock with whatever LUKS password (or key file) you set for that drive. There is optionally a TPM master key you can export that is similar to the Microsoft Bitlocker password (40 digit number iirc), that Lennart mentioned in his blog. If you deleted any other key slots and do not have that TPM master key, you will not be able to unlock the LUKS drive.
If you look at that freedesktop manpage I linked, it states some of the PCR values and what each one measures. When you enroll a PCR, that value is stored in the TPM. If anything differs between the system and the TPM, the TPM will refuse to unlock that encrypted drive.
For example, PCR 0 measures your motherboard UEFI firmware. If you update the firmware, the TPM will not unlock your LUKS drive until you re-enroll the drive once again. Is is a personal choice, but enrolling certain PCR into the TPM can be more inconvenient.