Principes de base du Module de plateforme sécurisée (TPM)

Cet article fournit une description des composants du module de plateforme sécurisée (TPM 1.2 et TPM 2.0) et explique comment ils sont utilisés pour atténuer les attaques de dictionnaire.

Un module TPM est une micropuce conçue pour fournir des fonctions de sécurité de base, impliquant principalement des clés de chiffrement. Le TPM est installé sur la carte mère d’un ordinateur et communique avec le reste du système à l’aide d’un bus matériel.

Les appareils qui incorporent un module de plateforme sécurisée peuvent créer des clés de chiffrement et les chiffrer, de sorte que les clés ne puissent être déchiffrées que par le module TPM. Ce processus, souvent appelé « habillage » ou « liaison » d’une clé, peut aider à protéger la clé contre toute divulgation. Chaque module TPM possède une clé d’habillage primaire, appelée clé racine de stockage, qui est stockée dans le module TPM lui-même. La partie privée d’une clé racine de stockage, ou clé d’approbation, créée dans un module TPM n’est jamais exposée à un autre composant, logiciel, processus ou utilisateur.

Vous pouvez spécifier si les clés de chiffrement créées par le module de plateforme sécurisée peuvent être migrées ou non. Si vous spécifiez qu’ils peuvent être migrés, les parties publique et privée de la clé peuvent être exposées à d’autres composants, logiciels, processus ou utilisateurs. Si vous spécifiez que les clés de chiffrement ne peuvent pas être migrées, la partie privée de la clé n’est jamais exposée en dehors du TPM.

Les appareils qui incorporent un module de plateforme sécurisée peuvent également créer une clé encapsulée et liée à certaines mesures de plateforme. Ce type de clé peut être décompressé uniquement lorsque ces mesures de plateforme ont les mêmes valeurs que celles qu’elles avaient lors de la création de la clé. Ce processus est appelé scellement de la clé du TPM. Le déchiffrement de la clé est appelé unsealing. Le module de plateforme sécurisée peut également sceller et annuler les données générées en dehors du module de plateforme sécurisée. Avec une clé et un logiciel scellés, tels que le chiffrement de lecteur BitLocker, les données peuvent être verrouillées jusqu’à ce que des conditions matérielles ou logicielles spécifiques soient remplies.

Avec un TPM, les parties privées des paires de clés sont conservées séparément de la mémoire contrôlée par le système d’exploitation. Les clés peuvent être scellées sur le module TPM, et certaines garanties sur l’état d’un système (garanties qui définissent la fiabilité d’un système) peuvent être faites avant que les clés ne soient desscellées et libérées pour utilisation. Le module TPM utilise ses propres microprogrammes internes et circuits logiques pour traiter les instructions. Par conséquent, il ne repose pas sur le système d’exploitation et n’est pas exposé aux vulnérabilités qui peuvent exister dans le système d’exploitation ou le logiciel d’application.

Les fonctionnalités disponibles dans les versions sont définies dans les spécifications du Groupe informatique approuvé (TCG). Pour plus d’informations, consultez la page Module de plateforme sécurisée sur le site web de Trusted Computing Group.

Les sections suivantes fournissent une vue d’ensemble des technologies qui prennent en charge le module de plateforme sécurisée :

Démarrage mesuré avec prise en charge de l’attestation

La fonctionnalité Démarrage mesuré fournit aux logiciels anti-programme malveillant un journal fiable (résistant à l’usurpation et à la falsification) de tous les composants de démarrage. Les logiciels anti-programmes malveillants peuvent utiliser le journal pour déterminer si les composants qui s’exécutaient avant sont dignes de confiance ou infectés par des programmes malveillants. Il peut également envoyer les journaux de démarrage mesuré à un serveur distant pour évaluation. Le serveur distant peut démarrer des actions de correction en interagissant avec les logiciels sur le client ou via des mécanismes hors bande, le cas échéant.

Carte à puce virtuelle basée sur TPM

Warning

Les clés de sécurité Windows Hello Entreprise et FIDO2 sont des méthodes d’authentification à deux facteurs modernes pour Windows. Les clients qui utilisent des cartes à puce virtuelles sont encouragés à passer à Windows Hello Entreprise ou FIDO2. Pour les nouvelles installations Windows, nous recommandons les clés de sécurité Windows Hello Entreprise ou FIDO2.

La carte à puce virtuelle émule les fonctionnalités des cartes à puce traditionnelles. Les cartes à puce virtuelles utilisent la puce TPM, au lieu d’utiliser une carte à puce et un lecteur physiques distincts. Cela réduit considérablement les coûts de gestion et de déploiement des cartes à puce dans une entreprise. Pour l’utilisateur final, la carte à puce virtuelle est toujours disponible sur l’appareil. Si un utilisateur doit utiliser plusieurs appareils, une carte à puce virtuelle doit être émise à l’utilisateur pour chaque appareil. Un ordinateur partagé entre plusieurs utilisateurs peut héberger plusieurs cartes à puce virtuelles, une pour chaque utilisateur.

Stockage de certificats TPM

Le TPM protège les certificats et les clés RSA. Le fournisseur de stockage de clés TPM (KSP) offre une utilisation facile et pratique du module de plateforme sécurisée comme moyen de protéger fortement les clés privées. Le fournisseur de services de plateforme sécurisée (KSP) du module de plateforme sécurisée génère des clés lorsqu’une organisation s’inscrit pour obtenir des certificats. Le module de plateforme sécurisée protège également les certificats importés à partir d’une source externe. Les certificats TPM sont des certificats standard. Le certificat ne peut jamais quitter le module de plateforme sécurisée à partir duquel les clés sont générées. Le module de plateforme sécurisée peut également être utilisé pour les opérations de chiffrement via l’API de chiffrement : nouvelle génération (CNG).

Applets de commande TPM

Vous pouvez gérer le module de plateforme sécurisée à l’aide de Windows PowerShell. Pour plus d’informations, consultez Applets de commande TPM dans Windows PowerShell.

Interface de présence physique

Pour TPM 1.2, les spécifications TCG pour les TPM nécessitent une présence physique (généralement, en appuyant sur une touche) pour activer le TPM, le désactiver ou l’effacer. Ces actions ne peuvent généralement pas être automatisées avec des scripts ou d’autres outils d’automatisation, sauf si l’OEM individuel les fournit.

États et initialisation du module de plateforme sécurisée 1.2

TPM 1.2 a plusieurs états possibles. Windows initialise automatiquement le module TPM, ce qui l’amène à un état activé, activé et détenu.

Clés d’approbation

Une application approuvée peut utiliser le module de plateforme sécurisée uniquement si le module de plateforme sécurisée contient une clé d’approbation, qui est une paire de clés RSA. La moitié privée de la paire de clés est conservée à l’intérieur du module de plateforme sécurisée et elle n’est jamais révélée ou accessible en dehors du module de plateforme sécurisée.

Attestation de clé

L’attestation de clé TPM permet à une autorité de certification de vérifier qu’une clé privée est protégée par un module TPM et que le module de plateforme sécurisée est approuvé par l’autorité de certification. Les clés d’approbation prouvées valides sont utilisées pour lier l’identité de l’utilisateur à un appareil. Le certificat utilisateur avec une clé attestée par TPM fournit une assurance de sécurité plus élevée, sauvegardée par la non-exportation, l’anti-marteau et l’isolation des clés fournies par un module de plateforme sécurisée.

Anti-marteau

Lorsqu’un module TPM traite une commande, il le fait dans un environnement protégé. Par exemple, un micro-contrôleur dédié sur une puce discrète ou un mode protégé matériel spécial sur le processeur principal. Un TPM est utilisé pour créer une clé de chiffrement qui n’est pas divulguée en dehors du module de plateforme sécurisée. Il est utilisé dans le module de plateforme sécurisée une fois la valeur d’autorisation correcte fournie.

Les TPM disposent d’une protection anti-martelage conçue pour empêcher les attaques par force brute, ou les attaques de dictionnaire plus complexes, qui tentent de déterminer les valeurs d’autorisation pour l’utilisation d’une clé. L’approche de base consiste à ce que le module de plateforme sécurisée autorise uniquement un nombre limité d’échecs d’autorisation avant d’empêcher d’autres tentatives d’utilisation de clés et de verrous. Fournir un nombre de défaillances pour des clés individuelles n’est pas techniquement pratique, de sorte que les TPM ont un verrouillage global en cas de trop d’échecs d’autorisation.

Étant donné que de nombreuses entités peuvent utiliser le module TPM, une seule autorisation réussie ne peut pas réinitialiser la protection anti-marteau du module de plateforme sécurisée. Cela empêche un attaquant de créer une clé avec une valeur d’autorisation connue, puis de l’utiliser pour réinitialiser la protection du TPM. Les TPM sont conçus pour oublier les échecs d’autorisation après une période donnée afin que le module de plateforme sécurisée n’entre pas inutilement dans un état de verrouillage. Un mot de passe du propriétaire du module de plateforme sécurisée peut être utilisé pour réinitialiser la logique de verrouillage du module de plateforme sécurisée.

TPM 2.0 anti-marteau

TPM 2.0 a un comportement anti-marteau bien défini. Cela contraste avec le TPM 1.2 pour lequel la protection anti-marteau a été mise en œuvre par le fabricant et la logique a beaucoup varié dans l’industrie.

Pour les systèmes avec TPM 2.0, le module de plateforme sécurisée est configuré par Windows pour se verrouiller après 32 échecs d’autorisation et pour oublier un échec d’autorisation toutes les 10 minutes. Cela signifie qu’un utilisateur peut rapidement tenter d’utiliser une clé avec une valeur d’autorisation incorrecte 32 fois. Pour chacune des 32 tentatives, le module de plateforme sécurisée enregistre si la valeur d’autorisation était correcte ou non. Par inadvertance, le module de plateforme sécurisée passe à l’état verrouillé après 32 tentatives ayant échoué.

Les tentatives d’utilisation d’une clé avec une valeur d’autorisation pendant les 10 prochaines minutes ne retournent pas de réussite ou d’échec. Au lieu de cela, la réponse indique que le module TPM est verrouillé. Après 10 minutes, un échec d’autorisation est oublié et le nombre d’échecs d’autorisation mémorisés par le module de plateforme sécurisée passe à 31. Le TPM quitte l’état verrouillé et revient au fonctionnement normal. Avec la valeur d’autorisation correcte, les clés peuvent être utilisées normalement si aucun échec d’autorisation ne se produit pendant les 10 prochaines minutes. Si une période de 320 minutes s’écoule sans échec d’autorisation, le TPM ne se souvient d’aucun échec d’autorisation et 32 tentatives d’échec peuvent se produire à nouveau.

Windows ne nécessite pas que les systèmes TPM 2.0 oublient les échecs d’autorisation lorsque le système est complètement hors tension ou quand le système a été hiberné. Windows exige que les échecs d’autorisation soient oubliés lorsque le système s’exécute normalement, en mode veille ou dans des états de faible consommation d’énergie autres que désactivés. Si un système Windows avec TPM 2.0 est verrouillé, le TPM quitte le mode de verrouillage si le système reste allumé pendant 10 minutes.

La protection anti-marteau pour TPM 2.0 peut être entièrement réinitialisée immédiatement en envoyant une commande de verrouillage de réinitialisation au module de plateforme sécurisée et en fournissant le mot de passe du propriétaire du module de plateforme sécurisée. Par défaut, Windows provisionne automatiquement TPM 2.0 et stocke le mot de passe du propriétaire du module de plateforme sécurisée pour l’utiliser par les administrateurs système.

Dans certaines implémentations, la valeur d’autorisation du propriétaire du module de plateforme sécurisée est stockée de manière centralisée dans Active Directory, et non sur le système local. Un administrateur peut exécuter tpm.msc et choisir de réinitialiser le temps de verrouillage TPM. Si le mot de passe du propriétaire du module de plateforme sécurisée est stocké localement, il est utilisé pour réinitialiser l’heure de verrouillage. Si le mot de passe du propriétaire TPM n’est pas disponible sur le système local, l’administrateur doit le fournir. Si un administrateur tente de réinitialiser l’état de verrouillage du module de plateforme sécurisée avec le mot de passe du propriétaire du module de plateforme sécurisée incorrect, le module de plateforme sécurisée n’autorise pas une autre tentative de réinitialisation de l’état de verrouillage pendant 24 heures.

TPM 2.0 permet de créer certaines clés sans qu’une valeur d’autorisation ne leur soit associée. Ces clés peuvent être utilisées lorsque le module de plateforme sécurisée est verrouillé. Par exemple, BitLocker avec une configuration TPM uniquement par défaut peut utiliser une clé dans le module de plateforme sécurisée pour démarrer Windows, même lorsque le module de plateforme sécurisée est verrouillé.

Justification des valeurs par défaut

À l’origine, BitLocker autorisait entre 4 et 20 caractères pour un code confidentiel. Windows Hello a son propre code confidentiel pour la connexion, qui peut comporter de 4 à 127 caractères. BitLocker et Windows Hello utilisent le module de plateforme sécurisée (TPM) pour empêcher les attaques par force brute de code confidentiel.

Windows 10, version 1607 et antérieures utilisaient les paramètres de prévention des attaques par dictionnaire. Les paramètres de prévention des attaques par dictionnaire permettent d’équilibrer les besoins de sécurité et la facilité d’utilisation. Par exemple, lorsque BitLocker est utilisé avec une configuration TPM + PIN, le nombre de suppositions de code confidentiel est limité au fil du temps. Dans cet exemple, un module TPM 2.0 peut être configuré pour n’autoriser que 32 estimations de code confidentiel immédiatement, puis une seule estimation de plus toutes les deux heures. Cela totalise un maximum d’environ 4 415 estimations par an. Si le code confidentiel est à quatre chiffres, toutes les combinaisons de code confidentiel possibles de 9999 peuvent être tentées dans un peu plus de deux ans.

À compter de Windows 10, version 1703, la longueur minimale du code confidentiel BitLocker a été augmentée à six caractères, afin de mieux s’aligner sur les autres fonctionnalités Windows qui utilisent TPM 2.0, y compris Windows Hello. L’augmentation de la longueur du code confidentiel nécessite un plus grand nombre de suppositions pour un attaquant. Par conséquent, la durée de verrouillage entre chaque estimation a été raccourcie pour permettre aux utilisateurs légitimes de réessayer plus tôt une tentative ayant échoué tout en conservant un niveau de protection similaire. Si les paramètres hérités pour le seuil de verrouillage et le temps de récupération doivent être utilisés, assurez-vous que l’objet de stratégie de groupe est activé et configurez le système pour utiliser le paramètre de prévention des attaques par dictionnaire hérité pour TPM 2.0.

Cartes à puce TPM

La carte à puce basée sur le module de plateforme sécurisée Windows, qui est une carte à puce virtuelle, peut être configurée pour autoriser la connexion au système. Contrairement aux cartes à puce physiques, le processus de connexion utilise une clé TPM avec une valeur d’autorisation. La liste suivante présente les avantages des cartes à puce virtuelles :

  • Les cartes à puce physiques peuvent appliquer le verrouillage uniquement pour le code confidentiel physique de la carte à puce, et elles peuvent réinitialiser le verrouillage une fois le code confidentiel correct entré. Avec une carte à puce virtuelle, la protection anti-marteau du module de plateforme sécurisée n’est pas réinitialisée après une authentification réussie. Le nombre autorisé d’échecs d’autorisation avant que le module de plateforme sécurisée n’entre dans le verrouillage comprend de nombreux facteurs.
  • Les fabricants de matériel et les développeurs de logiciels peuvent utiliser les fonctionnalités de sécurité du module de plateforme sécurisée pour répondre à leurs besoins.
  • L’objectif de la sélection de 32 échecs comme seuil de verrouillage est d’éviter que les utilisateurs ne verrouillent le TPM (même lorsqu’ils apprennent à taper de nouveaux mots de passe ou s’ils verrouillent et déverrouillent souvent leurs ordinateurs). Si les utilisateurs verrouillent le TPM, ils doivent attendre 10 minutes ou utiliser d’autres informations d’identification pour se connecter, comme un nom d’utilisateur et un mot de passe.