L'ami de Mickey
La technologie de sécurité Pluton a été annoncée initialement en 2020 par Microsoft. Depuis, elle a été intégrée à un nombre croissant de processeurs, comme les Snapdragon X dans les PC Copilot+ et les processeurs AMD depuis la génération Zen 3. On apprend maintenant que la nouvelle série Core Ultra 2 d’Intel en dispose également. Mais de quoi parle-t-on ?
Comme l’indique Microsoft dans un billet publié le 30 janvier, la puce Pluton fait partie des engagements de la Secure Future Initiative, dont on en entend particulièrement depuis l’incident CrowdStrike. Il s’agit, dans les grandes lignes, d’un composant aussi bien matériel et logiciel, dont la mission est d’apporter une couche de sécurité supplémentaire. Elle peut épauler la puce TPM 2.0 ou même la remplacer, car elle en reprend la certification.
Bien que présente dans les processeurs, elle constitue un composant séparé, ne communiquant avec le CPU que par une seule voie dédiée, décrite comme sécurisée. La puce Pluton est prévue pour être résistante aux attaques par canal auxiliaire. Explications.
Comment fonctionne Pluton ?
Pluton fonctionne donc sur un matériel dédié. Lors de sa présentation initiale en 2020, Microsoft avait indiqué que les pirates s’en prenaient au canal de communication entre le processeur et la puce TPM 2.0, rendant l’ensemble vulnérable aux attaques par canal auxiliaire. Pluton a été conçue avec une autre approche.
Deux objectifs étaient présents : tenir compte de la prévalence des bugs liés à la mémoire, impliqués dans 70 % des failles de sécurité, et faire en sorte que la sécurité puisse évoluer pour tenir compte des nouvelles menaces tout au long du cycle de vie des ordinateurs.
Pluton désigne ainsi un ensemble comprenant le matériel, le firmware et le logiciel. Le firmware joue un rôle essentiel. Point intéressant d’ailleurs, Microsoft ne l’a pas écrit depuis une page blanche. L’éditeur a repris un projet open source, baptisé Tock OS et intégralement écrit en Rust. Le langage, largement mis en avant pour ses capacités « memory safe », intéresse nettement Microsoft depuis plusieurs années. Dans Windows 11, le noyau de la version 24H2 du système en contient également.
Dans ce modèle, les fonctions liées à la puce TPM sont considérées comme relevant du mode client et s’exécutent comme applications en mode utilisateur, donc en dehors du noyau Tock. La puce Pluton possède son propre microcontrôleur et le démarrage se fait à partir d’une ROM (Read-only memory) spécifique. Après quoi, le firmware est chargé en SRAM (Static random-access memory) pour que son intégrité y soit vérifiée. En cas de validation, le firmware est exécuté.
Tous ces composants sont physiquement isolés du reste du processeur. Dans cette configuration, les attaques par canal auxiliaire visant la DRAM (Dynamic random-access memory) du système central ne fonctionnent pas avec Pluton. L’isolation se fait à tous les niveaux : mémoire et interface matérielle sont dédiées.
Complément ou remplaçant de la puce TPM ?
La puce Pluton possède en outre un matériel spécifique aux fonctions de sécurité, dont un générateur de nombres pseudo-aléatoires et des accélérateurs pour des algorithmes cryptographiques (comme SHA-2, AES, RSA et ECC). Contrairement à la puce TPM, les opérations de sécurité prises en charge par Pluton sont circonscrites dans son matériel et ne peuvent pas être perturbées par le CPU.
L’architecture de Pluton en fait une sorte de forteresse isolée, qui exécute ses tâches dans son coin. L’inverse est également vrai : Pluton n’a pas la main sur le processeur et ne peut ni contrôler ni intercepter un code qui s’exécuterait sur un ou plusieurs cœurs du CPU. Il vient compléter les mécanismes de sécurité existants (comme DMA) et possède ses propres restrictions IOMMU. En contrepartie, Pluton « peut effectuer des opérations sur les informations stockées isolées de tout code fonctionnant sur les cœurs de l’unité centrale ».
Bien que certaines capacités soient reprises des puces TPM, Pluton doit en compléter les missions. Toutefois, puisque Pluton est certifiée TPM, elle peut remplacer cette dernière. De fait, « les équipementiers ont la possibilité d’utiliser Pluton comme TPM pour le système ou d’exposer l’interface utilisateur dans les paramètres BIOS de l’appareil pour permettre au client de choisir Pluton ou une autre option TPM si elle est présente pour son appareil », précise Microsoft.
Chacun son implémentation
Microsoft ne fournit pas la puce aux entreprises. À la place, elle donne un schéma directeur, auquel des sociétés comme AMD, Intel et Qualcomm se réfèrent pour construire leur propre implémentation, assurant la compatibilité de Windows 11 (le seul à exploiter pleinement Pluton) avec tous les processeurs concernés.
Chez Intel par exemple, on a d’abord vu le CSME (Converged Security & Manageability Engine, percé en 2020), complété par le Silicon Security Engine (SSE) et le Graphics Security Controller (GSC). La série Core Ultra 2, sortie en fin d’année dernière, contient le Partner Security Engine (PSE), qui contient l’implémentation de Pluton, comme l’a expliqué Intel dans un billet également publié le 30 janvier.
Chez AMD, Pluton est présente depuis la série Ryzen 6000, dont les processeurs ont reçu la certification FIPS 140 - 3. Tous les PC Copilot+ intégrant une puce de la série Ryzen AI 300 sont également compatibles avec Pluton. Nous avons d’ailleurs demandé à Microsoft s’il y a eu du changement depuis les premières implémentations de Pluton il y a trois ans et si les Ryzen 6000 auront droit aux mêmes traitements que les Ryzen AI 300. Nous mettrons à jour cette actualité lorsque nous aurons la réponse.
Chez Qualcomm, tous les Snapdragon X et le Snapdragon 8cx Gen 3 intègrent Pluton.
Des mises à jour régulières
Cette question des mises à jour est fondamentale dans l’approche de Microsoft. La capacité de faire évoluer le logiciel pour tenir compte des nouvelles menaces faisait partie des impératifs lors de la conception de Pluton. « Le renouvellement des microprogrammes garantit une protection et une fiabilité élevées », affirme ainsi l’éditeur.
La question se pose d’emblée d’une éventuelle vulnérabilité qui pourrait permettre une mise à jour malveillante du firmware. Microsoft assure que toutes les protections possibles sont en place, dont une vérification de l’intégrité du code et une barrière empêchant le retour à une ancienne version. Ce dernier point intervient souvent dans les contournements de TPM, comme nous l’avons encore vu récemment.
On comprend cependant, à la lecture du billet, que ces capacités de protection varient selon la machine. Microsoft évoque par exemple des fonctions matérielles avancées pouvant encore renforcer la résistance du système… lorsque qu’elles sont disponibles. De même, le firmware « utilise le stockage des clés matérielles (s’il est disponible) pour mieux protéger les clés, de sorte qu’un microprogramme compromis ne puisse pas extraire les informations des clés secrètes ».
La possibilité de déployer de nouveaux firmwares à un nombre croissant de machines peut également rappeler la grande panne CrowdStrike. Même si le contexte et les technologies en présence n’étaient pas les mêmes, des problèmes surgissent déjà régulièrement avec les mises à jour déployées mensuellement par Microsoft. Nous avons aussi soulevé ce point avec Microsoft et attendons une réponse.
Encore des évolutions à venir
Puisque l’on parle de mises à jour, Microsoft précise dans son billet déjà travailler à la suite. La prochaine nouveauté annoncée est la compatibilité de Pluton avec KSP, pour Key Storage Provider. Cette API permet aux éditeurs tiers de tirer parti des capacités cryptographiques de Windows pour leurs propres applications.
Cette compatibilité pourra être exploitée, que Pluton soit configurée comme soutien à la puce TPM ou comme seule solution de sécurité matérielle. Microsoft n’y voit bien sûr que des avantages, puisque l’API est déjà connue des développeurs et que son utilisation permet une interface commune pour les utilisateurs. L’éditeur ajoute que ses équipes Entra et Intune travaillent actuellement sur l’intégration au KSP de Pluton.
Pas sans polémique
Si les billets de Microsoft et Intel sont dithyrambiques sur les apports en sécurité, le sujet Pluton est souvent sensible, notamment chez les utilisateurs de distributions Linux, comme Phoronix le rappelle. Il est essentiellement reproché à Pluton de fonctionner comme une boite noire, sans vision claire de ce qui se passe à l’intérieur. Contrairement à TPM 2.0, qui dispose d’une documentation publique.
En outre, cette puce, présentée comme l’aboutissement d’une vision Zero Trust, est également pensée pour le cloud. Certains, pessimistes, y voient l’ébauche d’un avenir dans lequel Microsoft progresserait encore vers des PC ne pouvant plus fonctionner sans les serveurs de l’entreprise. On en est encore loin, car Pluton fonctionne exclusivement en local.
Une autre question émerge : la puce Pluton pourrait-elle un jour devenir obligatoire pour une future version de Windows, comme la puce TPM 2.0 l’est aujourd’hui pour Windows 11, avec tous les problèmes que cela engendre ? Microsoft ne change pas d’avis sur le sujet, pour des questions de sécurité. Mais cette même intransigeance pourrait valoir à l’entreprise un problème de sécurité encore plus grand, puisque les deux tiers du parc Windows sont encore sous Windows 10. Nous avons en tout cas posé la question à Microsoft et mettrons cette actualité à jour si l’éditeur nous répond.