Processus d'IPL (procédure de chargement initial)
La fonction d'amorçage sécurisé (Secure Boot) empêche l'accès non autorisé aux données client, que ce soit via un microprogramme non autorisé s'exécutant sur un processeur système ou d'un accès via des vulnérabilités en matière de sécurité au niveau du microprogramme autorisé du processeur de service, ou encore via des interfaces de maintenance du matériel à l'aide du processeur FSP (processeur de service flexible).
- Les attaques basées sur le logiciel du système d'exploitation visant à obtenir un accès non autorisé aux données client.
- Les administrateurs système sans scrupules.
- Les attaques physiques du matériel (par exemple, les substitutions de puce ou l'enregistrement du trafic des bus).
La fonction Amorçage sécurisé implémente une chaîne de confiance basée processeur dans le matériel processeur POWER9 qui est activée par la pile de microprogramme POWER9. La fonction Amorçage sécurisé fournit une base de microprogramme sécurisée afin d'améliorer la confidentialité et l'intégrité des données client dans un environnement virtualisé.
La fonction d'amorçage digne de confiance des serveurs à processeur POWER9 permet de mesurer la le code de chemin de la configuration du système et de l'IPL, et ces mesures peuvent ultérieurement servir de preuve via l'attestation de la configuration d'IPL initial du système. Pour créer des mesures Core Root of Trust for these Measurements (CRTM), un flux Amorçage sécurisé est utilisé pour ajouter des vérifications cryptographique à chaque phase du processus d'IPL jusqu'à ce que la communication avec le module TPM (Trusted Platform Module) soit établie. Le flux Amorçage sécurisé garantit l'intégrité de tout le microprogramme qui doit être utilisé sur des processeurs coeur et, de ce fait, empêche l'exécution de tout microprogramme non autorisé modifié de manière malveillante. Un échec d'authentification du code à un point quelconque empêche le processus d'IPL d'aboutir.
La fonction Amorçage sécurisé des systèmes POWER9 établit la confiance via le processus d'amorçage de la plateforme. Ici, digne de confiance signifie que le code exécuté durant le processus d'IPL provient du fabricant de la plateforme, est signé par ce fabricant et n'a pas été modifié.
La protection du mode sécurisé disponible sur des serveurs à processeur POWER9 conserve la fiabilité en empêchant l'accès en lecture/écriture aux données client par le processeur FSP et les interfaces de service, en empêchant l'exécution de code non fiable sur le processeur hôte, et en conservant la confiance sur tous les points clé du processus d'amorçage sécurisé.
La fonction POWER9 Amorçage sécurisé implémente une chaîne de confiance basée processeur. Cette chaîne débute par un composant implicitement digne de confiance, tandis que d'autres composants sont authentifiés et leur intégrité est vérifiée avant qu'ils ne soient exécutés sur les coeurs du processeur hôte. Le code de vérification qui se trouve dans le processeur verrouillé de la mémoire moire Serial Electrically Erasable Programmable ROM (SEEPROM) valide la charge initiale du microprogramme. Le microprogramme vérifie les signatures cryptographiques de tout microprogramme ultérieur qui doit être sécurisé et qui est chargé pour exécution sur les coeurs processeur POWER9. Sur un système POWER9, les options de sécurité SEEPROM sont définies dans le code SBE (Self-Boot Engine) et fixées sur la ligne d'assemblage (fabricant) du système afin de fournir la base à la mise en application matérielle de flux d'IPL sécurisés. Des cavaliers de mode de sécurité physique sont disponibles sur le circuit électronique arrière d'un système. Ces cavaliers peuvent être utilisés pour remplacer les commutateur de mode sécurisé du processeur si une personne accède physiquement au système. Le processus d'IPL sécurisé améliore encore davantage le calcul sécurisé sur la plateforme Power.
Le diagramme suivant illustre les opérations d'un processus d'IPL STB.

La fonction Amorçage sécurisé établit le code de base SEEPROM, SBE et hostboot verrouillé (incluant une petite partie du code étendu d'amorçage hôte) comme racine Core Root of Trust for Measurement (CRTM), avec la chaîne de confiance étendue pour inclure Power Hypervisor (PHYP), le microprogramme de partition (PFW), une sélection de partitions adjointes (module TPM physique (pTPM), module TPM virtuel (vTPM), exécution d'amorçage hôte et adjoints de chiffrement), et un contrôleur OCC (On Chip Controller - gestion thermique). Ce domaine de confiance et la prise en charge de la sécurité matérielle des processeurs garantissent que les données client ne sont pas affichées ou modifiées via des mécanismes matériels ou de microprogramme.
La pile de microprogramme sécurisé complète est authentifiée via des images signées et est exécutée à des emplacements de mémoire sécurisés. Le processeur FSP est gardé hors du domaine de confiance du serveur hôte et il ne peut pas accéder aux registres ADU (Alter/Display Unit), d'autres registres protégés ou aux régions de mémoire sécurisées. Le moteur Self Boot Engine (SBE) applique le blocage du processeur FSP en filtrant la liste noire des fonctions SCOM de lecture/écriture dans les registres. Les fonctions SCOM sont activées par le commutateur d'accès sécurisé de la zone SEEPROM de la puce du processeur.
La figure suivante représente un environnement à amorçage sécurisé.

Quand le processus d'amorçage sécurisé débute, l'élément FSP envoie une demande d'amorçage et des détails sur le type d'amorçage aux puces processeur du système. En interne, les valeurs précédemment définies de l'état de la logique Amorçage sécurisé sont effacées pour partir d'un état connu approprié. Toute demande tempérée exécutée précédemment est également effacée de l'état. Des mécanismes de protection du matériel sont implémentées afin d'empêcher un agresseur informatique malveillant d'ignorer cette étape initiale. L'accès depuis le processeur FSP aux ressources de puce internes est verrouillé et le moteur d'amorçage sécurisé commence l'extraction du code d'initialisation depuis la mémoire qui est sur module, sécurisée, rémanent et verrouillée. Ce code effectue l'initialisation de base des puces et réinitialise le module TPM.
Une fois l'étape initiale du processus d'amorçage terminée, le moteur SBE (Self Boot Engine) charge le programme de chargement hostboot et le code de validation depuis la mémoire SEEPROM dans le cache de niveau 3 interne de la puce processeur. Un coeur de processeur est ensuite démarré et le programme de chargement d'amorçage extrait le code HBB (Host Boot Base) initial de la puce flash PNOR (Processor NOR) et le charge dans le cache L3. En mode sécurisé, le code de validation provenant du cache L3 est utilisé pour vérifier l'image HBB qui est à présent disponible dan le cache sécurisé. Une fois le code flash initial vérifié, le coeur de processeur continue d'exécuter le code validé depuis l'espace mémoire sécurisé et charge et valide les fonctions étendues HB (HBI). Une fois le HBI mesuré et la signature vérifiée et copiée, sa mesure (hachage d'image), indiquant l'authentification valide, est enregistrée dans le module TPM, comme indiqué par l'Etape 1 de la Figure Flux Secure and Trusted Boot. A ce stade, tout le code exécuté est entièrement contenu dans la puce flash PNOR et aucun autre mécanisme n'a accédé au système. Il s'agit de la frontière de l'amorçage sécurisé. En cas d'échec de la vérification, le système est immédiatement arrêté et est protégé par des mécanismes de protection du matériel afin d'empêcher l'exécution de code non fiable ou indésirable.
Le code HB gère ensuite les mises à jour en attente pour la mémoire rémanente sécurisée en utilisant une nouvelle image sécurisée. Pour protéger la mesure CRIM, le code HB verrouille la mémoire sécurisée, empêchant ainsi tout nouvel accès en écriture à cette mémoire (cette action signifie que, si le système est réamorcé, il revient à cet état de confiance). Le code HB initialise ensuite le contrôleur de mémoire sur puce et les barrettes DIMM. Le code HB initialise également d'autres puces directement connectées au processeur sur lequel il s'exécute, avant d'établir l'interface cohérente de mémoire avec les autres puces du système. Ces autres puces sont également vérifiées afin de s'assurer qu'elles sont dans un état sécurisé et digne de confiance.
Les composants supérieurs de la pile de microprogramme sont ensuite chargés, vérifiés, exécutés, et leurs mesures sont enregistrées dans le module TPM. Cette action termine l'Etape 2, indiquée à la Figure Flux Secure and Trusted Boot. A l'Etape 3 de la figure Flux Secure and Trusted Boot, le contenu de Power Hypervisor (PHYP) est chargé dans la mémoire principale. Le code est ensuite authentifié de manière cryptographique et après que l'authentification a abouti, l'hyperviseur PHYP débute son exécution. La mesure d'authentification du code PHYP est enregistrée dans le module TPM. De la même façon, les étapes 4 à 8 de la Figure Flux Secure and Trusted Boot sont effectuées pour charger le code depuis la mémoire flash déverrouillée vers la mémoire sécurisée, le code est authentifié de manière cryptographique, puis différents adjoints et microprogramme de partition sont exécutés.