An update on UEFI secure boot
The "secure boot" feature that will soon be appearing in PC
firmware—partly due to a mandate from Microsoft—has garnered a
number of different reactions.
On one hand, you have the Free Software Foundation (FSF) calling
for signatures to "stand up for your freedom to install free
software
". On the other hand, you have pundits accusing
"Linux fanatics
" of wanting to make Windows 8 less secure. The
truth of the unified extensible
firmware interface (UEFI) secure boot situation lies somewhere in
between those two extremes, as might be guessed.
The problem started to come into focus earlier this year. The UEFI specification provides for an optional "secure boot" feature that makes use of a "platform key" (PK) and "key exchange keys" (KEKs) stored in a database in firmware. The corresponding private keys would be used to sign bootloaders, drivers, and operating systems loaded from disk, removable media, or over the network. The database could also contain blacklisted keys, in the event previously valid keys are revoked because they've fallen into malicious hands.
The idea is that only signed drivers and operating systems could be loaded. This could prove a useful feature, given that it could prevent malware from infecting the signed components — but it has also been seen as a threat against open source operating systems (like Linux) and could thwart attempts to jailbreak those systems.
When LWN covered the feature in June, there was concern that "a fair amount of pressure
" would be applied by proprietary OS makers to enable this feature. That concern was realized when Microsoft announced that it intended to require secure boot to award the Windows 8 logo to OEMs. Since most OEMs are going to want to qualify for this, and the marketing funds that likely accompany the program, Microsoft requiring secure boot makes it more or less mandatory.
Problems
The first and most obvious problem with secure boot is that it has the potential to only allow Microsoft operating systems to boot. As Matthew Garrett wrote in September, "A system that ships with Microsoft's signing keys and no others will be unable to perform secure boot of any operating system other than Microsoft's. No other vendor has the same position of power over the hardware vendors.
"
But it's more complex than simply preventing non-Microsoft operating systems from booting on hardware with UEFI secure boot enabled. In all likelihood, users will be able to boot OSes of choice for the foreseeable future. But will they actually control their own hardware?
On October 19th, Garrett provided a follow-up to his earlier posts on secure boot, and said that the problem is whether the end user will have the ability to manage their own keys:
As Garrett explains, the workaround is to turn off secure boot, but that's not very palatable:
He suggested that, rather than requiring secure boot to be disabled, it would be better to work on how the feature could be properly supported for Linux installations.
Solutions
The solution? Garrett says that a proposal has been put forward to the UEFI Forum that would allow users to install their own keys from removable media. According to Garrett, this avoids problems that would have associated with booting untrusted binaries. Because it requires removable media, malware won't be able to trigger the key installation. Instead, the system with secure boot would simply refuse to boot and fall back to system recovery procedures.
It is certainly possible that malware could infect USB keys or other removable media, but part of allowing users control is accepting some risk.
Meanwhile at the UEFI Forum
Mark Doran, president of the UEFI Forum, says that he's "trying to work with some folks in the Linux community, the Linux Foundation board for example, to see how Linux and other operating systems can participate in using this facility.
" He says that there are "a couple of ways that we could do that
", but didn't offer specifics. Doran also said that, despite Microsoft being out front pushing for adoption, it was "
absolutely intended for it to be implemented and implementable with any operating system.
"
Doran was also emphatic that he thought it unlikely that
"many
" systems would ship without the ability to turn off
secure boot.
The reason is pretty simple, says Doran. Too many vendors have to support legacy Windows. At least for the foreseeable future, none of the OEMs are likely to ship systems that can't boot older versions of Windows.
This echoes what Ed Bott reported when slinging mud at "Linux
fanatics
". Bott asked "a spokesperson for AMI
" and the
response was "AMI will advise OEMs to provide a default configuration
that allows users to enable / disable secure boot, but it remains the
choice of the OEM to do (or not do) so.
"
So everyone reports that it's "unlikely" that systems will ship that
don't have a disable feature — but that's not quite the same as
guaranteeing that users will be able to control their systems. Being able
to disable secure boot is better than nothing, but that feature, alone,
does not enable Linux to make use of the secure boot capability.
History Repeating Itself?
The UEFI secure boot situation is not unlike the once-feared trusted platform module (TPM) or "trusted computing" features. When first introduced, the concept for TPM was that it could provide additional system security by verifying that only authorized code could run on a system. At first glance, this seemed like a good idea — except that it could be misused to secure a system against its owner.
Microsoft and a number of other companies argued strongly in favor of TPM, while digital rights advocates argued against it. The EFF's Seth Schoen wrote in 2003:
As Schoen noted then, the EFF and others lobbied for user override, but it was initially resisted by the Trusted Computing Group (TCG). This time around, Microsoft and the UEFI Forum are saying that it's in the hands of the vendors to decide whether to implement a bypass to UEFI secure boot, and trying to downplay concerns about the implementations and the effects on users of other platforms.
Ultimately, trusted computing did not turn out to be the nightmare that many feared. We can probably thank the EFF and other organizations that lobbied against TPM that we aren't seeing widespread misuse of TPM against users.
Don't panic... yet
The worst-case scenario — a flood of "restricted boot" systems hitting the market that are incapable of booting Linux or anything other than signed Windows 8 — does seem unlikely. But we're a long way from Garrett's proposal as well. Users interested in complete control of their systems will need to keep an eye on this process, and make sure that OEMs are aware that having the ability to disable secure boot is not enough. In order to truly control your system, you must have a way to install your own trusted keys as well.
Index entries for this article | |
---|---|
Security | Integrity management |
Security | Secure boot |
Security | Signing code |
GuestArticles | Brockmeier, Joe |
Posted Oct 27, 2011 8:17 UTC (Thu)
by petur (guest, #73362)
[Link] (4 responses)
Posted Oct 27, 2011 8:39 UTC (Thu)
by Fowl (subscriber, #65667)
[Link] (2 responses)
Posted Oct 27, 2011 9:47 UTC (Thu)
by dgm (subscriber, #49227)
[Link] (1 responses)
... for now. Looks like a wooden horse to me. What will happen when most systems do boot with UEFI secure boot? Probably Windows will start to refuse to run certain applications and open certain files if booted insecure, meaning users will not do that. From there to removing the disable feature is just a little step. Don't you have the feeling of being spoon-fed?
Posted Oct 27, 2011 11:44 UTC (Thu)
by Fowl (subscriber, #65667)
[Link]
Posted Oct 27, 2011 8:41 UTC (Thu)
by mjg59 (subscriber, #23239)
[Link]
Posted Oct 27, 2011 10:58 UTC (Thu)
by salimma (subscriber, #34460)
[Link]
Posted Oct 27, 2011 13:50 UTC (Thu)
by simlo (guest, #10866)
[Link] (9 responses)
The issue is not if you will end up buying machines where you can't boot Linux because secure boot can't be switched off. That will not happen, among other things, due to anti-trust issues.
No the problem is that secure boot is the first in the chain against "trusted computing." I.e. to play your media files you have to have booted a trusted OS which only allow trusted software to open your files. Later on your bank will require you to use a trusted OS to do net-banking. Then all kinds of services will require it. Then the ISPs will require it for you to access the internet at all. Then states will require it to make sure you can't access child porn, bomb manuals etc. We all know where that road leads to...
Posted Oct 27, 2011 14:20 UTC (Thu)
by jzb (editor, #7867)
[Link] (1 responses)
Posted Oct 27, 2011 15:28 UTC (Thu)
by raven667 (subscriber, #5198)
[Link]
Posted Oct 27, 2011 14:23 UTC (Thu)
by mjg59 (subscriber, #23239)
[Link] (5 responses)
Posted Oct 27, 2011 15:05 UTC (Thu)
by simlo (guest, #10866)
[Link] (4 responses)
We have a boot chain:
firmware -> bootloader -> OS -> applications -> server
Each have some build in certificates to verify from left to right: The firmware have a certificate for the bootloader, the bootloader have certificate(s) for the kernel etc. In secure boot, if the signature doesn't match, stop the boot process.
To have "trusted computing" you also need to be able to verify from right to left: The server shall be able to be able to see that the application is correctly signed.
So to interpret the difference between secure boot and trusted computing:
If that is the case, where is the security? It should be "simple" to either manipulate the firmware to switch off secure boot on specific systems, or trick the user into doing so, while flipping the bits in the bootloader, OS etc. It is harder to install malware on such a system, but far from impossible if you know which bits to flip - and hackers do. The only real things which makes it harder is to figure out how to disable secure boot on many different versions of the firmware. I bet you can manipulate the setting from software, if you know how.
Posted Oct 27, 2011 15:15 UTC (Thu)
by mjg59 (subscriber, #23239)
[Link]
Posted Oct 27, 2011 23:50 UTC (Thu)
by giraffedata (guest, #1954)
[Link]
Not quite. The bootloader can't tell the OS that it was correctly signed and the OS can't ask. Implementing that function would be ridiculous, since the bootloader could lie. It would be like a prostitute asking a potential client if he is a cop.
That's the difference between secure boot and trusted computing. With trusted computing, the program can determine it is running on a platform the program trusts; with secure boot, the user can ensure everything running on his computer is something he trusts.
Posted Nov 20, 2011 20:51 UTC (Sun)
by oak (guest, #2786)
[Link] (1 responses)
Posted Nov 20, 2011 21:11 UTC (Sun)
by mjg59 (subscriber, #23239)
[Link]
Posted Oct 27, 2011 15:36 UTC (Thu)
by raven667 (subscriber, #5198)
[Link]
I think that is a real concern, not because of any malice on MS or the hardware vendors part but just due to apathy about non-MS desktop systems. It would be easy to load the MS keys into the hardware, flip on the secure-boot feature and not bother to make a UI for loading your own keys or turning the feature off, locking the hardware to only run Win8 (and possibly some OEM version of Win7 that's signed). That's not saying there wouldn't be vendors who do allow key modification or even cater to the Linux market but there was a real danger of the PC market getting locked up in the name of security and turning people into criminals who have to jail-break their machines.
Posted Oct 27, 2011 16:30 UTC (Thu)
by Aliasundercover (subscriber, #69009)
[Link]
Never is a strong word, I say instead one should be slow to attribute to malice ...
Microsoft has long ago climbed this hill. They never just want to be paid for their products, everything is strategic, everything has an exclusionary angle. This is one of their more dangerous ploys.
Posted Oct 27, 2011 18:43 UTC (Thu)
by jmorris42 (guest, #2203)
[Link]
But finding a phone with an open boot loader is a challenge today. Finding one that boots in a well described way amendable to replacing the OS is all but impossible. Same for tablets.
This tablets are where the smart people have decided all development is headed, see GNOME3 and Microsoft's Metro UI in Win8. Once they get people to accept tablets as sealed devices that get replaced instead of upgraded the desktop will accept the new reality. Or at least I'd bet that is the plan.
Up to now they have only been toying with us, because they aren't really trying too hard and because they are still learning themselves. So most popular devices get jailbroken eventually, even the mighty PlayStation 3 fell to the hackers. But give it a few more generations and let more and more functions get integrated into a single die and they will perfect locks that won't get broken before the product is obsolete. And they all dream of that day, if for different reasons some of which are are sometimes at cross purposes.
Microsoft dreams of zero piracy and zero competition. Hollywood dreams of charging for every view of their precious content. Government wants the 100% reliable snooping with no opt out and the ability to mandate... mostly because mandating is what the government DOES. The bankers dream of microtransactions for everything... all perfectly secure to ensure they get their taste. With a secure computing environment everyone wins... except the nominal owner of the machine. Of course even that idea is old, now you just get to use it because selling things instead of making you a continuing revenue stream is just so 20th Century.
Posted Nov 3, 2011 4:23 UTC (Thu)
by slashdot (guest, #22014)
[Link] (4 responses)
Because the thing is that an unprivileged process running in Windows already cannot replace the Windows OS image with something else due to OS permissions (just like a non-root Linux user cannot just replace the kernel if the administrator did a sensible job).
And if a trojan can bypass OS permission check, then it can set itself to automatically run on boot and re-escalate every time.
Even if support for any form of autorun is dropped, it would still be possible to just infect a non-Microsoft-signed executable which the user runs very often (for instance Firefox or a game).
The only benefit I see is that installing a patch for an OS bug will be more likely to disable malware exploiting it, and while it is possible for malware to block the OS update (and make it look it was applied), this requires substantial additional work on the part of the malware author.
BTW, this assumes that Windows 8 will refuse to load any unsigned drivers, system executables, DLLs, as well as any configuration/script file capable of loading binary code, as otherwise it's totally pointless, since you just infect those instead of the UEFI image.
Posted Nov 3, 2011 6:41 UTC (Thu)
by njs (guest, #40338)
[Link] (3 responses)
If you don't have a securely signed virus-checker that you run directly from your boot-loader, then all this secure boot stuff is useless, AFAICT.
Posted Nov 6, 2011 22:40 UTC (Sun)
by foom (subscriber, #14868)
[Link] (2 responses)
Posted Nov 6, 2011 22:48 UTC (Sun)
by njs (guest, #40338)
[Link]
Posted Nov 7, 2011 0:23 UTC (Mon)
by mjg59 (subscriber, #23239)
[Link]
An update on UEFI secure boot
Secure Boot must is only mandatory to "get the logo" ie. pass Microsoft's tests. As Windows 8 will be expected to run on hardware that currently runs Windows 7, it will run without secure boot.
I can't see how it couldn't, even intentionally; it's not like bootloaders haven't lied in the past.
An update on UEFI secure boot
An update on UEFI secure boot
I don't see how. Running Windows is preferable to Windows not running.
I'm just concerned about the ux apocalypse OEMs are going to unleash.
An update on UEFI secure boot
An update on UEFI secure boot
An update on UEFI secure boot
An update on UEFI secure boot
An update on UEFI secure boot
An update on UEFI secure boot
An update on UEFI secure boot
An update on UEFI secure boot
The firmware can tell the bootloader that it was correctly signed. The bootloaded can tell the OS etc. But the bootloaded can lie to you in "secure boot": Secure boot might actually have been turned off in the firmware, but the bootloader have also been changed to lie to the OS that it was correctly signed.
Or the user can tell the server that the stack is correctly signed, because there is no way the server can verify it.
An update on UEFI secure boot
An update on UEFI secure boot
The bootloader can tell the OS [that it was correctly signed] etc.
But the bootloader can lie to you in "secure boot":
An update on UEFI secure boot
An update on UEFI secure boot
An update on UEFI secure boot
The issue is not if you will end up buying machines where you can't boot Linux because secure boot can't be switched off. That will not happen, among other things, due to anti-trust issues.
An update on UEFI secure boot
Tablets
An update on UEFI secure boot
I have a feeling however that they will fail to actually enforce this properly.
An update on UEFI secure boot
An update on UEFI secure boot
An update on UEFI secure boot
An update on UEFI secure boot