Démarrage sécurisé

Le démarrage sécurisé est une fonctionnalité de l’Interface Firmware Unifiée et Extensible (UEFI) qui vérifie tous les composants de firmware et logiciels de bas niveau avant le chargement. Lors du démarrage, le démarrage sécurisé UEFI vérifie la signature de chaque logiciel de démarrage, y compris les pilotes de microprogramme UEFI (également appelés ROM optionnels), les applications Extensible Firmware Interface (EFI), ainsi que les pilotes et fichiers binaires du système d’exploitation. Si les signatures sont valides ou fiables par le fabricant de l’équipement d’origine (OEM), la machine démarre et le firmware donne le contrôle au système d’exploitation.

Composants et processus

Le démarrage sécurisé s’appuie sur ces composants essentiels :

  • Clé de plateforme (PK) : établit une relation de confiance entre le propriétaire de la plateforme (Microsoft) et les microprogrammes. La moitié publique est PKpub et la moitié privée est PKpriv.
  • Base de données des clés d’inscription de clé (KEK) : établit une relation de confiance entre le système d’exploitation et les microprogrammes de la plateforme. La moitié publique est KEKpub et la moitié privée est KEKpriv.
  • Base de données de signatures (db) : contient les condensats des signataires de confiance (clés publiques et certificats) des modules de code du micrologiciel et des logiciels autorisés à interagir avec le micrologiciel de la plateforme.
  • Base de données de signatures révoquées (dbx) - Contient des résumés révoqués de modules de code que l’OEM identifie comme malveillants, vulnérables, compromis ou non fiables. Si un hachage est dans la base de signatures et dans la base de données des signatures révoquées, la base de données des signatures révoquées a priorité.

La figure et le processus suivants expliquent comment l’OEM met à jour ces composants :

Schéma du flux de démarrage sécurisé montrant les bases de données signées et la validation des clés d’échange de clés lors du démarrage du système.

L’OEM stocke les codes de hachage du démarrage sécurisé sur la RAM non volatile (NV-RAM) de l’ordinateur au moment de la fabrication.

  1. L’OEM remplit la base de données de signature avec les signataires ou hachages d’images des applications UEFI, des chargeurs du système d’exploitation (comme le Microsoft Operating System Loader ou le Boot Manager) et des pilotes UEFI fiables.
  2. L’OEM alimente la dbx des signatures révoquées avec les digests des modules qui ne sont plus approuvés.
  3. L’OEM renseigne la base de données des clés KEK (Key Enrollment Key) avec des clés de signature permettant de mettre à jour la base de données des signatures et la base de données des signatures révoquées. Un utilisateur autorisé physiquement présent peut modifier les bases de données par des mises à jour signées avec la bonne clé ou en utilisant des menus de firmware.
  4. Après que l’OEM a ajouté les bases de données DB, DBX et KEK et terminé la validation et les tests du firmware, l’OEM verrouille le firmware pour l’empêcher l’édition et génère une clé de plateforme (PK). L’OEM peut utiliser le PK pour signer les mises à jour du KEK ou désactiver le Secure Boot.

À chaque étape du processus de démarrage, le système calcule les résumés du firmware, du chargeur d’amorçage, du système d’exploitation, des pilotes du noyau et d’autres artefacts de la chaîne de démarrage, et les compare aux valeurs acceptables. Le système n’autorise pas le firmware et les logiciels découverts comme non fiables de charger. Secure Boot peut bloquer l’injection de malwares de bas niveau ou les attaques anti-malware avant le démarrage.

Démarrage sécurisé sur la flotte Azure

Aujourd’hui, chaque machine déployée dans la flotte de calcul Azure pour accueillir les charges de travail clients provient des ateliers d’usine avec Secure Boot activé. Des outils et processus ciblés sont en place à chaque étape de la construction matérielle et de la chaîne d’intégration afin de garantir que les processus ne reviennent pas sur l’activation du Secure Boot par accident ou par intention malveillante.

Valider que les codes de hachage db et dbx sont corrects garantit que :

  • Le bootloader est présent dans l’une des entrées de la base de données.
  • La signature du bootloader est valide.
  • L’hôte démarre avec un logiciel de confiance.

La validation des signatures de KEKpub et PKpub confirme que seules les parties de confiance ont la permission de modifier les définitions de logiciels de confiance. Enfin, s’assurer que Secure Boot est actif valide que le système applique ces définitions.

Étapes suivantes

Pour en savoir plus sur la manière dont Microsoft gère l’intégrité et la sécurité des plateformes, voir :