Secure Boot/fr: Difference between revisions

From NixOS Wiki
Nicolas-goudry (talk | contribs)
Created page with "Démarrage sécurisé"
 
Nicolas-goudry (talk | contribs)
No edit summary
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<div lang="en" dir="ltr" class="mw-content-ltr">
<languages/>
Secure Boot usually refers to a platform firmware capability to verify the boot components and ensure that only your own operating system to boot.
Le démarrage sécurisé est habituellement associé à la capacité d'un micrologiciel de plateforme de vérifier les composants de démarrage et de s'assurer que seul votre propre système peut démarrer.  
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Le démarrage sécurisé est implémenté de multiple façons. La plus connue est le démarrage sécurisé UEFI qui repose sur le micrologiciel de plateforme UEFI, mais d'autres implémentations existent sur les systèmes embarqués.  
Secure Boot has multiple implementations, the most known one is UEFI Secure Boot, which relies on the UEFI platform firmware, but others implementations can exist on embedded systems.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Line 11: Line 8:
</div>  
</div>  


<div lang="en" dir="ltr" class="mw-content-ltr">
Lanzaboote dispose de deux composants: <code>lzbt</code> et <code>stub</code>.  
Lanzaboote has two components: <code>lzbt</code> and <code>stub</code>.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<code>lzbt</code> est la ligne de commande qui signe et installe les fichiers de démarrage sur l'ESP.   
<code>lzbt</code> is the command line that signs and installs the boot files on the ESP.
</div>  


<div lang="en" dir="ltr" class="mw-content-ltr">
<code>stub</code> est une application UEFI qui charge le noyau et initrd depuis l'ESP. Elle diffère de systemd-stub, voir plus bas pour des précisions.  
<code>stub</code> is a UEFI application that loads the kernel and initrd from the ESP, it's different from systemd-stub, see below to see precise differences.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
{{warning|Lanzaboote est en développement et nécessite de réunir des pré-requis et de prendre des précautions. Il est pour le moment uniquement disponible sur nixos-unstable. Pour plus d'informations, voir le dépôt GitHub ou le guide de démarrage rapide.}}
{{warning|Lanzaboote is still in development and requires some prerequisites and precautions. Currently it's only available for nixos-unstable. For more information, please see the GitHub repository or the Quick Start guide.}}
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<span id="Requirements"></span>
== Requirements ==
== Pré-requis ==
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
L'implémentation du démarrage sécurisé de Lanzaboote nécessite un système installé en mode UEFI avec systemd-boot activé. Ceci peut être vérifier en exécutant <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>


<div lang="en" dir="ltr" class="mw-content-ltr">
<syntaxHighlight lang=console>
<syntaxHighlight lang=console>
$ bootctl status
$ bootctl status
Line 43: Line 28:
  TPM2 Support: yes
  TPM2 Support: yes
  Boot into FW: supported
  Boot into FW: supported
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Current Boot Loader:
Current Boot Loader:
       Product: systemd-boot 251.7
       Product: systemd-boot 251.7
...
...
</syntaxHighlight>
</syntaxHighlight>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Il est recommandé de définir un mot de passe BIOS et le chiffrement total du disque afin de se prémunir d'attaques contre l'UEFI et le démarrage sécurisé.
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">
<span id="Setup"></span>
== Setup ==
== Installation ==
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<div lang="en" dir="ltr" class="mw-content-ltr">
Line 64: Line 43:
</div>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
== Gestion des clés ==
== Key management ==
À ce jour, Lanzaboote offre seulement un stockage local du trousseau de clés. Sans cela, il est impossible de reconstruire le système et signer les nouveaux fichiers générés.
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.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
Prochainement, Lanzaboote fournira deux nouveaux services de signature: la signature à distance (un serveur HTTP recevant des demandes de signature et renvoyant les signatures) et la signature basée sur PKCS#11 (en apportant un périphérique de type HSM tel qu'une YubiKey, NitroKey, etc).
In the future, Lanzaboote will offer two new signature backends: remote signing (an HTTP server which receives signature requests and answers with signatures) and PKCS#11-based signing (that is, bringing an HSM-like device, e.g. YubiKey, NitroKey, etc.).
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
{{Warning|La gestion des clés est un problème complexe qui sort du cadre du projet Lanzaboote. Malgré que de nombreuses solutions existent, aucune n'est parfaite. Afin d'obtenir une protection effective du démarrage, il est crucial de prendre le temps d'apprendre comment gérer ses clés et de définir le niveau adéquat de protection.}}
{{Warning|Key management is a hard problem which is out of scope for Lanzaboote project, many recipes exist and there is no single perfect solution. Taking the time to learn how to key manage and figure out the right level of threat protection is crucial to achieve an effective boot protection.}}
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
== Différences avec `systemd-stub` ==
== Differences with `systemd-stub` ==
systemd et les distributions en amont ont une solution existante s'appelant `systemd-stub`, cependant cette solution n'est pas applicables à NixOS étant donné qu'il y a trop de générations sur un même système.
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.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
En utilisant `systemd-stub`, un noyau et un initrd doivent être dupliqués pour '''chaque génération'''. En utilisant le stub Lanzaboote, un noyau et un initrd peuvent être '''dé-dupliqués''' sans compromettre la sécurité.
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 21:29, 12 July 2024

Le démarrage sécurisé est habituellement associé à la capacité d'un micrologiciel de plateforme de vérifier les composants de démarrage et de s'assurer que seul votre propre système peut démarrer.

Le démarrage sécurisé est implémenté de multiple façons. La plus connue est le démarrage sécurisé UEFI qui repose sur le micrologiciel de plateforme UEFI, mais d'autres implémentations existent sur les systèmes embarqués.

On NixOS, Secure Boot can be enabled via the project Lanzaboote.

Lanzaboote dispose de deux composants: lzbt et stub.

lzbt est la ligne de commande qui signe et installe les fichiers de démarrage sur l'ESP.

stub est une application UEFI qui charge le noyau et initrd depuis l'ESP. Elle diffère de systemd-stub, voir plus bas pour des précisions.

Warning: Lanzaboote est en développement et nécessite de réunir des pré-requis et de prendre des précautions. Il est pour le moment uniquement disponible sur nixos-unstable. Pour plus d'informations, voir le dépôt GitHub ou le guide de démarrage rapide.

Pré-requis

L'implémentation du démarrage sécurisé de Lanzaboote nécessite un système installé en mode UEFI avec systemd-boot activé. Ceci peut être vérifier en exécutant 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
...

Il est recommandé de définir un mot de passe BIOS et le chiffrement total du disque afin de se prémunir d'attaques contre l'UEFI et le démarrage sécurisé.

Installation

Follow the instructions in the Quick Start guide.

Gestion des clés

À ce jour, Lanzaboote offre seulement un stockage local du trousseau de clés. Sans cela, il est impossible de reconstruire le système et signer les nouveaux fichiers générés.

Prochainement, Lanzaboote fournira deux nouveaux services de signature: la signature à distance (un serveur HTTP recevant des demandes de signature et renvoyant les signatures) et la signature basée sur PKCS#11 (en apportant un périphérique de type HSM tel qu'une YubiKey, NitroKey, etc).

Warning: La gestion des clés est un problème complexe qui sort du cadre du projet Lanzaboote. Malgré que de nombreuses solutions existent, aucune n'est parfaite. Afin d'obtenir une protection effective du démarrage, il est crucial de prendre le temps d'apprendre comment gérer ses clés et de définir le niveau adéquat de protection.

Différences avec `systemd-stub`

systemd et les distributions en amont ont une solution existante s'appelant `systemd-stub`, cependant cette solution n'est pas applicables à NixOS étant donné qu'il y a trop de générations sur un même système.

En utilisant `systemd-stub`, un noyau et un initrd doivent être dupliqués pour chaque génération. En utilisant le stub Lanzaboote, un noyau et un initrd peuvent être dé-dupliqués sans compromettre la sécurité.

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