[systemd-devel] PCR signing / enrolling on UKI and validation by systemd-cryptenroll
Felix Rubio
felix at kngnt.org
Sat May 25 07:00:00 UTC 2024
Hi everybody,
For some time now I have been using UKIs, with SB enabled and tying FDE
decryption on PCRs 7+11+14, with the PCR 11 being measured during UKI
creation. Then, I use systemd-cryptenroll to update the secret:
########
PCR11=$(/usr/lib/systemd/ukify -c /etc/kernel/uki.conf --measure
--output=/tmp/arch-linux.efi build | grep 11:sha256)
systemd-cryptenroll --unlock-key-file=/root/creds/fdepassword.txt
--wipe-slot=tpm2 --tpm2-device=auto --tpm2-pcrs=7+11:sha256=d05ee4...+14
/dev/nvme0n1p5
########
This works, flawlessly. Now, I am exploring the possibility to not bind
to the value of those PCRS but to their signature, given that I am also
embedding that in the UKI (the correspondent .pcrsig section is in
place). However, I am a bit lost:
* in .pcrsig there is only the signature for pcr11, and there seems to
be no way to embed the signatures for other PCR values.
* when used in cryptenroll, how should I use this? So far, seems should
be a call like
########
systemd-cryptenroll --unlock-key-file=/root/creds/fdepassword.txt
--wipe-slot=tpm2 --tpm2-device=auto
--tpm2-public-key=/root/creds/tpm2-pcr-public.pem
--tpm2-public-key-pcrs=<what?>
########
... but then I do not see what should be provided in
tpm2-public-key-pcrs. The same values I am currently giving to
--tpm2-pcrs? the signatures that I get from the .pcrsig for 11 + the
calculated signatures for the current values of the PCRs 7 and 14?
Thank you very much for your time,
--
Felix Rubio
More information about the systemd-devel
mailing list