TPMs on Linux (was Re: Make systemd-localed modify the kernel commandline for the initrd keymap?)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Fri, Sep 27, 2019 at 3:33 PM Mantas Mikulėnas <grawity@xxxxxxxxx> wrote:

On Fri, Sep 27, 2019 at 3:18 PM Alberto Ruiz <aruiz@xxxxxxxxxx> wrote:


On Fri, Sep 27, 2019 at 12:50 PM Lennart Poettering <mzerqung@xxxxxxxxxxx> wrote:
On Mi, 25.09.19 16:50, Hans de Goede (hdegoede@xxxxxxxxxx) wrote:

> Hi all,
>
> Currently, at least in Fedora, but I do not believe that this problem is
> unique to Fedora, there are 2 problems with keymap handling in the
> initrd.

Hmm, why do you need a correct initrd in the early boot? I can see two
reasons:

1. full disk encryption with the user typing in the password on the
   kbd. But isn't the answer to this to link the root OS to the tpm
   instead, and use user-keyed crypto only for $HOME? The OS itself
   doesn't need to be protected after all, everbody should have the
   same files there anyway, it's $HOME that needs protection.

Some counterarguments here:
- The TPM does not protect you from someone stealing your entire laptop and booting from external media,

It does, because one of the PCRs has the entire boot sequence embedded into it. If you seal the key and then boot something else, the TPM will refuse to unseal the key for you. The same can be applied to hash of the kernel image (and initrds, if someone patched systemd-boot to include them in PCR8), and/or to Secure Boot state as done by Windows.
 
- There are plenty of systems out there without a TPM module that Fedora cares about

That's the main problem. Only two of my several still-reasonably-modern x64 machines have TPMs, and one of them is TPM 1.2 which requires the completely unmaintained Trousers stack.

As a side topic for systemd-homed, I kind of wish Linux had some actual daemon that would take care of TPM stuff, like providing an API to seal keys without requiring the user to care about which PCRs to use and worry about what happens after kernel upgrades, and would work equally with both TPM 2.0 and TPM 1.2. (Kind of like what ChromiumOS.git currently has in its cryptohome bits?)

I'm not sure if that would be part of systemd(-tpmd), or part of SSSD which has a "secrets" store, or something else.

I do already have a TPM-locked LUKS root filesystem, and some of the tools involved in setting it up could very well be called "user-hostile". (To be fair they just faithfully replicate the underlying API, but...)

(As a side topic to the side topic, I've been working on a hack to achieve password-free unlocking like on Windows, but without involving Secure Boot: https://github.com/grawity/tpm_futurepcr -- I'm not sure if it's the brightest idea, but so far it does the job.)

--
Mantas Mikulėnas
_______________________________________________
systemd-devel mailing list
systemd-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux