Re: [PATCH 4/5] MODSIGN: checking the blacklisted hash before loading a kernel module

From: James Bottomley
Date: Wed Mar 14 2018 - 10:19:34 EST


On Wed, 2018-03-14 at 14:08 +0800, joeyli wrote:
> On Tue, Mar 13, 2018 at 10:18:35AM -0700, James Bottomley wrote:
> >
> > On Tue, 2018-03-13 at 18:38 +0800, Lee, Chun-Yi wrote:
> > >
> > > This patch adds the logic for checking the kernel module's hash
> > > base on blacklist. The hash must be generated by sha256 and
> > > enrolled
> > > to dbx/mokx.
> > >
> > > For example:
> > > sha256sum sample.ko
> > > mokutil --mokx --import-hash $HASH_RESULT
> > >
> > > Whether the signature on ko file is stripped or not, the hash can
> > > be
> > > compared by kernel.
> >
> > What's the use case for this? ÂWe're already in trouble from the
> > ODMs for the size of dbx and its consumption of the extremely
> > limited variable space, so do we really have a use case for adding
> > module blacklist hashes to the UEFI variables given the space
> > constraints (as in one we can't do any other way)?
> >
>
> The dbx is a authenticated variable that it can only be updated by
> manufacturer. The mokx gives a flexible way for distro to revoke a
> key or a signed module. Then we don't need to touch shim or bother
> manufacturer to deliver new db. Currently it doesn't have real use
> case yet.Â
>
> I knew that the NVRAM has limited space. But distro needs a backup
> solution for emergency.

I wasn't asking why the variable, I was asking why the mechanism.

OK, let me try to ask the question in a different way:

Why would the distribution need to blacklist a module in this way? ÂFor
the distro to execute the script to add this blacklist, means the
system is getting automated or manual updates ... can't those updates
just remove the module?

The point is that module sha sums are pretty ephemeral in our model
(they change with every kernel), so it seems to be a mismatch to place
them in a permanent blacklist, particularly when we have very limited
space for that list.

James