Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×

Comment Re:what about bios config? (Score 1) 545

I'm saying my systems run a video card option ROM (which is the legacy equivalent to UEFI device drivers) that is stored in flash memory on the video card. It's not running a generic video card driver that is stored on the motherboard flash. To the best of my knowledge, all systems today run a video card specific option ROM at boot.

Comment Re:what about bios config? (Score 1) 545

OK, but that's more of an OS driver thing, isn't it? I'm still a little concerned that you might need to run a card-specific device driver to help the card itself boot up while the computer is booting up. If a generic video driver would work to give BIOS basic video functionality in preboot, why wouldn't we be using those now? In the legacy BIOS world you only have 640x480 resolution with 16 colors even with card-specific option ROMs.

Comment Re:Secure Boot is only for UEFI Executables (Score 1) 545

What do you mean in secure boot the "option of booting alternative bootloaders is impossible?" It's not. Secure boot just says that alternative bootloader needs to be signed. Now, you're right that there would be a security problem for Windows if an alternative bootloader tried to load Windows without checking its signature. But, there are other ways to deal with that potential problem other than simply forbidding alternative bootloaders. Things like GRUB can't boot Windows directly anyway- it just starts the Windows bootloader, whose signature would be checked by the UEFI BIOS as part of secure boot.

Comment Re:what about bios config? (Score 1) 545

Exactly. I don't know how this transition will go, because it really hasn't started yet. I think the only UEFI device drivers are drivers which are embedded in the BIOS (e.g., like a UEFI device driver for integrated video on a motherboard). So, we really don't know yet how aggressive video card vendors will be at moving to UEFI device drivers, and, just as importantly, signed UEFI device drivers. I'm guessing video cards will ship with signed UEFI device drivers well before Win8 starts shipping, but I know I've put in cards that are several years old in some of my systems, either as a temporary measure if a card goes bad or just to use spare parts in systems that don't need fast video.

Comment Re:knoppix and other testing / recovery secure boo (Score 1) 545

First, we just have a terminology difference. I use "BIOS" as a fairly generic term for the boot firmware on the motherboard that executes at power-on. UEFI isn't really the right term for that, because UEFI is just a standard set of interfaces that UEFI-compatible boot firmware can implement. If its important to distinguish between old and new, I'll usually write "legacy BIOS" or "UEFI BIOS".

Second, there definitely are drivers for BIOS. In the legacy BIOS world they're called Option ROMs. In the UEFI world, they're called device drivers. You need those if you want to use a device in the preboot environment. Not every device needs an option ROM. You're not going to need to use, say, a TV tuner in preboot. But, you do want to use SATA/IDE controllers do you can boot of a drive, or maybe you want to use a network card to boot off a network server using PXE. Video is certainly important in preboot too, since you might want to go into the configuration settings and change stuff around. The only question is if you can use some sort of generic UEFI device driver, or if you need a card-specific one.

Third, secure boot ENDS when Windows starts booting. Mainly, UEFI secure boot verifies signatures on UEFI device drivers and the bootloader. Once the bootloader runs, UEFI secure boot is essentially over. The UEFI BIOS is no longer in control of the system, and its up to the bootloader and the OS to check signatures at that point.

Comment Re:Secure Boot is only for UEFI Executables (Score 1) 545

Sure, but all that is tangential. UEFI secure boot itself doesn't say anything about how non-EFI executables are handled during boot. If a signed OS loader doesn't want to verify a signature on the OS kernel, it doesn't have to. It might want to, so it can't be used as part of malware, but that's not a part of UEFI secure boot.

Liability is a potential problem with UEFI secure boot, although a problem for whoever is signing UEFI executables (i.e., Microsoft). That's probably why no one else has offered to set up a signing service.

Comment Re:MUST is overrated (Score 1) 545

SMI handlers aren't really part of the BIOS. They're set up by the BIOS, but they're not really BIOS code. SMI handlers either have to be invoked by whatever software is controlling the system or by certain hardware-driven mechanisms that don't seem to apply here. There might be a some weird way to jerry-rig SMI handlers to do what you're describing, but its far from clear to me that that's possible.

Interestingly enough, in the UEFI world there is some BIOS code that lives on after the OS takes control. UEFI provides a set of run time services to the OS. Again, these have to be called from the OS. But, there really isn't anything comparable in the legacy BIOS world. As I said, SMI handlers aren't really BIOS code. ACPI code is slightly more comparable, but still not quite the same thing,

By the way, there is something interesting research into the nasty kinds of malware you can create if you can load malicious SMI handlers. One way an attacker could do that would be to flash a malicious BIOS which loads malicious SMI code. But, the Windows 8 requirements include some protections on the BIOS, including requiring signed BIOS updates.

Comment Re:Signed GRUB (Score 3, Interesting) 545

Honestly, I think you have it backwards. I think its less that UEFI secure boot is most advantageous to Microsoft and more that it happens to be inconvenient to Linux. The open source community, for both good and bad reasons, has made a series of decisions that make a signed code model difficult to implement (and stomach).

Forgetting about who runs the signing service for a moment, do you have a better idea of how to solve security problems with boot firmware? It's one thing if you don't like the implementation of UEFI secure boot, but you seem to be suggesting that the entire concept behind UEFI secure boot benefits Microsoft. If that's true, what is the alternative?

I don't think Microsoft particularly wanted to run the signing service. It has already given them headaches, and it opens the door for a lot of potential problems with liability. But who else was going to run it? The UEFI Forum never gave any indication they were willing to run it when the specification was being written. Given they were the natural choice, I think it's pretty clear that means they explicitly didn't want to run it. Who else was going to run it? Verisign? I'm sure that would have gone over much better... Even if things did go that route, who was going to pay for it? If Microsoft funded it, which they probably would have had to, people would have just assumed Verisign was going to do whatever Microsoft told them to.

Red Hat and Canonical have never given any indication they were willing to run a signing service either. And people in the industry did ask them to. I'm not sure they ever explicitly said no, but they certainly never said yes either.

Comment Re:what about bios config? (Score 1) 545

I don't think there are any discrete video cards with UEFI device drivers. Certainly there are none with signed UEFI device drivers, seeing as there isn't anyone signing those yet, and that's really what you need in a UEFI secure boot system. That will presumably quickly change as we approach the release of Windows 8, but there's still the problem of new systems running old video cards. That's exactly the situation I was imagining when I initially rose this issue.

RAID cards aren't really an issue. If you want to boot off an old RAID card, but it doesn't have a signed UEFI device driver, you're going to be able to go into the BIOS settings and turn off secure boot. I don't think there's a way around that. But, Microsoft's requirements for x86 systems say that users have to be able to do that. But, the idea is that there are some UEFI device drivers that you're going to need to even turn off UEFI secure boot. Some things, like the keyboard controller, are already embedded in the BIOS, so they're not problematic. But the video card might be a special case. If you want to muck with BIOS settings, you're going to need video working. But, if video cards need device-specific UEFI device drivers to function, it creates a problem. To get video working, you may need to run an unsigned video card UEFI device driver (or to run a legacy option ROM), you need to turn off secure boot. But, to turn off secure boot you'll need video working.

I figure there are two possibilities: either 1) you're right and you can have generic UEFI device drivers for video cards, or 2) there's going to be a slightly painful transition process. It might be that people that want to swap in an old video card in a new Win8 system will need to disable secure boot before removing the video card that same with their new Win8 system. Retail motherboards will probably ship with UEFI secure boot turned off by default (if they support it at all), since the Win8 requirements don't apply to them. In the end, I doubt it would impact very many people. How many people are buying new desktops at retail and putting in old video cards?

Comment Re:Secure Boot is only for UEFI Executables (Score 2) 545

The threat you identified isn't special to GRUB or even bootloaders. Any EFI executable could potentially be "hiding" a malicious bootloader, or some other malicious payload that mucks with the way Windows boots up. I think you'll deal with this potential threat exactly one way: if you find out a previously-signed EFI executable is doing bad things, you'll add the signature associated with that executable to the "forbidden list" (essentially revoking the signature), and you'll go after whoever submitted that executable for signing.

That doesn't necessarily help you if OS-present malware modifies the loaders and the kernel. On the next boot you could load a modified kernel, which isn't going to be detected because you'll also have modified loaders. But, a lesser-known fact about UEFI secure boot with Windows8 is that Microsoft's OS loader is going to be signed with a different key than all other EFI executables. While I don't know exactly how its intended to work, its presumably intended to help block the sort of attack I think you are imagining. But, at the very least, GRUB can't directly load Windows. Instead it would launch the Windows 8 loader, and the UEFI BIOS should verify the signature at that stage. Presumably a bootloader like GRUB could be modified to directly load Windows, but that might be enough to land you on the forbidden list if someone catches you.

I don't know. All that's basically just a guess on my part.

I think you're absolutely right though that there's a tension between security and flexibility here.

You make an interesting point about service processors. Generally speaking, it should be difficult for malware to use that vector, since service processors (should) authenticate any requests (using a digital certificate, or at least a password). Still, a strict interpretation of Microsoft's requirements say that physical presence is required, and remotely changing a BIOS setting via a service processor isn't physical presence. Will OEMs write their BIOS so you can't change that setting via something like AMT? Maybe. I don't really know. I honestly don't see a compelling need to be able to turn it off remotely, so it seems like a bad idea to let it be remotely accessible by any mechanism, including a service processor. If you're running Windows, the only reason you might want to turn off secure boot is to use an old add-in card, in which case you're already physically at the box. If you're running Linux, and they don't get their act together to play nicely with secure boot, then you're just going to turn off secure boot when you initially set up the system.

Comment Re:what about bios config? (Score 1) 545

I really don't know what Windows recovery tools use. It seems like those wouldn't be executing in the EFI environment and would instead load their own generic device drivers. I know MS wants to be able to use UEFI interfaces to display stuff on screen, but I think that's primarily for their bootloader (which is an EFI executable).

There's certain a handful of things you might want to do in the preboot environment. Things like BIOS or card flashing are generally initiated from OSes these days, although a lot of products can probably do it in preboot, or at least DOS. You'd certainly be able to do those things on a UEFI secure boot system if you had UEFI-compatible cards. The question is can you do those things easily on a UEFI secure boot system when you don't have UEFI-compatible cards. This is a potential problem that would only impact a small percentage of users. How many people go out and buy a new computer, and then toss in an old add-in card that is used during boot (like a SATA/RAID controller or video card)? Some do, but not a lot.

Part of me is tempted to say that you must be right, and that there's got to be a generic video UEFI device driver to fall back on. But, if that were true, why wouldn't we just use generic video card option ROMs today? As you said, there's really no need for full-fledged video in the preboot environment anyway. But I know my systems all execute a video card-specific option ROM during boot. Many of the other boot-critical devices on a system are on the motherboard and have option ROMs that are embedded in the BIOS (e.g., keyboard controller, USB, SATA, etc.). Things like mice are different sorts of devices. Those don't have option ROMs that execute on the host CPU. They have their own firmware running on microcontrollers inside the mice, but no option ROMs read out during boot and executed on the host. USB controllers, on the other hand, definitely have option ROMs (but again, they're usually embedded in the BIOS).

By the way, these devices don't need secure chips. The signature verification is done by the host CPU, not anything on the card/device. The card/device just needs to have flash memory that contains a signed UEFI executable. The BIOS will find that during the boot process, verify the signature, and execute it.

Comment Re:Signed GRUB (Score 1) 545

Maybe this is a stupid question, by why would every distribution have to get their GRUB build signed? Is GRUB distribution-specific now? If so, then I don't see any way around signing every build. For something like UEFI secure boot to work, you need to sign all code that executes during boot. But, if you're saying that because of some idea that GRUB has to verify the OS, I don't see where that comes from. There's no requirement to do that.

And, by the way, of course the signing key wouldn't be distributed. That would completely invalidate the security of UEFI secure boot. There's only one signing key per trust anchor. UEFI secure boot doesn't have a way to do certificate chaining. That's why Microsoft has to sign everything- there's no mechanism to give other entities signing keys rooted in Microsoft's trust anchor.

I agree the entire UEFI secure boot is slanted in Microsoft's favor, but that's only because they're the only player in town. No one else has offered to set up a UEFI executable signing service.

Comment Re:I would think there will be some kind of vga / (Score 1) 545

RAID cards were usually the thing I pointed to when people were worried you weren't going to be able to turn off UEFI secure boot. I fully expect you'll need a signed UEFI device driver for your RAID card if you want to boot off of it.

Hopefully you're right about a basic UEFI device driver, otherwise I think people will have problems before UEFI-compatible add-in cards become pervasive. But, in a UEFI world I don't think you have the same concerns about no video until OS boot. UEFI systems running Windows 8 will boot much faster than today's systems, making the time before the OS device driver kicks in much less.

Comment Re:I predict.... (Score 1) 545

I doubt that. There's a lot less code in boot firmware than in most OS-level software, meaning fewer opportunities for vulnerabilities in that code. And, probably more importantly, a lot fewer ways to inject code and try to run it. There's actually a paper from a couple years ago that found a vulnerability in the way that Intel signs their BIOS updates. That's essentially the sort of vulnerability you'd need to find. But, Intel did something sort of stupid: they signed all the BIOS code, but they didn't sign the graphics that appeared on-screen during boot. Someone found a vulnerability in the code that processed the graphics during boot which allowed for a buffer overflow exploit. Now they know better. I'm sure there's many more ways to get things wrong, but I think the code will be locked down pretty well. I don't expect to see very many exploitable vulnerabilities in UEFI BIOS that would compromise the security of UEFI secure boot.

Comment Re:Secure Boot is only for UEFI Executables (Score 1) 545

Microsoft wants UEFI secure boot so people can securely boot into Windows. If you're using a different bootloader to load Linux, Microsoft doesn't care if your system gets infected with a rootkit. But, the preboot environment doesn't know what OS is going to be loaded, so it has to check signatures on anything. Right now the only entity that has stepped up to the plate to sign UEFI executables is Microsoft. No one else has they would set up an alternative signing service. If Red Hat and Canonical joined together to create one, they might actually be able to get the major OEMs to install the trust anchor on their products.

I've only seen the mid-December draft of the Windows 8 requirements, but it's my understanding that that draft significantly loosened the requirements for UEFI secure boot. Or, perhaps more accurately, is significantly strengthened the requirement for user-control of the secure boot setting and the trust anchors on x86 systems. That might indicate some reluctance to accept third party trust anchors. Or maybe they didn't expect any other UEFI executable signing services, since nobody else said they would do it. Or maybe at first they thought it was more appropriate to leave the decision on configuring secure boot to OEMs (a position they obviously don't hold now, given the strict requirements on both x86 and ARM systems).

Slashdot Top Deals

No directory.

Working...