250
Microsoft’s Secure Boot has been broken for a decade and no one noticed until now
(www.welivesecurity.com)
This is a most excellent place for technology news and articles.
Unpopular opinion but I’m dying on this hill. Secure boot creates more problems than it solves.
That's a very popular opinion.
That's like saying windows 11 doesn't need tpm chips, an extremely popular opinion
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
Having an unlockable bootloader is a separate thing from being able to replace the primary bootloader entirely.
My bad, i misunderstood
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
Fantastic 😂 ! Thanks for the laugh.
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.
Because it's proprietary and in 99% of cases actually means "Windows Boot", and isn't very compatible with other OS. Windows is basically in charge of the entire technology and doesn't have a history of being friendly to other OS.
For a while Linux was completely blocked by this setting, which was yet another technical barrier to getting into Linux because you had to fuck around in your scary UEFI settings otherwise your PC would be soft-bricked after installing Linux. Nowadays it's slightly supported by some distributions but Microsoft could of course change it at any time.
Further reading: https://wiki.ubuntu.com/UEFI/SecureBoot
The way it should work is that during the OS install the OS can ask to have a cert added to the keystore at which point UEFI pops up a screen that says something like:
This would at least be a vendor agnostic way of enrolling certificates instead of the MS certificate just always being pre-installed. It should also of course be publicly documented exactly how the process works so everyone can use it.
Problem being, of course, that you can add more certificates, but you can't revoke the original M$ one. And since it's vulnerable and you can't get rid, then these exploits still work and there's nothing you can do to stop it.
On some systems you can clear all secure boot keys, including Microsoft's, then provision your own and sign your bootloader or kernel with it. Windows cannot boot from such systems.
Computers shouldn't come with Microsoft keys preinstalled to begin with (or an operating system for that matter). Microsoft being able to have Windows preinstalled on the vast majority of non-Apple PCs is how they gained their monopoly in the first place.
You should be able to remove any or all the certs as well, although I could see an argument for requiring you to enter the BIOS to do that.
Universal Blue distros do that. For some reason you need to enter a password though.
This is the MOK (Machine Owner Key), which is part of the shim bootloader, not UEFI secure boot.
The shim bootloader is signed by Microsoft UEFI secure boot keys, so Microsoft is the root of trust there.
On some systems you can delete all Secure Boot keys, and provision your own, then you don't need the shim bootloader and can sign your own bootloader or Linux kernel directly. Windows would not be able to boot on those systems.