Shuttleworth: Why Windows 8 made us ditch GPL Linux loader

Ubuntu daddy Mark Shuttleworth has defended Canonical’s decision to play ball with Microsoft's Windows 8 security policy that could stop “unauthorised” Linux builds from booting on new PCs and tablets.

Manufacturers must enable a feature called Secure Boot in their products' UEFI firmware in order to be officially labelled Windows 8 compatible. This mechanism will only start operating systems that have been signed with a digital key recognised by the motherboard's firmware.

Modifying the computer's start up process, such as installing a completely new operating system or updating the existing kernel core, will invalidate this signature and cause the firmware to reject the software until it is signed again by a trusted secret key.

The idea is to block viruses from tampering with the boot process and injecting themselves into a system before they can be detected. However difficulties arise when convincing the firmware that your custom Linux build, BSD kernel or whatever else you want to run on your own hardware is legit.

Canonical chose to generate its own private key for signing the code that loads Ubuntu - its flavour of open-source Linux - and provide instructions to manually program a new machine's firmware to recognise the key (or the user's own private signing key if desired).

But rather than use the popular GRUB2 boot loader, which is distributed under the strict GPL v3 licence and is a project of the Free Software Foundation (FSF), the Canonical team opted to use Intel’s more liberally licensed efilinux loader to boot the Ubuntu operating system.

According to Shuttleworth, this decision was taken because there is too much uncertainty surrounding the terms of the FSF's GPL v3 and its implications for Ubuntu's secret signing key.

Canonical believes it could be forced to publish its private key if it is used to sign a build of GRUB2. Once in the public domain, its key could be used by anyone to sign and install malicious boot-time software on machines that trusted it. The disclosure could eventually lead to the revocation of Ubuntu's private key.

Cleaning up someone else's 'screw up'

While taking Reg readers' questions during a one-hour live web chat this week, Shuttleworth said the Software Freedom Law Center (SFLC) had advised Canonical that the Ubuntu key would have to be disclosed if “some manufacturer screwed up” by, say, distributing a copy of GRUB2 signed by Ubuntu's key.

Clauses in the GPL v3 licence demand that the key is published in this scenario, he said. The FSF disagrees and was critical of Ubuntu’s policy on Secure Boot and its decision to drop GRUB2.

Q&A participant Tom Dial asked: "Based on the statement by FSF that the GPL v3 licence on GRUB 2 would not require disclosure of the Ubuntu private keys for Secure Boot, will Canonical reconsider its approach to that?"

Shuttleworth replied:

The SFLC advice to us was that the FSF could require key disclosure if some OEM screwed up. As nice as it is that someone at the FSF says they would not, we have to plan for a world where leaders change and institutional priorities change. The FSF wrote a licence that would give them the rights to take specific actions, and it's hard for them to argue they never would!

The SFLC was created in 2005 by the FSF's then director and legal counsel Eben Moglen and it helped draft the foundation's GPL v3 licence. The FSF called the fear of key disclosure “unfounded and based on a misunderstanding of GPL v3”. However, it seems, Canonical has not been reassured by the SFLC, the FSF nor the wording of the GPL v3.

The SFLC sees UEFI boot on ARM as a way for Microsoft and PC makers to act anticompetitively and exclude “alternative” operating systems. The UEFI boot issue was first uncovered by Red Hat’s Matthew Garrett last year. The FSF sees the mechanism as a threat to users' freedoms and takes the position that user-generated keys and a GPL v3 boot loader is the best combination.

Microsoft stated support for UEFI Secure Boot as a requirement OEMs must meet in order to gain Windows 8 certification. The rules are relaxed for Intel x86-powered systems and user-generated signing keys are allowed on this platform. On ARM systems, however, customised keys are forbidden and only a limited set of keys are recognised. It’s part of an emerging Redmond policy to lock-down Windows 8 ARM tablets to head off crashes, bugs and hacks.

The upshot is Linux will require a secure signing key to prove it’s safe on machines that might also run Windows 8. Not a problem on x86, but an issue for distros that might want to get onto Microsoft Surface-like slabs that use ARM processors.

The Fedora Project, meanwhile, has also got on board with Microsoft. It’s sticking with GRUB2 but its boot-loader key will be signed by Microsoft under a service from Verisign.

You can replay the Shuttleworth Live Chat, which drew an audience of more than 450 readers, here. He also tackled questions regarding the Ubuntu design “reboot”, GNOME disruption and his flight into space with the Russian space programme. ®