Secure Boot: Difference between revisions

Ben9986 (talk | contribs)
Move Lanzaboote section to its own page. Fix grammar on remaining secure boot info. Minor wording change to put Lanzaboote and Limine on the same level
Ben9986 (talk | contribs)
Marked this version for translation
 
(3 intermediate revisions by the same user not shown)
Line 7: Line 7:
Secure Boot has multiple implementations, the most well known one is UEFI Secure Boot, which relies on the UEFI platform firmware, but other implementations can exist on embedded systems.  
Secure Boot has multiple implementations, the most well known one is UEFI Secure Boot, which relies on the UEFI platform firmware, but other implementations can exist on embedded systems.  


<!--T:3-->
<!--T:21-->
On NixOS, Secure Boot can be enabled using the [[Lanzaboote]] or [[Limine]] projects.
 
<!--T:12-->
It is recommended to set a BIOS password and enable full disc encryption to prevent attacks which can bypass Secure Boot.
[[Category:Security]]
[[Category:Security]]
[[Category:Booting]]
[[Category:Booting]]
<!--T:22-->
== Checking Secure Boot status ==
The easiest way to check if your machine has Secure Boot enabled is through the use of [[Systemd]]'s <code>bootctl</code>. There is no need to be using [[Systemd/boot|systemd-boot]] as your bootloader for this command to work. <syntaxhighlight lang="console">
$ bootctl status
System:
    Firmware: UEFI 2.80 (American Megatrends 5.25)
    Firmware Arch: x64
    Secure Boot: enabled (user)
    TPM2 Support: yes
    Measured UKI: yes
    Boot into FW: supported
...
</syntaxhighlight>The system above has secure boot enabled and enforced. Other values include <code>disabled (setup)</code> for Setup Mode, <code>disabled (disabled)</code> or <code>disabled (unsupported)</code>. The unsupported tag only appears if your device firmware does not support Secure Boot at all.
If you see <code>disabled (disabled)</code>, this means you will need to enable Secure Boot in your UEFI firmware settings before proceeding to use one of the projects outlined below.
<!--T:23-->
== Enabling Secure Boot on NixOS ==
On NixOS, there are currently two main ways to enable Secure Boot, [[Lanzaboote]] and [[Limine]]. See their respective wiki pages for step by step instructions on each.
<!--T:24-->
For Secure Boot to be most effective, there are certain conditions which should also be met. The most important are:
<!--T:25-->
# The UEFI firmware is protected by a strong password to prevent an untrusted drive from being booted or Secure Boot being disabled.
# Full disk encryption is enabled so that your drive cannot simply be read by putting it another another machine.
# Ideally, default OEM/third party keys are not in use as these have been shown to weaken the security of Secure Boot significantly.<ref>https://habr.com/ru/articles/446238/</ref> However, this may brick some devices which use Microsoft-signed OpROMS for certain hardware during the boot process, particularly some laptops, so you must be certain before removing them. It may be impossible to fix if, for example, the GPU relies on these OpROMS.
<!--T:26-->
== See Also ==
[https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot Arch Wiki/Secure Boot] Extensive information on Secure Boot including using UKIs.
</translate>
</translate>
<references />