All Windows 8 licensed hardware will be shipping with secure boot enabled by default in their replacement for the BIOS, Unfied Extensible Firmware Interface (UEFI). So far, so good, who doesn't want more security? The fly in the soup is that by default only Windows 8 will run on these systems, so no Linux, no BSD, heck, no Windows XP for that matter. Fedora Linux, Red Hat's community distribution, has found a way: sign up with Microsoft, via Verisign to make their own Windows 8 system compatible UEFI secure boot key. A lot of Linux people hate this compromise. Linus Torvalds, the father of Linux, has another take: "I'm certainly not a huge UEFI fan, but at the same time I see why you might want to have signed bootup etc. And if it's only $99 to get a key for Fedora, I don't see what the huge deal is."
Matthew Garrett, a Red Hat developer, explained why Fedora has ended up with its Microsoft-based UEFI solution. "We explored the possibility of producing a Fedora key and encouraging hardware vendors to incorporate it, but turned it down for a couple of reasons. First, while we had a surprisingly positive response from the vendors, there was no realistic chance that we could get all of them to carry it. That would mean going back to the bad old days of scouring compatibility lists before buying hardware, and that's fundamentally user-hostile. Secondly, it would put Fedora in a privileged position. As one of the larger distributions, we have more opportunity to talk to hardware manufacturers than most distributions do. Systems with a Fedora key would boot Fedora fine, but would they boot Mandriva? Arch? Mint? Mepis? Adopting a distribution-specific key and encouraging hardware companies to adopt it would have been hostile to other distributions. We want to compete on merit, not because we have better links to OEMs."
Fedora explored other options. "An alternative was producing some sort of overall Linux key. It turns out that this is also difficult, since it would mean finding an entity who was willing to take responsibility for managing signing or key distribution. That means having the ability to keep the root key absolutely secure and perform adequate validation of people asking for signing. That's expensive. Like millions of dollars expensive. It would also take a lot of time to set up, and that's not really time we had. And, finally, nobody was jumping at the opportunity to volunteer. So no generic Linux key."
In addition, the Linux Foundation had proposed a system by "Linux and other open operating systems will be able to take advantage of secure boot if it is implemented properly in the hardware. This consists of:
All platforms that enable UEFI secure boot should ship in setup mode where the owner has control over which platform key (PK) is installed. It should also be possible for the owner to return a system to setup mode in the future if needed.
- The initial bootstrap of an operating system should detect a platform in the setup mode,
- Install its own key-exchange key (KEK), and install a platform key to enable secure boot.
- A firmware-based mechanism should be established to allow a platform owner to add new key-exchange keys to a system running in secure mode so that dual-boot systems can be set up.
- A firmware-based mechanism for easy booting of removable media.
- At some future time, an operating-system- and vendor-neutral certificate authority should be established to issue KEKs for third-party hardware and software vendors.
This all makes sense, but none of it has happened. So Fedora felt, since the next release of the distribution will be coming out at about the same time as Windows 8, that they had to do something.
What Fedora ended up doing was using Microsoft's secure boot key signing services through their sysdev portal for one-off $99 fee. Why? Because, "it's cheaper than any realistic alternative would have been. It ensures compatibility with as wide a range of hardware as possible and it avoids Fedora having any special privileges over other Linux distributions. If there are better options then we haven't found them. So, in all probability, this is the approach we'll take. Our first stage bootloader will be signed with a Microsoft key."
This has flown as well in some Linux circles as a lead balloon. "How could you make a deal with the Devil!" "You've sold out!" And, for hard core developers, "I can't build my own Linux from your source code now without jumping through hoops!"
Setting the anger aside, there's something to all of this, but as Torvalds told me, "Yes, yes, the sky is falling, and I should be running around like a headless chicken in despair over signing keys. But as long as you can disable the key checking in order for kernel developers to be able to do their job, signed binaries really can be a (small) part of good security. I could see myself installing a key of my own in a machine that supports it."
That said, Torvalds doesn't think Microsoft's spin on Windows 8 UEFI secure boot is really going to do for security. "The real problem, I feel, is that clever hackers will bypass the whole key issue either by getting a key of their own (how many of those private keys have stayed really private again? Oh, that's right, pretty much none of them) or they'll just take advantage of security bugs in signed software to bypass it without a key at all."
Torvalds concluded, "Signing is a tool in the tool-box, but it's not solving all the security problems, and while I think some people are a bit too concerned about it, it's true that it can be mis-used."
And, in the meantime, all the Linux desktop vendors are going to have to address the UEFI issue. By year's end, many, if not most, mass-market PCs are going to be sold with Windows 8 and that in turn will mean there's no easy way to boot them into Linux.