manufacturers could add support for the new key by updating the KEK database
Oh right, the KEK database. They are literally trolling us aren't they.
manufacturers could add support for the new key by updating the KEK database
Oh right, the KEK database. They are literally trolling us aren't they.
Not if you disable it, "secure boot" is a joke anyway.
not a problem
If you use linux and are dependant on M$, youre doing it wrong
If you start with a reasonably recent Windows machine, there's a TPM with secure boot (and MS keys) enabled. If setting up dualboot Windows/Linux, you're going through BIOS/UEFI, so expiring keys will affect you. Booting into Windows and doing an update should fix the problem.
If you disabled secureboot/FDE, then installed Linux and left it at that, you should be OK.
But under Linux, those who reenable fulldisk encryption or secure boot via the TPM may be impacted by this, and since they've removed Windows, they may be screwed: https://allthings.how/how-to-enable-tpm-encryption-and-secure-boot-on-ubuntu-24-04/
So why can't Linux just do whatever the Windows update does?
Tools to do that exists. fwupd is a tool to update firmwares. I just tested it on a thinkpad and went from 351 keys to 518 secureboot keys.
GNOME Software also uses fwupd, that should take care of a good chunk of users.
The Windows update loads a chain of trust that tells the bootloader the device is OK and your version of Windows is real and your full-disk-encryption is fine. Linux folks don't have (or need) all that. They can create their own chain of trust if they want, but they don't have read/write access to the Microsoft one.
If they did, we would be reading a completely different article starting with why the world was on fire.
So my framework 16 that has never seen Windows running FedoraKDE with FDE (but not auto-unlock, typed pass every boot) enabled is going to explode?
Half kidding, but like, should I disable secure boot or something? Run fwupd?
If it's never seen Windows you may be fine.
The problem is mostly for systems that dual-boot or had Windows at one point, but got Linux installed on top. A lot of people use old Lenovo, HP, or Dell computers and repurpose them for Linux. Those are the ones that may get bit.
From https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/managing_monitoring_and_updating_the_kernel/signing-a-kernel-and-modules-for-secure-boot_managing-monitoring-and-updating-the-kernel: "In addition, the signed first-stage boot loader and the signed kernel include embedded Red Hat public keys. These signed executable binaries and embedded keys enable RHEL 8 to install, boot, and run with the Microsoft UEFI Secure Boot Certification Authority keys. These keys are provided by the UEFI firmware on systems that support UEFI Secure Boot."
Basically the Microsoft keys are ones that the firmware vendor (motherboard or chip manufacturer) recognizes as secure by default (via CA validation). You can override them. It's not a Linux issue but a hardware-vendor-defaulting-to-Microsoft issue.
If security is the actual I'd even argue you SHOULD over ride them. It's like the default password on your home router
You're not wrong, but unfortunately it's not simple and can brick your motherboard if you make a mistake. I wouldn't expect the average Linux user to do it these days. It can also depend on the hardware. If they don't expose any ability to change the keys you're stuck.
Microsoft has spent the time and money to get their key added to the silicone of the BIOS chips on PC hardware. Everyone else needs to get their key signed by Microsoft, including Red Hat and Canonical.
=/= ≠ ≠/!=/<>/~=
= for "not equal" is an abomination. It should be the ASCII equivalent for ≈, "approximate to". Bash gets it right with = for pattern matching.
My preferred is ><
The cartman inequality
I was always partial to !=, to me it says WOOAH PARDNER, LOOK OUT, not equal
Every manufacturer includes the Microsoft secure boot key in their firmware. I'm not sure if any manufacturer includes a Linux-specific key. So Microsoft signed a bootloader with their key, enabling secure boot to work with Linux without having to load another key onto every device.
AFAIK it's not necessarily about Linux using Microsoft keys, it's more about Microsoft shoe-horning their bullshit into everything they possibly can, including at the hardware/firmware level.
can i just not use secure boot?
That's what I do. I never enabled it based on the assumption that because it's a Microsoft thing, it would eventually fuck me over in some way. That attitude has served me well for may years lol.
You can but then you don’t have secure boot.
and this is bad because?
If you don’t care about boot chain attacks it isn’t bad at all.
If you do care about boot chain attacks it’s bad because it allows someone to replace things like the efi binaries, grub, or your kernel with backdoor-ed versions and there would be no way to detect this from the running system.
Secure boot checks for this stuff. You can read more here:
But if secure boot happens to brick your system forever because of this expiring key thing, is that worse than a boot chain attack?
It won’t brick your system forever??? You just turn it off in your bios. Then you have no secure boot. Just like it was never there.
Shouldn't a system that was set up with Secure Boot refuse to start if it were disabled? Otherwise there wouldn't be any protection against these attacks.
I don't think setting up the system again is a simple remedy to having problems with this feature.
It won’t refuse to boot. It’s just that any automatic metric based decryption won’t work.
If you are using a TPM to automatically unlock luks and also manually removed the password backup before hand you could lose your data forever. That is true.
But if you kept the password based decryption stuff you could still manually unlock stuff. Just like secure boot was never there.
The difference would be that there could be no secure attestation that the kernel count trust/use without secure boot.
Like secure boot is really cool on Linux if you learn about it. Like sbctl alone is great for verifying backups and stuff.
I recommend reading through the arch wiki if you want to learn more. It covers a lot of stuff. https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot
Turning off secure boot wont turn off your TPM, it just turns off all the signature verifications. Your TPM still stores the decryption keys and you can still decrypt your data.
Now if you do a UEFI/BIOS update without disabling your encryption while using a TPM, and dont have password decryption as a backup, yes, you could potentially lose access to your data.
It won't turn off your TPM, but if you've set it up correctly (by using PCR7), the TPM won't allow decrypting your data without secure boot.
I'm fairly new to Linux, so I'm wondering if someone could confirm.
I ran bootctl status in the terminal and saw "Secure Boot: disabled". That means I'm in the clear, right?
Microsoft's
Secure Boot UEFI bootloader signing key expires in September,posing problems for Linux users
It would appear that major distros like RedHat/Fedora, Ubuntu, Debian, etc are not overly concerned at this point. I would suspect that if they truely feared this happening, they would be moving very quickly to create patches or work arounds for this problem.
I've learned several new commands from this thread and am grateful to all of you who've taught me them.
What happens on Windows if the motherboard is old and do not have the 2023 key in its UEFI?
Then it can't be booted with new media. Microsoft has been very, very slow with the automatic rollout of their own key updates, and made just about no progress over the past two years. It's been manual updates + newly produced systems only.
The trick here is that they have a key-exchange-key that can be used to update the other keys. That doesn't expire (or rather, not in a meaningful way). But, a Windows image is still only going to boot on a system that trusts the key that was used for it. If you make a Windows image on a 2011 system now, it's going to be signed with the 2011 key, and it won't boot on a system that distrusts that key. The same is true in reverse.
Their key update documentation is all available and some enterprises have been on the new key for a while, but it's a lot of manual work and a lot of problems have popped up, most documented in there. How they're going to roll this out automatically to normal users isn't obvious to me. There's technically nothing stopping a system from trusting both the 2011 and 2023 keys, and I wouldn't be entirely surprised if they end up never pushing the 2011 revocation.
The keys they use for their own OS don't truly expire until late 2026, and I expect they'll do their best to delay it until then, but the next time they have to update their boot manager is going to be painful and introduce all kinds of new problems.
So my old Lenovo x220 that started as Windows and since then I wiped and installed pop os with full disk encryption is going to have a problem?
Secure boot will fail validation. You can still boot it anyway by disabling secure boot. You just lose a layer of security. You can manually sign boot files yourself and add the relevant certificate to the motherboard firmware database. Assuming it lets you.
I see, I'm just a novice at Linux and this seems complicated. Is there a good tutorial somewhere? Otherwise I might just disable secure boot
Sorry for delay.
Install sbsigntool
Create Certificate:
openssl x509 -outform der -in cacert.pem -out certificate.crt
The resulting certificate.crt is what will be used to verify the signature of the EFI binary. You will import this into the motherboards firmware database.
Sign EFI Binary:
sbsign --key cakey.pem --cert cacert.pem bootx64.efi --output BOOTX64.efi
After you sign the boot file, reboot into the firmware and import the certificate. Reboot normally and secure boot should work without issue.
all 13 comments