On Fr, 09.05.25 15:36, Andrei Borzenkov (arvidj...@gmail.com) wrote:
61;8001;1c
> I know that it is documented, but that leads to rather bad user experience.
> User requests specific protection via --pcr= option, pcrlock decides to skip
> (some of) them and binds unlocking to just a subset of PCRs pretending that
> the operation succeeded. At this point user believes that the system is
> protected - while it is not. The practical case was requesting PCRs 4,7,9
> (and expecting to be protected from the kernel command line change) and
> getting just PCR 7 thus allowing init=/bin/sh with full access to unlocked
> root.
>
> I think that in case of explicit --pcr= argument systemd-pcrlock should
> really fail if it cannot build policy that satisfies it.
>
> Alternatively, if it does not fail it should not also skip PCRs. After all,
> it is about predicting future behavior. Even if corresponding measurements
> are not present in the log *now*, they may be used after reboot. The reason
> to fail here would be the lack of predictions covering these PCRs, not the
> lack of the actual measurements using them.
>
> The current behavior looks more like the case for auto-detection - check
> what existing measurements are covered by predictions and incorporate those
> PCRs. I.e. when no explicit --pcr= option is present.

The general rule behind pcrlock is to focus on keeping things
working. i.e. if we have clear indication that locking down a PCR
means you cannot reboot, then we'll not do it, and remove the PCR from
the protection. Because otherwise people will just hate us, and turn
off the whole thing. I think pcrlock is not an all-or-nothing thing:
we should apply the tightest policy we can get away with, and that's
what we do. Hence: doing as-good-as-a-we-can is a lot better here than
just to fail entirely and not apply any system integrity.

If you want explicit config use the simpler PCR protections
systemd-cryptsetup gives you, and avoid pcrlock. pcrlock is *all*
about making things work in a graceful fashion: lock down as tightly
as we can get away with but not more, because breaking things is not
just awful user XP, but is also a DoS waiting to happen.

Hence, hard disagree: pcrlock is not what you appear to think it is.

(I am fine with adding a --strict-pcr= or so switch that takes a list
of PCRs that must strictly be included, but that should be used for
special cases only, never as default)

Lennart

--
Lennart Poettering, Berlin

Reply via email to