[personal profile] mjg59
Since there are probably going to be some questions about this in the near future:

The UEFI secure boot protocol is part of recent UEFI specification releases. It permits one or more signing keys to be installed into a system firmware. Once enabled, secure boot prevents executables or drivers from being loaded unless they're signed by one of these keys. Another set of keys (Pkek) permits communication between an OS and the firmware. An OS with a Pkek matching that installed in the firmware may add additional keys to the whitelist. Alternatively, it may add keys to a blacklist. Binaries signed with a blacklisted key will not load.

There is no centralised signing authority for these UEFI keys. If a vendor key is installed on a machine, the only way to get code signed with that key is to get the vendor to perform the signing. A machine may have several keys installed, but if you are unable to get any of them to sign your binary then it won't be installable.

This impacts both software and hardware vendors. An OS vendor cannot boot their software on a system unless it's signed with a key that's included in the system firmware. A hardware vendor cannot run their hardware inside the EFI environment unless their drivers are signed with a key that's included in the system firmware. If you install a new graphics card that either has unsigned drivers, or drivers that are signed with a key that's not in your system firmware, you'll get no graphics support in the firmware.

Microsoft requires that machines conforming to the Windows 8 logo program and running a client version of Windows 8 ship with secure boot enabled. The two alternatives here are for Windows to be signed with a Microsoft key and for the public part of that key to be included with all systems, or alternatively for each OEM to include their own key and sign the pre-installed versions of Windows. The second approach would make it impossible to run boxed copies of Windows on Windows logo hardware, and also impossible to install new versions of Windows unless your OEM provided a new signed copy. The former seems more likely.

A system that ships with only OEM and Microsoft keys will not boot a generic copy of Linux.

Now, obviously, we could provide signed versions of Linux. This poses several problems. Firstly, we'd need a non-GPL bootloader. Grub 2 is released under the GPLv3, which explicitly requires that we provide the signing keys. Grub is under GPLv2 which lacks the explicit requirement for keys, but it could be argued that the requirement for the scripts used to control compilation includes that. It's a grey area, and exploiting it would be a pretty good show of bad faith. Secondly, in the near future the design of the kernel will mean that the kernel itself is part of the bootloader. This means that kernels will also have to be signed. Making it impossible for users or developers to build their own kernels is not practical. Finally, if we self-sign, it's still necessary to get our keys included by ever OEM.

There's no indication that Microsoft will prevent vendors from providing firmware support for disabling this feature and running unsigned code. However, experience indicates that many firmware vendors and OEMs are interested in providing only the minimum of firmware functionality required for their market. It's almost certainly the case that some systems will ship with the option of disabling this. Equally, it's almost certainly the case that some systems won't.

It's probably not worth panicking yet. But it is worth being concerned.
Page 1 of 6 << [1] [2] [3] [4] [5] [6] >>

Just include the keys?

Date: 2011-09-20 07:51 pm (UTC)
From: (Anonymous)
Isn't the simplest, and most user friendly way, to just include the (Pkek) key, so the actual owner of the hardware can decide what to sign and trust themselves?

I wonder if that isn't just required by law in some countries if the user buys and owns the hardware.

Blacklisting the Linux keys

Date: 2011-09-20 07:55 pm (UTC)
From: [identity profile] benanov.livejournal.com
I'm more concerned about the blacklist than I am the whitelist.

Re: Just include the keys?

Date: 2011-09-20 08:09 pm (UTC)
From: (Anonymous)
OK, that would be perfect then. So in that case one could just add the microsoft/windows key if needed?

But what about an OEM wanting to pre-ship the microsoft/windows key? Don't they have to provide at least one other key for the user to add/retract keys from the UEFI?

Buy Linux Machines

Date: 2011-09-20 09:41 pm (UTC)
From: (Anonymous)
All the more reason to stop buying Windows machines to load Linux onto them. Buy Linux machines from Linux hardware vendors.

Hardware vendors

Date: 2011-09-20 09:58 pm (UTC)
From: (Anonymous)
I'm with you on the threat to Linux from UEFI firmware only accepting signed bootloaders, however this line is a bit of a leap for me:

"Microsoft requires that machines conforming to the Windows 8 logo program [...] ship with secure boot enabled"

So out of interest, how did you tie the Win 8 secure boot support/requirement to the logo program? Thanks.

not just Linux

Date: 2011-09-20 10:00 pm (UTC)
From: (Anonymous)
Why single out Linux? Secure boot will not let you load Windows 7 either.

There is an explicit provision for disabling secure boot in firmware, but it can't be automated, so as not to be exploited by malware.

GPLv3 and signing keys

Date: 2011-09-20 10:12 pm (UTC)
From: (Anonymous)
There is a lot of misunderstanding of the GPLv3 requirement for signing keys. The requirement that you provide "installation information" (which includes signing keys) applies to object code distributed for a "User Product" that is distributed AS PART OF a transaction in which the right of possession of the "User Product" changes hands.

A "User Product" is a tangible person property or goods designed for installation in a dwelling.

The gist of what GPLv3 is saying is that if you sell someone some hardware that includes GPLv3 firmware, you have to give them the keys to install new firmware of their choice.

Since Red Hat sells their software for use on other people's hardware, rather than selling their software bundled with hardware as part of the sale of that hardware, Red Hat can ship signed GPLv3 code without being obligated to provide the keys.

Re: not just Linux

Date: 2011-09-20 10:44 pm (UTC)
From: (Anonymous)
Oh yeah? How does this disable work, then?

Re: not just Linux

Date: 2011-09-20 10:59 pm (UTC)
From: (Anonymous)
That will be implementation-specific, but you should expect a Setup menu item.

Re: GPLv3 and signing keys

Date: 2011-09-20 11:08 pm (UTC)
From: (Anonymous)
Note that GPLv2 is also unclear. Nobody has ever tested what the scripts/install bits of the licence means in this area. The kernel is also "booby trapped" with some GPLv2 code which contains headers specifying clearly the interpretation they apply.

It raises some interesting questions, ones I am sure regulators will be looking hard at, such as whether this is a cartel between the h/w vendors and a certain large software company. But if some vendors are sane then a very public 'Wintendo' list of bad machines plus an active all OS campaign to send back misdescribed systems, phone tech support, demand fixes and file advertising complaints about boxes not clearly marked as being Wintendo systems ought to be enough to push the incredible narrow margins the OEMs work to past the point they are making a loss on each Wintendo sold that isn't clearly advertised as junk.

Re: Buy Linux Machines

Date: 2011-09-20 11:22 pm (UTC)
From: (Anonymous)
We should make a list of Linux hardware vendors.

No OEM will sign GRUB and/or Linux

Date: 2011-09-20 11:28 pm (UTC)
From: [identity profile] koterpillar.myopenid.com
No sensible one, at least. The original purpose of this is preventing boot mode rootkits... and at least GRUB lets malware writers to boot whatever they want, essentially bypassing the protection. I would assume booting Linux with a crafted userspace will let the malware do its tricks too.

Is it just me?

Date: 2011-09-21 12:01 am (UTC)
From: [identity profile] https://me.yahoo.com/a/89qTkqIEmdbNn8jxOaKhYrHQIRvOCDsZ7BbB#82a37
or it looks very like the system in place for dvd and bluray (which proved to be ineffective)?

I haven't checked the specs but if it is just an exchange of keys, it is just a matter of time before the keys are found (because people would have access to both firmware and OS), isn't it?

And what about new OS/driver versions? One machine = One OS, for life?

Re: GPLv3 and signing keys

Date: 2011-09-21 12:12 am (UTC)
From: (Anonymous)
IAAL (tax). I won't weigh in on the copyright issues, though, as that is not within my primary practice area.

From http://www.policylibrary.tax.virginia.gov/OTP/policy.nsf/df8f027f3fea473a8525697a00730e76/83fa6068bb91d6c885256f010063f827?OpenDocument
Black's Law Dictionary defines tangible personal property as "property such as a chair or watch which may be touched or felt in contrast to a contract." Black's Law Dictionary, Fifth Edition. West Publishing Company, St Paul Minnesota, 1979. [Emphasis added.]

Intangible property, on the other hand, consists of rights not related to physical things, but merely are relationships between persons, natural or corporate, which the law recognizes by attaching to them certain sanctions enforceable in the courts. Intangible property may be evidenced by a document with no intrinsic value, such as a stock certificate. According to this widely accepted definition, contracts fall under the definition of "intangible property."


The laws of the various states concerning the status of software licenses is not uniform. There is an interesting map, with state-specific reference links at http://www.softwareone.com/en-us/Licensing/Licensing/Pages/Electronic-Software-Distribution.aspx

The IRS says: "Off-the-shelf computer software placed in service during the tax year is qualifying property for purposes of the section 179 deduction. This is computer software that is readily available for purchase by the general public, is subject to a nonexclusive license, and has not been substantially modified. It includes any program designed to cause a computer to perform a desired function. However, a database or similar item is not considered computer software unless it is in the public domain and is incidental to the operation of otherwise qualifying software." (http://www.irs.gov/publications/p946/ch02.html#en_US_2010_publink1000107395).

Pennsylvania declares that "Software Licenses Are Tangible Personal Property" and "renewals of licenses to use ‘‘canned’’ software, whether transmitted electronically or on a physical medium, is taxable as the sale of tangible personal property; the computer program is stored on a computer’s hardware, takes up space on the hard drive, and is physically perceived by checking the computer’s files. Graham Packaging Co., LP, v. Commonwealth, 882 A.2d 1076, 1086—1087 (Pa. Cmwlth. 2005)." PA defines "Canned software—Computer software that does not qualify as custom software."
http://www.pacode.com/secure/data/061/chapter60/s60.19.html

California, however, has a different view concerning downloads:
"Canned software and license agreements are taxable if delivered via tangible media, such as diskette or cd-rom. Canned software is not taxable if delivered electronically or loaded by the vendor. Canned software is a pre-written program developed for general or repeated sale or lease."
http://accounting.ucdavis.edu/ta/salesanduse.cfm

GPLv3

Date: 2011-09-21 01:08 am (UTC)
From: [identity profile] dlitz.net

Firstly, we'd need a non-GPL bootloader. Grub 2 is released under the GPLv3, which explicitly requires that we provide the signing keys.

No, it says this:

“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source

It would suffice to provide instructions that say, "install a signed version of grub, and use that to add your own keys to the whitelist".

Re: not just Linux

Date: 2011-09-21 01:37 am (UTC)
From: (Anonymous)
Probably a jumper on the motherboard, as is common for password locked BIOS now.

Re: Buy Linux Machines

Date: 2011-09-21 02:09 am (UTC)
From: (Anonymous)
We have this in France:
- list of the good/bad hardware makers:
http://bons-constructeurs-ordinateurs.info/
- list of the good/bad hardware vendors:
http://bons-vendeurs-ordinateurs.info/

Note that "good" and "bad" are defined on a few criteria like:
- do they make the pre-installed software optional?
- do they provide various options for pre-installed software?
- is the cost of pre-installed software displayed when buying the machine?

Hope that helps.

Re: not just Linux

Date: 2011-09-21 03:36 am (UTC)
From: (Anonymous)
Even after knowing this, you're telling us to not panic. :-/
Page 1 of 6 << [1] [2] [3] [4] [5] [6] >>

Profile

Matthew Garrett

About Matthew

Power management, mobile and firmware developer on Linux. Security developer at Nebula. Ex-biologist. @mjg59 on Twitter. Content here should not be interpreted as the opinion of my employer.

Expand Cut Tags

No cut tags