Secure Boot/ru: Difference between revisions

FuzzyBot (talk | contribs)
Updating to match new version of source page
No edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 4: Line 4:
Secure Boot имеет несколько реализаций, наиболее известная - UEFI Secure Boot, которая опирается на прошивку платформы UEFI, но во встраиваемых системах могут существовать и другие реализации.  
Secure Boot имеет несколько реализаций, наиболее известная - UEFI Secure Boot, которая опирается на прошивку платформы UEFI, но во встраиваемых системах могут существовать и другие реализации.  


<div class="mw-translate-fuzzy">
<div lang="en" dir="ltr" class="mw-content-ltr">
На NixOS, Secure Boot может быть включён с помощью проекта [Lanzaboote].
[[Category:Security]]
[[Category:Booting]]
</div>
</div>


Рекомендуется включить пароль BIOS и полное шифрование диска, чтобы предотвратить атаки на UEFI и Secure Boot.
== Проверка состояния безопасной загрузки ==
 
самый лёгкий способ проверить, включена ли безопасная загрузка на вашем компьютере - использовать <code>bootctl</code> от [[Systemd]]. Необязательно использовать [[Systemd/boot|systemd-boot]] как ваш основной загрузчик, чтобы эта команда работала.
<div class="mw-translate-fuzzy">
<syntaxhighlight lang="console">
Lanzaboote состоит из двух компонентов:
<code>lzbt</code> and <code>stub</code>.
</div>
 
<code>lzbt</code> - это программа командной строки, которая подписывает и устанавливает загрузочные файлы на ESP. 
 
<code>stub</code> - это UEFI-приложение, которое загружает ядро и initrd из ESP. Оно отличается от systemd-stub, смотрите ниже, чтобы увидеть точные различия.  
 
{{warning|Lanzaboote все еще находится в разработке и требует некоторых предварительных условий и мер предосторожности. В настоящее время он доступен только для nixos-unstable. Для получения дополнительной информации, пожалуйста, обратитесь к репозиторию GitHub или руководству по Quick Start}}.
 
<span id="Requirements"></span>
<div class="mw-translate-fuzzy">
== Требования ==
</div>
 
Для реализации Secure Boot в Lanzaboote требуется система, установленная в режиме UEFI с включенной загрузкой systemd-boot. Это можно проверить, выполнив команду <code>bootctl status</code>:
 
<syntaxHighlight lang=console>
$ bootctl status
$ bootctl status
System:
System:
    Firmware: UEFI 2.70 (Lenovo 0.4720)
    Firmware: UEFI 2.80 (American Megatrends 5.25)
  Secure Boot: disabled (disabled)
    Firmware Arch: x64
TPM2 Support: yes
    Secure Boot: enabled (user)
Boot into FW: supported
    TPM2 Support: yes
 
    Measured UKI: yes
Current Boot Loader:
    Boot into FW: supported
      Product: systemd-boot 251.7
...
...
</syntaxHighlight>
</syntaxhighlight>
В продемонстрированной выше системе включена и используется безопасная загрузка. Другие значения включают <code>disabled (setup)</code> для режима настройки, <code>disabled (disabled)</code> или <code>disabled (unsupported)</code>. Тэг unsupported появляется только если ваша материнская плата или её программное обеспечение не поддерживает безопасную загрузку.
Если вы видите <code>disabled (disabled)</code>, это значит, что вам нужно включить безопасную загрузку в настройках UEFI перед тем как продолжить, чтобы использовать один из описанных ниже проектов


== Включение безопасной загрузки на NixOS ==
В NixOS на данный момент имеется два способа включения безопасной загрузки, [[Lanzaboote]] и [[Limine]]. Пошаговые инструкции по каждому из них вы найдете на соответствующих страницах вики.


Чтобы безопасная загрузка была максимально эффективна, должны быть соблюдены определённые условия. Самими важными являются:


<span id="Setup"></span>
<div lang="en" dir="ltr" class="mw-content-ltr">
<div class="mw-translate-fuzzy">
# 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.
</div>
# 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.
</div>  


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Follow the instructions in the [https://github.com/nix-community/lanzaboote/blob/master/docs/QUICK_START.md Quick Start guide].
== See Also ==
</div>
[https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot Arch Wiki/Secure Boot] Extensive information on Secure Boot including using UKIs.
 
</div>  
<div class="mw-translate-fuzzy">
== Управление ключами ==
На момент написания статьи Lanzaboote предлагает только локальное хранение связки ключей, иначе невозможно перестроить систему и подписать новые результирующие файлы.
</div>
 
В будущем Lanzaboote предложит два новых варианта подписи: удаленная подпись (HTTP-сервер, который получает запросы на подпись и отвечает подписями) и подпись на основе PKCS#11 (то есть с использованием HSM-подобного устройства, например, YubiKey, NitroKey и т.д.).
 
{{Warning|Управление ключами - сложная проблема, которая выходит за рамки проекта Lanzaboote, существует множество решений, но не существует единого идеального. Потратьте время на то, чтобы научиться управлять ключами и определить правильный уровень защиты от угроз - это очень важно для эффективной защиты загрузки}}.
 
<div class="mw-translate-fuzzy">
== Различия с `systemd-stub` ==
У systemd и upstream дистрибутивов есть существующее решение под названием `systemd-stub`, но оно не подходит для NixOS, так как в системе слишком много поколений.
</div>
 
При использовании `systemd-stub', ядро и initrd приходится дублировать для '''каждого поколения''', а при использовании заглушки Lanzaboote ядро и initrd можно '''дедуплицировать''' без ущерба для безопасности.


<div lang="en" dir="ltr" class="mw-content-ltr">
<references />
Tracking the feature parity with `systemd-stub` can be done in this issue: https://github.com/nix-community/lanzaboote/issues/94.
[[Category:Security]]
[[Category:Booting]]
</div>