Jump to content

Secure Boot/ru: Difference between revisions

From NixOS Wiki
Unabomberlive (talk | contribs)
Created page with "В будущем Lanzaboote предложит два новых варианта подписи: удаленная подпись (HTTP-сервер, который получает запросы на подпись и отвечает подписями) и подпись на основе PKCS#11 (то есть с использованием HSM-подобного устройства, например, YubiKey, NitroKey и т.д.)."
FuzzyBot (talk | contribs)
Updating to match new version of source page
 
(7 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>


<div lang="en" dir="ltr" class="mw-content-ltr">
Для реализации Secure Boot в Lanzaboote требуется система, установленная в режиме UEFI с включенной загрузкой systemd-boot. Это можно проверить, выполнив команду <code>bootctl status</code>:
The Secure Boot implementation of Lanzaboote requires a system installed in UEFI mode together with systemd-boot enabled. This can be checked by running <code>bootctl status</code>:
</div>


<syntaxHighlight lang=console>
<syntaxHighlight lang=console>
Line 35: Line 41:
</syntaxHighlight>
</syntaxHighlight>


<div lang="en" dir="ltr" class="mw-content-ltr">
It is recommended to enable a BIOS password and full disc encryption to prevent attacks against UEFI and Secure Boot.
</div>


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


Line 47: Line 52:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div class="mw-translate-fuzzy">
== Key management ==
== Управление ключами ==
At the time of writing, Lanzaboote offers only local storage of the keyring, otherwise, it is not possible to rebuild the system and sign the new resulting files.
На момент написания статьи Lanzaboote предлагает только локальное хранение связки ключей, иначе невозможно перестроить систему и подписать новые результирующие файлы.
</div>
</div>


Line 56: 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.