lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1534439711.3166.13.camel@HansenPartnership.com>
Date:   Thu, 16 Aug 2018 10:15:11 -0700
From:   James Bottomley <James.Bottomley@...senPartnership.com>
To:     David Laight <David.Laight@...LAB.COM>,
        David Howells <dhowells@...hat.com>
Cc:     Linus Torvalds <torvalds@...ux-foundation.org>,
        Vivek Goyal <vgoyal@...hat.com>,
        "yannik@...britzki.me" <yannik@...britzki.me>,
        Thomas Gleixner <tglx@...utronix.de>,
        Ingo Molnar <mingo@...hat.com>, Peter Anvin <hpa@...or.com>,
        the arch/x86 maintainers <x86@...nel.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Dave Young <dyoung@...hat.com>, Baoquan He <bhe@...hat.com>,
        Justin Forbes <jforbes@...hat.com>,
        Peter Jones <pjones@...hat.com>,
        Matthew Garrett <mjg59@...gle.com>
Subject: Re: [PATCH] Fix kexec forbidding kernels signed with custom
 platform keys to boot

On Thu, 2018-08-16 at 16:56 +0000, David Laight wrote:
> From: James Bottomley
> > Sent: 16 August 2018 16:57
> > On Thu, 2018-08-16 at 16:49 +0100, David Howells wrote:
> > > James Bottomley <James.Bottomley@...senPartnership.com> wrote:
> > > 
> > > > > The problem with that is that it means you can't load third
> > > > > party modules - such as the NVidia driver.  That's fine if
> > > > > you absolutely reject the right of people to produce third
> > > > > party drivers for the Linux kernel and absolutely require
> > > > > that they open and upstream their code if they want in.
> > > > 
> > > > So if you build your own kernel and want to load the nVidia
> > > > module, you have the key to sign it.
> > > 
> > > I think you have to assume that doing this is beyond most people.
> > 
> > As a step by step process, I agree.  However, I think we can
> > automate it to the point where you install a package and it says
> > "insert your yubikey" every time you upgrade the kernel
> 
> What about 3rd parties that want to release drivers that can be
> loadedinto 'distribution' kernels?

You'd follow the distributions external kernel module process, I think.

> We can do that for windows (provided we've paid the 'driver signing
> tax') because windows has a stable kernel DDI/DKI.
> For Linux we have to release most of the driver as a binary 'blob'
> and compile wrapper code on the target system with the correct kernel
> headers.

Right, that's the usual distribution kernel module approach.  I'm most
familiar with the SUSE DKMS packaging project, which has a lot of
automation around this.  I believe it's actually pretty easy to use
from talking to people about it.  Of course, SUSE doesn't currently use
signed kernel modules, which makes the key issue a non problem for them
...

> There is no way we could generate signed copies for every
> 'distribution' kernel - even if there was a way to get them signed.
> Even if we agreed to make our source code available it wouldn't be
> accepted for inclusion in the kernel source tree.

Well, I think for signed kernel modules the DKMS process could be
adapted to generate a private key and then install the public component
in the kernel, resign with the private key, put the private key in the
MoK database and that means the DKMS process now has a key with which
it could sign any kernel module at the request of the user.  Of course
the main problem will be guarding the private key.

However, in the above process signing is under the control of the end
user.  I'm guessing you want signing to be under the control of an
external third party or the distro, like the Microsoft case?  In that
case you have to either persuade the distros to run a signing service
or persuade them to trust a third party to run it.

James

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ