Module de plateforme sécurisée (TPM) sur Windows 10 IoT Standard

Qu’est-ce que TPM ?

Un module de plateforme sécurisée (TPM) est un coprocesseur de chiffrement, y compris les fonctionnalités de génération de nombres aléatoires, la génération sécurisée de clés de chiffrement et la limitation de leur utilisation. Il inclut également des fonctionnalités telles que l’attestation à distance et le stockage scellé. La spécification technique du module TPM est publiquement disponible, pilotée par le groupe tcG (Trusted Computing Group). La dernière version de TPM 2.0 (publiée en octobre 2014), est une refonte majeure de la spécification qui ajoute de nouvelles fonctionnalités et corrige les faiblesses de l’ancien TPM 1.2.

Pourquoi TPM ?

Les ordinateurs qui incorporent un module TPM peuvent créer des clés de chiffrement et les chiffrer afin qu’ils puissent uniquement être déchiffrés par le module de plateforme sécurisée. Ce processus, souvent appelé « habillage » ou « liaison » d’une clé, peut aider à protéger la clé contre la divulgation. Chaque module de plateforme sécurisée a une clé « wrapping » primaire, appelée clé racine de stockage, qui est stockée dans le TPM lui-même. La partie privée d’une clé créée dans un module de plateforme sécurisée n’est jamais exposée à tout autre composant, logiciel, processus ou personne.

Les ordinateurs qui incorporent un module TPM peuvent également créer une clé qui a non seulement été encapsulée, mais qui est également liée à certaines mesures de plateforme. Ce type de clé ne peut être décompressé que 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 » la clé du module TPM. Le déchiffrement de la clé est appelé « non scellé ». Le module TPM peut également sceller et annuler les données générées en dehors du module TPM. Avec cette clé scellée et les logiciels tels que le chiffrement de lecteur BitLocker, vous pouvez verrouiller les données jusqu’à ce que des conditions matérielles ou logicielles spécifiques soient remplies.

Avec un module 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 effectuées avant que les clés ne soient non scellées et libérées pour une utilisation. Étant donné que le module TPM utilise son propre microprogramme interne et circuits logiques pour le traitement des instructions, il ne s’appuie 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.

TPM Architecture

Différence entre TPM 1.2 et TPM 2.0.
La spécification TPM a été développée deux fois. La première fois, elle s’est développée de 1.1b à 1.2, incorporant de nouvelles fonctionnalités demandées/identifiées par le comité de spécification. Cette forme d’évolution de caractéristiques a rendu la spécification TPM 1.2 finale très compliquée. Finalement, les faiblesses de chiffrement de SHA-1 (qui était l’algorithme commercial le plus fort dans TPM 1.2) ont été révélées, ce qui a provoqué la nécessité d’un changement. L’architecture TPM a été repensée à partir de zéro, ce qui a entraîné la conception beaucoup plus intégrée et unifiée de TPM 2.0.

Les modifications et améliorations par rapport au module de plateforme sécurisée 1.2 précédente sont les suivantes :

  • Prise en charge d’algorithmes de chiffrement supplémentaires
  • Améliorations apportées à la disponibilité du module TPM aux applications
  • Mécanismes d’autorisation améliorés
  • Gestion simplifiée du module TPM
  • Fonctionnalités supplémentaires pour améliorer la sécurité des services de plateforme

Remarque

Windows IoT Core prend uniquement en charge TPM 2.0 et ne prend pas en charge le module TPM obsolète 1.2.

Qu’est-ce que To S ?

La fonctionnalité services de base de module de plateforme sécurisée (To S) est un service système qui permet le partage transparent des ressources TPM. Il partage les ressources TPM entre plusieurs applications sur la même machine physique via des appels de procédure distante (RPC). Il centralise l’accès au module de plateforme sécurisée entre les applications à l’aide de priorités spécifiées par les applications appelantes.

Le module TPM fournit des fonctions de chiffrement conçues pour fournir une confiance dans la plateforme. Étant donné que le module de plateforme sécurisée est implémenté dans le matériel, il a des ressources limitées. Le TCG définit une pile de logiciels TPM (TSS) qui utilise ces ressources pour fournir des opérations approuvées pour les logiciels d’application. Toutefois, aucune disposition n’est effectuée pour l’exécution d’une implémentation TSS côte à côte avec des logiciels de système d’exploitation qui peuvent également utiliser des ressources TPM. La fonctionnalité To S résout ce problème en permettant à chaque pile logicielle qui communique avec To S d’utiliser des ressources TPM case activée ing pour toutes les autres piles logicielles qui peuvent s’exécuter sur l’ordinateur.

Solutions TPM disponibles sur Windows IoT Core

Quelques mots sur le module TPM logiciel (sTPM), le module TPM du microprogramme (fTPM), le TPM discret (dTPM)...

Module TPM du microprogramme (fTPM)

Le module TPM du microprogramme (fTPM) nécessite une prise en charge spéciale du processeur/soC qui n’est pas actuellement implémentée sur Raspberry Pi 2 ou 3. MinnowBoard Max a besoin du microprogramme version 0.80 ou ultérieure. DragonBoard410c fournit des fonctionnalités fTPM prêtes à l’emploi activées par défaut.

TPM discret (dTPM)

Le module de plateforme sécurisée discrète (dTPM) est considéré comme la solution la plus fiable par tous les moyens.
Il existe plusieurs fabricants de puces dTPM et de modules DTPM pris en charge sur Windows IoT Core :

Fabricant Page web Modul Type Puce TPM
Infineon Infineon TPM Evalboard Infineon SLB9670 TPM 2.0
Pi3g Pi3g.com Produit de masse & Evalboard Infineon SLB9670 TPM 2.0

Module TPM logiciel (sTPM)

Le module TPM logiciel (sTPM) est également appelé simulateur TPM. Il est indépendant de la plateforme, pris en charge sur Windows IoT Core.

Remarque

sTPM est destiné uniquement à des fins de développement et ne fournit aucun avantage réel en matière de sécurité.

Exemples

  • Exemple de bibliothèque Urchin Ce tutoriel montre comment créer un exemple d’application C++ qui exerce la fonctionnalité TPM à l’aide de la bibliothèque Urchin. Urchin est une bibliothèque conforme aux spécifications dérivée de l’implémentation de référence TPM 2.0. Il fournit au client les fonctionnalités permettant de marshaler/annuler l’exécution de toutes les structures de données, de calculer correctement les autorisations, d’effectuer le chiffrement des paramètres et d’effectuer l’audit.

Ressources complémentaires