On LKML (Linux Kernel Mailing List), RedHat developer David Howells provoked Linus with a proposal to get the Linux kernel to support EFI signed binaries: “We could require that the user reboot into the BIOS, add the key, and then switch back, but under some circumstances we want to be able to do this whilst the kernel is running.
The way we have come up with to get around this is to embed an X.509 certificate containing the key in a section called ".keylist" in an EFI PE binary and then get the binary signed by Microsoft. The key can then be passed to the kernel by passing the signed binary”
see LKML: David Howells: [GIT PULL] Load keys from signed PE binaries.
Linus, of course, objected to making Linux depend on M$…
“Not without a lot more discussion first.
Quite frankly, this is f*cking moronic. The whole thing seems to be designed around stupid interfaces, for completely moronic reasons. Why should we do this?
I already dislike our existing X.509 parser. And this makes the idiotic complicated interfaces, and now it goes up to 11.
For greater emphasis, he continued the exchange with,
“If Red Hat wants to deep-throat Microsoft, that’s *your* issue. That has nothing what-so-ever to do with the kernel I maintain. It’s trivial for you guys to have a signing machine that parses the PE binary, verifies the signatures, and signs the resulting keys with your own key. You already wrote the code, for chissake, it’s in that f*cking pull request.
Why should *I* care? Why should the kernel care about some idiotic “we only sign PE binaries” stupidity? We support X.509, which is the standard for signing.
Do this in user land on a trusted machine. There is zero excuse for doing it in the kernel.”
His last word?
“On Thu, Feb 21, 2013 at 9:49 AM, Matthew Garrett wrote:
Vendors want to ship keys that have been signed by a trusted party. Right now the only one that fits the bill is Microsoft, because apparently the only thing vendors love more than shitty firmware is following Microsoft specs.
Quite frankly, I doubt that anybody will ever care, plus getting me to care about some vendor that ships external binary-only modules is going to be hard as hell.
Plus quite frankly, signing random kernel vendor modules (indirectly) with a MS key is f*cking stupid to begin with.
In other words, I really don’t see why we should bend over backwards, when there really is no reason to. It’s adding stupid code to the kernel only to encourage stupidities in other people.
Seriously, if somebody wants to make a binary module for Fedora 18 or whatever, they should go to Red Hat and ask whether RH is willing to sign their key. And the whole “no, we only think it makes sense to trust MS keys” argument is so f*cking stupid that if somebody really brings that up, I can only throw my hands up and say “whatever”.
In other words, none of this makes me think that we should do stupid things just to perpetuate the stupidity. And I don’t believe in the argument to begin with.
Besides, let’s face it, Red Hat is going to sign the official nVidia and AMD binary modules anyway. Don’t even bother to pretend anything else.
Peter Jones replied with
“I just want to make sure this doesn’t go unresponded to – Red Hat will not sign kernel modules built by an outside source. We’re simply not going to sign these kernel modules. That’s one of the big reasons we want a setup where they can sign their own modules in the first place.”
It’s great that Linus does not support the idea of making M$ the keeper of the keys. We’ve had enough of that in IT for decades. Free Software needs to remain free of M$ and anyone else who wishes to lock out competition. Linus is not a great lover of FLOSS. His views are based on practicality. It’s stupid to lock Linux into M$. Does RedHat really believe it’s a great thing if millions of GNU/Linux boxes quit booting if M$ revokes a key via firmware upgrade etc.? Do they really think “secure boot” is about security of the world’s IT rather than perpetuation of M$’s monopoly on legacy x86 stuff? Using the damned keys to induce the world to take another step on the Wintel treadmill is just too tempting a fruit to trust M$ to leave it alone.