Jump to content

Secure Boot/ru: Difference between revisions

From NixOS Wiki
Unabomberlive (talk | contribs)
Created page with "Для реализации Secure Boot в Lanzaboote требуется система, установленная в режиме UEFI с включенной загрузкой systemd-boot. Это можно проверить, выполнив команду <code>bootctl status</code>:"
FuzzyBot (talk | contribs)
Updating to match new version of source page
 
(4 intermediate revisions by one other user not shown)
Line 4: Line 4:
Secure Boot имеет несколько реализаций, наиболее известная - UEFI Secure Boot, которая опирается на прошивку платформы UEFI, но во встраиваемых системах могут существовать и другие реализации.  
Secure Boot имеет несколько реализаций, наиболее известная - UEFI Secure Boot, которая опирается на прошивку платформы UEFI, но во встраиваемых системах могут существовать и другие реализации.  


На NixOS, Secure Boot может быть включён с помощью проекта [Lanzaboote].  
<div class="mw-translate-fuzzy">
На NixOS, Secure Boot может быть включён с помощью проекта [Lanzaboote].
</div>
 
Рекомендуется включить пароль BIOS и полное шифрование диска, чтобы предотвратить атаки на UEFI и Secure Boot.


<div class="mw-translate-fuzzy">
Lanzaboote состоит из двух компонентов:
Lanzaboote состоит из двух компонентов:
<code>lzbt</code> and <code>stub</code>.  
<code>lzbt</code> and <code>stub</code>.
</div>


<code>lzbt</code> - это программа командной строки, которая подписывает и устанавливает загрузочные файлы на ESP.   
<code>lzbt</code> - это программа командной строки, которая подписывает и устанавливает загрузочные файлы на ESP.   
Line 16: Line 22:


<span id="Requirements"></span>
<span id="Requirements"></span>
<div class="mw-translate-fuzzy">
== Требования ==
== Требования ==
</div>


Для реализации Secure Boot в Lanzaboote требуется система, установленная в режиме UEFI с включенной загрузкой systemd-boot. Это можно проверить, выполнив команду <code>bootctl status</code>:
Для реализации Secure Boot в Lanzaboote требуется система, установленная в режиме UEFI с включенной загрузкой systemd-boot. Это можно проверить, выполнив команду <code>bootctl status</code>:
Line 33: Line 41:
</syntaxHighlight>
</syntaxHighlight>


Рекомендуется включить пароль BIOS и полное шифрование диска, чтобы предотвратить атаки на UEFI и Secure Boot.


<div lang="en" dir="ltr" class="mw-content-ltr">
 
== Setup ==
<span id="Setup"></span>
<div class="mw-translate-fuzzy">
== Настройка ==
</div>
</div>


Line 43: Line 52:
</div>
</div>


<div class="mw-translate-fuzzy">
== Управление ключами ==
== Управление ключами ==
На момент написания статьи Lanzaboote предлагает только локальное хранение связки ключей, иначе невозможно перестроить систему и подписать новые результирующие файлы.
На момент написания статьи Lanzaboote предлагает только локальное хранение связки ключей, иначе невозможно перестроить систему и подписать новые результирующие файлы.
</div>


В будущем Lanzaboote предложит два новых варианта подписи: удаленная подпись (HTTP-сервер, который получает запросы на подпись и отвечает подписями) и подпись на основе PKCS#11 (то есть с использованием HSM-подобного устройства, например, YubiKey, NitroKey и т.д.).
В будущем Lanzaboote предложит два новых варианта подписи: удаленная подпись (HTTP-сервер, который получает запросы на подпись и отвечает подписями) и подпись на основе PKCS#11 (то есть с использованием HSM-подобного устройства, например, YubiKey, NitroKey и т.д.).
Line 50: Line 61:
{{Warning|Управление ключами - сложная проблема, которая выходит за рамки проекта Lanzaboote, существует множество решений, но не существует единого идеального. Потратьте время на то, чтобы научиться управлять ключами и определить правильный уровень защиты от угроз - это очень важно для эффективной защиты загрузки}}.
{{Warning|Управление ключами - сложная проблема, которая выходит за рамки проекта Lanzaboote, существует множество решений, но не существует единого идеального. Потратьте время на то, чтобы научиться управлять ключами и определить правильный уровень защиты от угроз - это очень важно для эффективной защиты загрузки}}.


<div lang="en" dir="ltr" class="mw-content-ltr">
<div class="mw-translate-fuzzy">
== Differences with `systemd-stub` ==
== Различия с `systemd-stub` ==
systemd and distribution upstream have an existing solution called `systemd-stub` but this is not a realistic solution for NixOS as there's too many generations on a system.
У systemd и upstream дистрибутивов есть существующее решение под названием `systemd-stub`, но оно не подходит для NixOS, так как в системе слишком много поколений.
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
При использовании `systemd-stub', ядро и initrd приходится дублировать для '''каждого поколения''', а при использовании заглушки Lanzaboote ядро и initrd можно '''дедуплицировать''' без ущерба для безопасности.
Using `systemd-stub`, a kernel and an initrd has to be duplicated for '''each generation''', using Lanzaboote's stub, a kernel and initrd can be '''deduplicated''' without compromising on the security.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">

Latest revision as of 20:55, 7 October 2025

Под безопасной загрузкой обычно подразумевается возможность встроенного программного обеспечения платформы проверять компоненты загрузки и гарантировать, что загрузится только ваша собственная операционная система.

Secure Boot имеет несколько реализаций, наиболее известная - UEFI Secure Boot, которая опирается на прошивку платформы UEFI, но во встраиваемых системах могут существовать и другие реализации.

На NixOS, Secure Boot может быть включён с помощью проекта [Lanzaboote].

Рекомендуется включить пароль BIOS и полное шифрование диска, чтобы предотвратить атаки на UEFI и Secure Boot.

Lanzaboote состоит из двух компонентов: lzbt and stub.

lzbt - это программа командной строки, которая подписывает и устанавливает загрузочные файлы на ESP.

stub - это UEFI-приложение, которое загружает ядро и initrd из ESP. Оно отличается от systemd-stub, смотрите ниже, чтобы увидеть точные различия.

⚠︎
Warning: Lanzaboote все еще находится в разработке и требует некоторых предварительных условий и мер предосторожности. В настоящее время он доступен только для nixos-unstable. Для получения дополнительной информации, пожалуйста, обратитесь к репозиторию GitHub или руководству по Quick Start

.

Требования

Для реализации Secure Boot в Lanzaboote требуется система, установленная в режиме UEFI с включенной загрузкой systemd-boot. Это можно проверить, выполнив команду bootctl status:

$ bootctl status
System:
     Firmware: UEFI 2.70 (Lenovo 0.4720)
  Secure Boot: disabled (disabled)
 TPM2 Support: yes
 Boot into FW: supported

Current Boot Loader:
      Product: systemd-boot 251.7
...


Настройка

Follow the instructions in the Quick Start guide.

Управление ключами

На момент написания статьи Lanzaboote предлагает только локальное хранение связки ключей, иначе невозможно перестроить систему и подписать новые результирующие файлы.

В будущем Lanzaboote предложит два новых варианта подписи: удаленная подпись (HTTP-сервер, который получает запросы на подпись и отвечает подписями) и подпись на основе PKCS#11 (то есть с использованием HSM-подобного устройства, например, YubiKey, NitroKey и т.д.).

⚠︎
Warning: Управление ключами - сложная проблема, которая выходит за рамки проекта Lanzaboote, существует множество решений, но не существует единого идеального. Потратьте время на то, чтобы научиться управлять ключами и определить правильный уровень защиты от угроз - это очень важно для эффективной защиты загрузки

.

Различия с `systemd-stub`

У systemd и upstream дистрибутивов есть существующее решение под названием `systemd-stub`, но оно не подходит для NixOS, так как в системе слишком много поколений.

При использовании `systemd-stub', ядро и initrd приходится дублировать для каждого поколения, а при использовании заглушки Lanzaboote ядро и initrd можно дедуплицировать без ущерба для безопасности.

Tracking the feature parity with `systemd-stub` can be done in this issue: https://github.com/nix-community/lanzaboote/issues/94.