Re: [RFD] linux-firmware key arrangement for firmware signing

Greg Kroah-Hartman
2015-05-21T15:45:11Z

On Thu, May 21, 2015 at 09:05:21AM -0400, Mimi Zohar wrote:
> On Wed, 2015-05-20 at 23:14 -0700, Greg Kroah-Hartman wrote:
> > On Thu, May 21, 2015 at 08:41:02AM +0300, Petko Manolov wrote:
> > > > I too don't understand this need to sign something that you don't really know
> > > > what it is from some other company, just to send it to a separate device that
> > > > is going to do whatever it wants with it if it is signed or not.
> > >
> > > This is not the point. What you need to know is _where_ the firmware came from,
> > > not _what_ it does once it reach your system. If you don't care about such
> > > things, just ignore the signature. :)
> >
> > Ok, but how do we know "where"? Who is going to start signing and
> > attesting to the validity of all of the firmware images in the
> > linux-firmware tree suddenly? Why is it the kernel's job to attest this
> > "where"? Shouldn't your distro/manufacturer be doing that as part of
> > their "put this file on this disk" responsibilities (i.e. the package
> > manager?)
>
> Signatures don't provide any guarantees as to code quality or
> correctness. They do provide file integrity and provenance. In
> addition to the license and a Signed-off-by line, having the firmware
> provider include a signature of the firmware would be nice.

That would be "nice", but that's not going to be happening here, from
what I can tell. The firmware provider should be putting the signature
inside the firmware image itself, and verifying it on the device, in
order to properly "know" that it should be running that firmware. The
kernel shouldn't be involved here at all, as Alan pointed out.

> > What is verifying a firmware image signature in the kernel attesting
> > that isn't already known in userspace?
>
> Appraising and enforcing firmware integrity before use.

That should be done on the device itself, not in the kernel.

thanks,

greg k-h