Un module de plateforme sécurisée ( TPM ) est un cryptoprocesseur sécurisé conforme à la norme ISO/IEC 11889. Il sert notamment à vérifier que le processus de démarrage s'effectue à partir d'une combinaison matérielle et logicielle de confiance et à stocker les clés de chiffrement du disque .
L'implémentation de TPM 2.0 fait partie des exigences système de Windows 11.
Histoire
La première version TPM déployée était la 1.1b en 2003.
Le module de plateforme sécurisée (TPM) a été conçu par un consortium de l'industrie informatique appelé Trusted Computing Group (TCG). Il a évolué vers la spécification principale TPM version 1.2 , normalisée par l'Organisation internationale de normalisation (ISO) et la Commission électrotechnique internationale (CEI) en 2009 sous la référence ISO/CEI 11889:2009. La spécification principale TPM version 1.2 a été finalisée le 3 mars 2011, achevant ainsi sa révision.
Le 9 avril 2014, le Trusted Computing Group a annoncé une mise à jour majeure de sa spécification intitulée TPM Library Specification 2.0 . Le groupe poursuit ses travaux sur la norme en intégrant des errata, des ajouts algorithmiques et de nouvelles commandes, sa version la plus récente ayant été publiée en tant que 2.0 en novembre 2019. Cette version est devenue la norme ISO/IEC 11889:2015.
Lorsqu'une nouvelle révision est publiée, elle est divisée en plusieurs parties par le Trusted Computing Group. Chaque partie consiste en un document qui constitue l'intégralité de la nouvelle spécification TPM.
- Partie 1 Architecture (anciennement Principes de conception)
- Partie 2 Structures du TPM
- Partie 3 Commandes
- Partie 4 : Routines de support (ajoutées dans TPM 2.0)
Différences entre les versions
Bien que la norme TPM 2.0 couvre de nombreux cas d'utilisation similaires et présente des fonctionnalités comparables, les détails diffèrent. La norme TPM 2.0 n'est pas rétrocompatible avec la norme TPM 1.2.
| Spécification | TPM 1.2 | TPM 2.0 |
|---|---|---|
| Architecture | Une spécification complète est censée comprendre un profil de protection spécifique à la plateforme faisant référence à une bibliothèque TPM 1.2 commune en trois parties. En pratique, seul un profil de protection pour PC client a été créé pour TPM 1.2. Des profils de protection pour PDA et appareils cellulaires devaient être définis, mais n'ont jamais été publiés. | Une spécification complète comprend une spécification spécifique à la plateforme qui fait référence à une bibliothèque TPM 2.0 commune en quatre parties. Les spécifications spécifiques à la plateforme définissent les parties de la bibliothèque obligatoires, optionnelles ou interdites pour cette plateforme ; elles détaillent également les autres exigences. Les spécifications spécifiques à la plateforme incluent PC Client, mobile, et Automotive-Thin. |
| Algorithmes | SHA-1 et RSA sont requis. AES est optionnel. Triple DES était autrefois un algorithme optionnel dans les versions précédentes de TPM 1.2, mais a été supprimé de la version 103 de TPM 1.2. La fonction de génération de masque basée sur le hachage MGF1, définie dans PKCS#1, est requise. | La spécification du profil TPM de la plateforme client PC (PTP) exige SHA-1 et SHA-256 pour les fonctions de hachage ; RSA et ECC utilisant la courbe NIST P-256 pour la cryptographie à clé publique et la génération et la vérification de signatures numériques asymétriques ; HMAC pour la génération et la vérification de signatures numériques symétriques ; AES 128 bits pour l’algorithme de chiffrement symétrique ; et la fonction de génération de masque basée sur le hachage MGF1 définie dans PKCS#1 . De nombreux autres algorithmes sont également définis, mais sont optionnels. Il est à noter que Triple DES a été ajouté à la bibliothèque TPM 2.0, mais avec des restrictions pour rejeter les clés faibles . De plus, l’attestation anonyme directe par cryptographie elliptique (ECDAA) utilisant les courbes ECC de Barreto-Naehrig, qui était obligatoire dans les versions précédentes, est devenue optionnelle dans la version 1.59 du profil client PC. |
| Primitives cryptographiques | Un générateur de nombres aléatoires , un algorithme cryptographique à clé publique , une fonction de hachage cryptographique , une fonction de génération de masque, la génération et la vérification de signatures numériques , ainsi qu'une attestation anonyme directe sont nécessaires. Les algorithmes à clé symétrique et l'opérateur OU exclusif sont optionnels. La génération de clés est également requise. | Un générateur de nombres aléatoires , des algorithmes de cryptographie à clé publique , des fonctions de hachage cryptographiques , des algorithmes à clé symétrique , la génération et la vérification de signatures numériques , des fonctions de génération de masques et l'opérateur OU exclusif sont requis par la spécification TCG PC Client Platform TPM Profile (PTP). L'attestation anonyme directe basée sur la correction d'erreurs ( ECC ) utilisant la courbe de Barreto-Naehrig 256 bits est optionnelle pour cette spécification. La spécification de la bibliothèque commune TPM 2.0 requiert également des fonctions de génération et de dérivation de clés . |
| Hiérarchie | Un (stockage) | Trois (plateforme, stockage et approbation) |
| Clés racine | Un (SRK RSA-2048) | Plusieurs clés et algorithmes par hiérarchie |
| Autorisation | HMAC , PCR, localité, présence physique | Mot de passe, HMAC et politique (qui couvre HMAC, PCR, la localité et la présence physique). |
| NVRAM | Données non structurées | Données non structurées, compteur, bitmap, extension, réussite et échec du code PIN |
L’autorisation basée sur la politique TPM 2.0 comprend le HMAC 1.2, la localité, la présence physique et le PCR. Elle ajoute l’autorisation par signature numérique asymétrique, indirection vers un autre secret d’autorisation, compteurs et limites de temps, valeurs NVRAM, commande ou paramètres de commande spécifiques et présence physique. Elle permet la combinaison des opérateurs ET et OU de ces primitives d’autorisation pour construire des politiques d’autorisation complexes.
Aperçu

Le module de plateforme sécurisée (TPM) fournit :
- Un générateur de nombres aléatoires matériel
- Installations permettant la génération sécurisée de clés cryptographiques à usage limité.
- Attestation à distance : Génère un résumé de la configuration matérielle et logicielle sous forme de clé de hachage quasi infalsifiable . Ce hachage permet de vérifier que le matériel et les logiciels n'ont pas été modifiés. Le logiciel chargé du hachage détermine l'étendue du résumé.
- Liaison : Les données sont chiffrées à l’aide de la clé de liaison TPM, une clé RSA unique dérivée d’une clé de stockage. Les ordinateurs intégrant un TPM peuvent créer des clés cryptographiques et les chiffrer afin qu’elles ne puissent être déchiffrées que par le TPM. Ce processus, souvent appelé chiffrement ou liaison de clé, contribue à protéger la clé contre toute divulgation. Chaque TPM possède une clé de chiffrement principale, appelée clé racine de stockage, qui est stockée au sein même du TPM. Les conteneurs de clés RSA au niveau utilisateur sont stockés avec le profil utilisateur Windows de chaque utilisateur et peuvent être utilisés pour chiffrer et déchiffrer les informations des applications exécutées sous cette identité utilisateur.
- Stockage scellé : Spécifie l'état du TPM pour les données à déchiffrer (non scellées).
- Autres fonctions de calcul de confiance pour les données à déchiffrer (déverrouillées).
Les programmes informatiques peuvent utiliser un module TPM pour l' authentification des périphériques matériels, car chaque puce TPM possède une clé d'approbation (EK) unique et secrète intégrée lors de sa fabrication. La sécurité intégrée au matériel offre une protection supérieure à celle d'une solution purement logicielle. Son utilisation est restreinte dans certains pays.
Utilisations
Intégrité de la plateforme

tpm2-softwaremontrant la lecture des registres de configuration de la plateforme (PCR), le résultat getrandom pris du périphérique TPM et la version TPM (2.0)Le rôle principal du TPM est de garantir l' intégrité de la plateforme lors du démarrage. Dans ce contexte, « intégrité » signifie « fonctionnement conforme aux attentes », et une « plateforme » désigne tout périphérique informatique, quel que soit son système d'exploitation . Ceci permet de s'assurer que le processus de démarrage commence à partir d'une combinaison matérielle et logicielle fiable et se poursuit jusqu'à ce que le système d'exploitation soit entièrement démarré et que les applications soient en cours d'exécution.
Lorsque la technologie TPM est utilisée, le micrologiciel et le système d'exploitation sont responsables de garantir l'intégrité.
Par exemple, l' interface UEFI (Unified Extensible Firmware Interface ) peut utiliser le TPM (Talk Module Module) pour établir une racine de confiance : le TPM contient plusieurs registres de configuration de la plateforme (PCR) qui permettent le stockage et la transmission sécurisés de métriques pertinentes pour la sécurité. Ces métriques peuvent servir à détecter les modifications apportées aux configurations précédentes et à déterminer la marche à suivre. On trouve des exemples d'utilisation dans LUKS ( Linux Unified Key Setup ) , BitLocker et le chiffrement de la mémoire PrivateCore vCage. (Voir ci-dessous.)
Un autre exemple d’intégrité de la plateforme via TPM est l’utilisation des licences Microsoft Office 365 et d’Outlook Exchange.
Un autre exemple d’utilisation du TPM pour l’intégrité de la plateforme est la technologie d’exécution de confiance (TXT), qui crée une chaîne de confiance. Elle pourrait attester à distance qu’un ordinateur utilise le matériel et les logiciels spécifiés.
Cryptage du disque
Les utilitaires de chiffrement de disque complet , tels que dm-crypt , peuvent utiliser cette technologie pour protéger les clés utilisées pour chiffrer les périphériques de stockage de l'ordinateur et fournir une authentification d'intégrité pour un chemin de démarrage de confiance qui comprend le micrologiciel et le secteur de démarrage .
Mises en œuvre

Ordinateurs portables et notebooks
En 2006, les nouveaux ordinateurs portables ont commencé à être commercialisés avec une puce TPM intégrée. À l'avenir, cette technologie pourrait être intégrée à une puce de carte mère existante , ou à tout autre appareil compatible, comme un téléphone portable . Sur un PC, la connexion à la puce TPM se fait soit par le bus LPC ( Low Pin Count ), soit par le bus SPI ( Serial Peripheral Interface ).
Le Trusted Computing Group (TCG) a certifié les puces TPM fabriquées par Infineon Technologies , Nuvoton et STMicroelectronics , ayant attribué des identifiants de fournisseur TPM à Advanced Micro Devices , Atmel , Broadcom , IBM , Infineon, Intel , Lenovo , National Semiconductor , Nationz Technologies, Nuvoton, Qualcomm , Rockchip , Standard Microsystems Corporation , STMicroelectronics, Samsung , Sinosun, Texas Instruments et Winbond .
TPM 2.0
Il existe cinq types différents d'implémentations TPM 2.0 (classées de la plus sécurisée à la moins sécurisée) :
- Les TPM discrets (dTPM) sont des puces dédiées qui implémentent la fonctionnalité TPM dans leur propre boîtier semi-conducteur inviolable. Ils offrent la sécurité la plus élevée, certifiés FIPS-140 avec un niveau de sécurité physique 3 , contrairement aux routines implémentées par logiciel. Leurs boîtiers doivent par ailleurs intégrer une certaine résistance à la falsification. Par exemple, le TPM du contrôleur de freinage d'une voiture est protégé contre le piratage par des méthodes sophistiquées
- Les modules TPM intégrés (iTPM) font partie d'une autre puce. Bien qu'ils utilisent un matériel résistant aux bogues logiciels, ils ne sont pas tenus d'assurer une protection contre la falsification. Intel a intégré des modules TPM dans certains de ses chipsets .
- Les modules TPM intégrés au firmware (fTPM) sont des solutions basées sur le firmware (par exemple, l'UEFI ) qui s'exécutent dans l' environnement d'exécution sécurisé du processeur . Intel, AMD et Qualcomm ont implémenté des modules TPM intégrés au firmware.
- Les modules TPM virtuels (vTPM) sont fournis par des hyperviseurs et s'appuient sur eux dans des environnements d'exécution isolés, invisibles pour les logiciels exécutés au sein des machines virtuelles, afin de protéger leur code des logiciels de ces machines virtuelles. Ils peuvent offrir un niveau de sécurité comparable à celui d'un module TPM intégré au firmware. Google Cloud Platform a implémenté les vTPM.
- Les TPM logiciels sont des émulateurs logiciels de TPM qui s'exécutent sans plus de protection qu'un programme classique au sein d'un système d'exploitation. Ils dépendent entièrement de leur environnement d'exécution et n'offrent donc pas plus de sécurité que ce dernier. Ils sont utiles à des fins de développement.
Source libre
L’implémentation de référence officielle TCG de la spécification TPM 2.0 a été développée par Microsoft . Elle est distribuée sous licence BSD et son code source est disponible sur GitHub .
En 2018, Intel a rendu public son module logiciel Trusted Platform Module 2.0 (TPM2), compatible avec Linux et Microsoft Windows. Le code source est hébergé sur GitHub et distribué sous licence BSD .
Infineon a financé le développement d'un middleware TPM open source conforme à la spécification ESAPI (Enhanced System API) de la pile logicielle (TSS) du TCG. Il a été développé par l'Institut Fraunhofer pour les technologies de l'information sécurisées (SIT).
Le logiciel TPM 2.0 d' IBM est une implémentation de la spécification TCG TPM 2.0. Il est basé sur les parties 3 et 4 de la spécification TPM et sur le code source fourni par Microsoft. Il contient des fichiers supplémentaires pour compléter l'implémentation. Le code source est hébergé sur SourceForge et GitHub et distribué sous licence BSD.
En 2022, AMD a annoncé que, dans certaines circonstances, son implémentation fTPM pouvait entraîner des problèmes de performances. Un correctif est disponible sous la forme d'une mise à jour du BIOS .
Critique
Le Trusted Computing Group (TCG) a rencontré des résistances quant au déploiement de cette technologie dans certains domaines, où certains auteurs entrevoient des utilisations possibles non spécifiquement liées au Trusted Computing , susceptibles de soulever des problèmes de confidentialité. Ces préoccupations incluent l'abus de la validation à distance des logiciels pour décider quels logiciels sont autorisés à s'exécuter, ainsi que les possibilités de suivre les actions de l'utilisateur et de les enregistrer dans une base de données de manière totalement indétectable pour ce dernier.
L' utilitaire de chiffrement de disque TrueCrypt , ainsi que son dérivé VeraCrypt , ne prennent pas en charge le TPM. Les développeurs originaux de TrueCrypt estimaient que le but exclusif du TPM est de « protéger contre les attaques nécessitant des privilèges d'administrateur ou un accès physique à l'ordinateur ». Un attaquant disposant d'un tel accès peut contourner le TPM, par exemple en installant un enregistreur de frappe matériel , en réinitialisant le TPM ou en capturant le contenu de la mémoire et en récupérant les clés émises par le TPM. Le texte critique va jusqu'à affirmer que le TPM est totalement inutile. L'éditeur de VeraCrypt a repris cette allégation à l'identique, remplaçant simplement « TrueCrypt » par « VeraCrypt ». L'auteur a raison : une fois l'accès physique illimité ou les privilèges d'administrateur obtenus, le contournement des autres mesures de sécurité n'est qu'une question de temps. Toutefois, l’arrêt d’un attaquant disposant de privilèges d’administrateur n’a jamais été l’un des objectifs du TPM (voir § Utilisations pour plus de détails), et le TPM peut empêcher certaines manipulations physiques .
En 2015, Richard Stallman a suggéré de remplacer le terme « informatique de confiance » par celui d’« informatique perfide », compte tenu du risque qu’un ordinateur puisse être amené à désobéir systématiquement à son propriétaire si les clés cryptographiques lui sont cachées. Il considère également que les modules TPM disponibles pour PC en 2015 ne présentent pas de danger et qu’il n’y a aucune raison de ne pas en intégrer un dans un ordinateur ou de ne pas le prendre en charge par logiciel, en raison des échecs de l’industrie à utiliser cette technologie pour la gestion des droits numériques (DRM) . En revanche, le TPM2, sorti en 2022, représente précisément la menace d’« informatique perfide » qu’il avait dénoncée.
En août 2023, Linus Torvalds , frustré par les problèmes de saccades du fTPM d'AMD, a déclaré : « Désactivons tout simplement ce fichu fTPM hwrnd. » Il a ajouté que la génération de nombres aléatoires basée sur le processeur rdrandétait tout aussi convenable, malgré ses propres bugs.
Problèmes de sécurité
En 2010, Christopher Tarnovsky a présenté une attaque contre les TPM lors des Black Hat Briefings , où il a affirmé être capable d'extraire des secrets d'un seul TPM. Il a réussi à le faire après 6 mois de travail en insérant une sonde et en espionnant un bus interne du PC Infineon SLE 66 CL.
En cas d'accès physique, les ordinateurs équipés d'un module TPM 1.2 sont vulnérables aux attaques par démarrage à froid tant que le système est allumé ou peut être démarré sans mot de passe depuis l'arrêt, la veille ou l'hibernation , ce qui est la configuration par défaut des ordinateurs Windows avec chiffrement complet du disque BitLocker. Un correctif a été proposé et intégré aux spécifications du module TPM 2.0.
En 2009, le concept de données d'autorisation partagées dans TPM 1.2 s'est révélé défectueux. Un adversaire ayant accès à ces données pouvait falsifier les réponses du TPM. Une solution a été proposée et intégrée aux spécifications de TPM 2.0.
En 2015, dans le cadre des révélations de Snowden , il a été révélé qu'en 2010, une équipe de la CIA américaine avait affirmé lors d'une conférence interne avoir mené une attaque par analyse de puissance différentielle contre des TPM qui avait permis d'extraire des secrets.
Les principales distributions Trusted Boot (tboot) antérieures à novembre 2017 sont affectées par une attaque de racine de confiance dynamique pour la mesure (DRTM) CVE - 2017-16837 , qui affecte les ordinateurs fonctionnant sur la technologie d'exécution de confiance (TXT) d'Intel pour la routine de démarrage.
En octobre 2017, il a été révélé qu'une bibliothèque de code développée par Infineon , largement utilisée dans ses TPM, contenait une vulnérabilité, appelée ROCA , générant des paires de clés RSA faibles permettant de déduire les clés privées à partir des clés publiques . De ce fait, tous les systèmes reposant sur la confidentialité de ces clés faibles sont vulnérables à des compromissions telles que l'usurpation d'identité . Les cryptosystèmes stockant les clés de chiffrement directement dans le TPM sans masquage pourraient être particulièrement exposés à ce type d'attaques, car les mots de passe et autres éléments de sécurité deviendraient inutiles si les attaquants parvenaient à extraire les secrets de chiffrement. Infineon a publié des mises à jour du firmware pour ses TPM à destination des fabricants qui les utilisaient.
En 2018, une faille de conception dans la spécification TPM 2.0 relative à la racine de confiance statique pour les mesures (SRTM) a été signalée ( CVE - 2018-6622 ). Cette faille permet à un attaquant de réinitialiser et de falsifier les registres de configuration de la plateforme, conçus pour stocker de manière sécurisée les mesures logicielles utilisées pour l'amorçage d'un ordinateur. La correction de cette faille nécessite des correctifs de firmware spécifiques au matériel. Un attaquant exploite les interruptions d'alimentation et les restaurations d'état du TPM pour tromper ce dernier et lui faire croire qu'il fonctionne sur des composants non altérés.
En 2021, le groupe Dolos a démontré qu'une attaque ciblant un module TPM discret présentait une certaine résistance à la falsification, contrairement aux autres points d'extrémité de son bus de communication. Ils ont ainsi pu lire une clé de chiffrement de disque complète lors de sa transmission sur la carte mère et l'utiliser pour déchiffrer le SSD de l'ordinateur portable.
Disponibilité
À partir de 2025, la quasi-totalité des fabricants de PC et d'ordinateurs portables intègrent un module TPM dans leurs produits.
Parmi les fournisseurs figurent :
- Infineon fournit à la fois des puces TPM et des logiciels TPM, livrés en version OEM avec les nouveaux ordinateurs et séparément par Infineon pour les produits dotés de la technologie TPM et conformes aux normes TCG. Par exemple, Infineon a concédé une licence pour son logiciel de gestion TPM à Broadcom Corp. en 2004.
- Microchip (anciennement Atmel) fabrique des modules TPM qu'elle affirme être conformes à la spécification Trusted Platform Module version 1.2 révision 116 et qu'elle propose avec plusieurs interfaces (LPC, SPI et I²C ) , modes (certifié FIPS 140-2 et mode standard), classes de température (commerciale et industrielle) et boîtiers (TSSOP et QFN). Ses modules TPM sont compatibles avec les PC et les systèmes embarqués. Elle fournit également des kits de développement TPM pour faciliter l'intégration de ses modules TPM dans diverses conceptions embarquées.
- Nuvoton Technology Corporation fournit des modules TPM pour applications PC. Nuvoton propose également des modules TPM pour systèmes embarqués et applications Internet des objets (IoT) via les interfaces hôtes I²C et SPI. Les modules TPM de Nuvoton sont conformes aux Critères communs (CC) avec le niveau d'assurance EAL 4, complété par ALC_FLR.1, AVA_VAN.4 et ALC_DVS.2, à la norme FIPS 140-2 niveau 2 avec sécurité physique et niveau 3 EMI/EMC, ainsi qu'aux exigences de conformité du Trusted Computing Group , le tout intégré dans un seul composant. Les modules TPM produits par Winbond font désormais partie de la gamme Nuvoton.
- Depuis 2005, STMicroelectronics fournit des modules TPM pour PC et systèmes embarqués. Son offre de produits [ des composants discrets dotés de plusieurs interfaces, notamment SPI ( Serial Peripheral Interface ) et I²C , et disponibles en différents niveaux de qualification (grand public, industriel et automobile). Ces modules TPM sont certifiés Common Criteria (CC) EAL4+ avec ALC_FLR.1 et AVA_VAN.5, FIPS 140-2 niveau 2 avec niveau de sécurité physique 3, et TCG ( Trusted Computing Group ).
Il existe également des types hybrides ; par exemple, le TPM peut être intégré à un contrôleur Ethernet , éliminant ainsi le besoin d’un composant séparé sur la carte mère.
Mise à niveau sur le terrain
La mise à niveau sur site est le terme TCG désignant la mise à jour du firmware TPM. Cette mise à jour peut s'effectuer entre TPM 1.2 et TPM 2.0, ou entre différentes versions de firmware. Certains fournisseurs limitent le nombre de transitions entre les versions 1.2 et 2.0, et d'autres interdisent le retour aux versions précédentes. Les constructeurs de plateformes, tels que HP fournissent un outil de mise à niveau.
Depuis le 28 juillet 2016, tous les nouveaux modèles, gammes ou séries d'appareils Microsoft (ou la mise à jour de la configuration matérielle d'un modèle, d'une gamme ou d'une série existante avec une mise à jour majeure, telle que le processeur ou les cartes graphiques) implémentent et activent par défaut le TPM 2.0.
Alors que les composants TPM 1.2 sont des composants en silicium discrets, généralement soudés sur la carte mère, le TPM 2.0 est disponible sous forme de composant en silicium discret (dTPM) dans un seul boîtier semi-conducteur, de composant intégré incorporé dans un ou plusieurs boîtiers semi-conducteurs - aux côtés d'autres unités logiques dans le(s) même(s) boîtier(s), et de composant basé sur un firmware (fTPM) fonctionnant dans un environnement d'exécution de confiance (TEE) sur un système sur puce (SoC) à usage général.
TPM virtuel
- Google Compute Engine a été le premier grand fournisseur de cloud à proposer des modules TPM virtualisés (vTPM) dans le cadre de son produit Shielded VMs. Amazon Web Services a suivi en 2022, en nommant son offre vTPM « Nitro TPM ».
- La bibliothèque libtpms assure l'émulation logicielle d'un module de plateforme sécurisée (TPM 1.2 et TPM 2.0). Elle vise l'intégration des fonctionnalités TPM dans les hyperviseurs, principalement dans Qemu.
Systèmes d'exploitation
- Windows 11 requiert la prise en charge de TPM 2.0 comme configuration système minimale. Sur de nombreux systèmes, TPM est désactivé par défaut, ce qui nécessite de modifier les paramètres UEFI de l'ordinateur pour l'activer.
- Windows 8 et versions ultérieures prennent en charge nativement le TPM 2.0.
- Windows 7 peut installer un correctif officiel pour ajouter la prise en charge du TPM 2.0.
- Windows Vista à Windows 10 prennent en charge nativement la norme TPM 1.2.
- Le noyau Linux prend en charge le module de plateforme sécurisée 2.0 (TPM 2.0) depuis la version 4.0 (2015).
Plateformes
- Google intègre des modules TPM dans les Chromebooks dans le cadre de son modèle de sécurité.
- Oracle intègre des modules TPM dans ses systèmes des séries X et T, tels que les serveurs des séries T3 et T4. La prise en charge est incluse dans Solaris 11.
- En 2006, avec l'introduction des premiers modèles Macintosh équipés de processeurs Intel, Apple a commencé à livrer des Mac avec TPM. Apple n'a jamais fourni de pilote officiel, mais un portage sous licence GPL était disponible. Apple n'a plus livré d'ordinateur avec TPM depuis 2006. À partir de 2016, les produits Apple ont commencé à intégrer le composant matériel de confiance d'Apple, appelé « Secure Enclave », initialement sous forme de puce distincte, puis intégré aux processeurs Apple Silicon. Secure Enclave n'est pas compatible avec le TPM.
- En 2011, le fabricant taïwanais MSI a lancé sa tablette Windpad 110W dotée d'un processeur AMD et d'une plateforme de sécurité TPM Infineon, livrée avec la version 3.7 du logiciel de contrôle. La puce est désactivée par défaut, mais peut être activée grâce au logiciel préinstallé inclus.
Virtualisation
- L’hyperviseur VMware ESXi prend en charge le TPM depuis la version 4.x et, à partir de la version 5.0, il est activé par défaut.
- L'hyperviseur Xen prend en charge les TPM virtualisés. Chaque machine virtuelle invitée dispose de son propre TPM logiciel émulé.
- KVM , associé à QEMU , prend en charge les TPM virtualisés. Depuis 2012, il permet de transférer la puce TPM physique à une seule machine virtuelle dédiée. QEMU 2.11, sorti en décembre 2017, fournit également des TPM émulés aux machines virtuelles.
- VirtualBox prend en charge les périphériques TPM 1.2 et 2.0 virtuels à partir de la version 7.0 publiée en octobre 2022.
Logiciel
- Les systèmes d'exploitation Microsoft Windows Vista et versions ultérieures utilisent la puce TPM conjointement avec le composant de chiffrement de disque intégré nommé BitLocker . Microsoft avait annoncé qu'à compter du 1er janvier 2015, tous les ordinateurs devraient être équipés d'un module TPM 2.0 pour obtenir la certification matérielle Windows 8.1 . Cependant, lors d'une révision du programme de certification Windows en décembre 2014, cette exigence est devenue facultative. Le TPM 2.0 est néanmoins requis pour les systèmes de secours connectés . Les machines virtuelles exécutées sur Hyper-V peuvent disposer de leur propre module TPM virtuel à partir de Windows 10 1511 et Windows Server 2016. Microsoft Windows inclut deux commandes relatives au TPM : tpmtool , un utilitaire permettant de récupérer des informations sur le TPM, et tpmvscmgr , un outil en ligne de commande permettant de créer et de supprimer des cartes à puce virtuelles TPM sur un ordinateur.
Clés d'approbation
Les clés d'approbation (EK) des modules TPM sont des paires de clés asymétriques uniques à chaque module. Elles utilisent les algorithmes RSA et ECC . Le fabricant du module TPM stocke généralement les certificats de clés d'approbation dans la mémoire non volatile du module . Ces certificats attestent de l'authenticité du module. À partir du module TPM 2.0, les certificats sont au format X.509 DER . Une fois le module TPM fabriqué, les clés d'approbation ne peuvent plus être modifiées. Pour les modules TPM fonctionnels (fTPM), les clés d'approbation sont stockées dans le processeur/chipset lors de sa fabrication.
Ces fabricants fournissent généralement leurs certificats racine (et parfois intermédiaires) d'autorité de certification sur leurs sites web.
Bibliothèques logicielles
Pour utiliser un module TPM, l'utilisateur a besoin d'une bibliothèque logicielle qui communique avec le module et offre une API plus conviviale que la communication directe avec le module. Il existe actuellement plusieurs bibliothèques TPM 2.0 open source de ce type. Certaines prennent également en charge le TPM 1.2, mais les puces TPM 1.2 sont désormais obsolètes et le développement moderne se concentre sur le TPM 2.0.
En général, une bibliothèque TPM fournit une API avec des correspondances directes avec les commandes TPM. La spécification TCG nomme cette couche API système (SAPI). Ainsi, l'utilisateur dispose d'un contrôle accru sur les opérations TPM, mais la complexité est élevée. Pour simplifier cette complexité, la plupart des bibliothèques proposent également des méthodes plus simples pour invoquer des opérations TPM complexes. La spécification TCG nomme ces deux couches API système améliorée (ESAPI) et API de fonctionnalités (FAPI).
Actuellement, une seule pile respecte la spécification TCG. Toutes les autres bibliothèques TPM open source disponibles utilisent leur propre API plus riche.
| Bibliothèques TPM | API | TPM 2.0 | TPM 1.2 | Serveur d'attestation ou exemple | Microsoft Windows | Linux | Métal nu |
|---|---|---|---|---|---|---|---|
| tpm2-tss | SAPI, ESAPI et FAPI de la spécification TCG | Oui | Non | Non, mais il existe un projet distinct | Oui | Oui | Peut-être |
| ibmtss | Correspondance 1:1 avec les commandes TPM + API riche (couche superficielle) | Oui | Partiel | Oui, « IBM ACS » | Oui | Oui | Non |
| go-tpm | Correspondance 1:1 avec les commandes TPM + API riche (couche superficielle) | Oui | Partiel | Oui, « Go-attestation » | Oui | Oui | Non |
| wolfTPM | Correspondance 1:1 avec les commandes TPM + API riche (wrappers) | Oui | Non | Oui, des exemples se trouvent dans la bibliothèque. | Oui | Oui | Oui |
| TSS.MSR | Correspondance 1:1 avec les commandes TPM + API riche (wrappers) | Oui | Non | Oui, des exemples se trouvent dans la bibliothèque. | Oui | Oui | Non |
Ces bibliothèques TPM sont parfois appelées piles TPM, car elles fournissent l'interface permettant au développeur ou à l'utilisateur d'interagir avec le TPM. Comme le montre le tableau, les piles TPM masquent le système d'exploitation et la couche transport, permettant ainsi à l'utilisateur de migrer une application d'une plateforme à l'autre. Par exemple, grâce à l'API de la pile TPM, l'utilisateur interagira de la même manière avec un TPM, que la puce physique soit connectée au système hôte via une interface SPI, I²C ou LPC.