Arch Wiki had pointed out for years that Secure Boot is a flawed mechanism.
post
11 old and forgotten UEFI shim bootloaders at versions 0.9 and below that can be used to bypass UEFI Secure Boot on any UEFI-based machine that trusts Microsoft’s Microsoft Corporation UEFI CA 2011 third-party UEFI certificate authority (CA) certificate, regardless of the installed operating system (OS).
This "Trust" is one of my pet peeves. It's $$$.
I get why you'd dislike that wording, but this is also how all certificate stores work, regardless of whether we're talking Secure Boot, Windows or Linux. Gotta trust the top level as providing legitimate certificates to then trust everything underlying as coming from the correct parties.
Certificate are something I work with constantly at work and I fucking hate resolving issues with them lol.
Add this to the pile of reasons why M$ is a joke and people should stop using them. Nothing they make is so good that you need to stick around.
MS has mastered the one thing businesses love which is being perfectly mediocre. If you present a business two pieces of software one that does one thing really well but nothing else, and one that does three things terribly, they'll pick the one that does three things terribly every time. That's the MS design, it smears a thin coating of suck across as broad a surface as possible and then advertises that it does everything.
A PKI without a CRL will eventually become exploitable.
Secure boot does have a revocation mechanism (It's literally how this issue has been mitigated) though.
You can not only load in allowed signatures, you can also load in disallowed ones so even properly signed binaries will get rejected.
Unpopular opinion but I’m dying on this hill. Secure boot creates more problems than it solves.
I'd argue this is actually a popular opinion. IMO secureboot has just become a way for Microsoft to leverage it's position and keep a strangle hold on industries they have no business being in.
The whole kernel level anti-cheat on win11 bullshit in the gaming industry is a good example. Essentially locking games to its platform and willing to sacrifice security to do so at our expense.
This is especially true on computers where it is impossible to change the signing keys. Smartphones, game consoles, many laptops, some desktops, smart TVs, IoT devices, modern cars, etc.
Kind of. You can change the signing key for the operating system, but you cannot change the signing key of the primary bootloader, as that is baked into the SoC.
I'm assuming this is why it will forever "warn" me that my phone is running an "insecure" OS?
That's moreso because it's using an unofficial key, so the device manufacturer (Google in the case of Pixels) cannot verify the authenticity of the OS you're running.
If you were able to replace that bootloader with a custom one, then you would be able to disable that message or just use a completely different bootloader like UBoot or EDK2 if it was ported, though.
Functionally, though, wouldn't it be the same as replacing the computer's SecureBoot bootloader, since it's Microsoft (in the case of SecureBoot) that doesn't like the unofficial key that Linux installs? Shouldn't the user be allowed to add or remove any key they desire from the allow list of official keys (maybe have some sort of decentralized verification system, if they user decides they want to verify it)?
I'm more thinking out loud here, trying to understand.
The difference is that with ARM TrustZone, there is an efuse burned with the key that the manufacturer set in the SoC itself that checks the signature of the primary bootloader, which cannot be modified.
Standard computers do not have such a hardware-level key, so if you wanted to replace the bootloader with something like coreboot if it has been ported to your board, then you can. On smartphones, you do not have that option.
Same thing goes for even more locked down systems like game consoles.
Ah, that makes a lot more sense!
Is there no way to clear that memory? Or is it more just that it's uncommonly difficult that the people with the skillset just do other, more value added things?
It's not memory, but rather physical fuses that have been blown on the die itself, similar to the Xbox 360's downgrade protection fuses and CPU key. Much like the Xbox 360, the only way to bypass it would be to do something like a reset glitch hack to glitch the state of the CPU right as it tries to read the state of the fuses and bypass that check, and that would require a specific modchip for every individual device. Another option would be to replace the SoC with one that does not have that protection enabled to begin with.
I was unaware of this. Super interesting, and disturbing honesty.
Yeah. Best to look out for devices that don't have this restriction. Not 100% sure if the Fairphone and Shiftphone have this, but I'm sure if you ask them, they'll tell you.
I think the nothing phone does not have it, at least, i doubt because their bootloader is not locked IIRC
Only in tech circles, it says secure and that's enough for most people.
Outside of tech circles most people think secure boot looks something like this

You think that's a safety boot you've got there? It's anything but! It is clearly the bottommost part of a certain powered hazmat suit - why, it's a Hazard Boot! You'll need to ask one of the egg heads whether Secure Boot is a part of its boot sequence, though.
Poor Gordon Freeman, running around out there somewhere, with just one Hazard Boot. I guess you'll find that his other leg is running with Insecure Foot, then.
That's like saying windows 11 doesn't need tpm chips, an extremely popular opinion
Was it ever popular?
Popular is the wrong question, the correct question is, how many machines is this default on.
And, how many people switch to something other than the default? Most W11 users are just going to go with whatever the computer says it's doing without changing anything. They're either ignorant of the options available, or scared of breaking something if they make a change.
What problem does it create? Its a good tech and we absolutely should be cryptographically verifying the boot process to ensure it hasnt been tampered with.
Few years ago I watched this engineer who used an rp3 to hack a bit locker encryption key.
My word of advice; any security implementation by an actor who has a fiscal responsibility and/or incentive is inherently flawed.
You are handing your keys to a whore.
IMO, broken ≠ vulnerable. Broken to me means it doesn't work. There's a difference, to me. 🤷♂️
If the "working" definition is "is secure", and there's 11 ways in which it's not, is it not "insecure", aka. "not working" then?
"Being secure" doesn't seem to be the primary function of a "UEFI shim", so no? 🤷♂️
Well considering that the “UEFI Shim’s” role is to sit in between a Microsoft owned certificate signing chain, it is certainly part of it’s primary role.
With Linux distributions supporting UEFI Secure Boot, the above-described Secure Boot mechanism built around Microsoft keys introduces some challenges. Every Linux distribution generates its own bootloader binaries, and each of them has a different hash. Getting every Linux bootloader signed directly by Microsoft would be slow, bureaucratic, and impractical (if not impossible) to maintain across all Linux distributions.
The solution to this problem is a shim: a small, minimal first-stage bootloader that Microsoft can vet and sign once, and which then creates a secondary trust anchor for the rest of the Linux distribution-specific boot stack – usually GRUB 2 and the Linux kernel. This trust anchor is another certificate, referred to as a vendor certificate (managed by the distribution vendor), added to the shim binary before it is signed by Microsoft.
Secure boot is supposed to be a lock.
Turns out there are 10 year old tricks that bypass that lock.
A lock that cannot deny access to people without proper key... is a bad lock.
Yes.
Is UEFI shim = secure boot?
No.
Secure Boot is basically a 'lock', on the UEFI.
UEFI - Shim is basically a 'lockpick'.
UEFI is the first step in your computer booting, turning on.
So, if Secure Boot is supposed to be a 'lock', that limits who can access the UEFI ... but it turns out that there are many, old, UEFI - Shims, that defeat that 'lock'... then Secure Boot is not a good 'lock'.
I don't mean to be rude but it seems like there might be a bit of language confusion going on here... In English, a 'shim' is a kind of crude/simple tool that can be used to break or bypass some actual physical locks.
So 'UEFI-Shim' basically means 'a thing that breaks into your UEFI'.
I don't think there's a language barrier here. I'm fluent in English, and I know what a shim is, both IRL and in the software world. I've just not run into it in a boot loader context before. And I'm not really knowledgeable when it comes to secure boot, either. Just trying to understand. 🙂
Are you sure that's a good phrasing though, "that breaks into your UEFI"?
A shim is usually something that you use to add or modify functionality by interception, right? Like a middle-ware, almost. So these old shims, are they responsible for functionality that directly has to do with Secure Boot, or something else?
If so, they are broken — i.e. not fulfilling their purpose.
If something else, they are not broken. They are just breaking something else, or making it vulnerable.
Am I making sense? Does it not make sense? Because after all, I don't know much about the details of the subject matter. 😁
There's like dozens of ways to open a lock without the proper key, it's probably not the best comparison...
Forgotten UEFI shims undermining Secure Boot
Better?
Microsoft gave up over a decade ago so this seems about right. If you want something secure get a Mac.

no comments (yet)