Attestation de clé TPM

S’applique à : Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012

Auteur : Justin Turner, ingénieur support senior d’escalade auprès du groupe Windows

Notes

Ce contenu est écrit par un ingénieur du support client Microsoft et est destiné aux administrateurs expérimentés et aux architectes système qui recherchent des explications techniques plus approfondies des fonctionnalités et des solutions Windows Server 2012 R2 que n'en proposent généralement les rubriques de TechNet. Toutefois, il n'a pas subi les mêmes passes de correction. De ce fait, une partie du langage peut sembler moins finalisée que le contenu de TechNet.

Vue d’ensemble

Bien que la prise en charge des clés protégées par un module de plateforme sécurisée (TPM) existe depuis Windows 8, il n’existait aucun mécanisme permettant aux autorités de certification d’attester par chiffrement que la clé privée du demandeur de certificat était réellement protégée par un module TPM. Cette mise à jour permet à une autorité de certification d’effectuer cette attestation et de la refléter dans le certificat émis.

Remarque

Cet article suppose que le lecteur connaît le concept de modèle de certificat (pour référence, consultez Modèles de certificat) et la configuration des autorités de certification d’entreprise pour émettre des certificats basés sur des modèles de certificat (pour référence, consultez Liste de contrôle : Configuration des autorités de certification pour émettre et gérer des certificats).

Terminologie

Terme Définition
EK Endorsement Key. Clé asymétrique contenue à l’intérieur du module TPM (injectée au moment de la fabrication), propre à chaque module TPM et capable de l’identifier. La paire de clés de type EK ne peut pas être changée ni supprimée.
EKPub Clé publique de la paire de clés de type EK.
EKPriv Clé privée de la paire de clés de type EK.
EKCert Certificat de la paire de clés de type EK, émis pour la clé EKPub par le fabricant du module TPM. Tous les modules TPM ne possèdent pas de certificat EKCert.
Module de plateforme sécurisée (TPM) Module de plateforme sécurisée, conçu pour fournir des fonctions de sécurité matérielles. Une puce TPM est un processeur de chiffrement sécurisé conçu pour effectuer des opérations de chiffrement. La puce comprend plusieurs mécanismes de sécurité physique qui la protègent contre la falsification, et les logiciels malveillants ne peuvent pas falsifier les fonctions de sécurité du TPM.

Contexte

À compter de Windows 8, un module TPM peut être utilisé pour sécuriser la clé privée d’un certificat. C’est le fournisseur de stockage de clés (KSP) du fournisseur de chiffrement de plateforme Microsoft qui active cette fonctionnalité. La mise en œuvre a suscité deux préoccupations :

  • Il n’était pas garanti qu’une clé soit réellement protégée par un module TPM (il est facile d’usurper l’identité d’un fournisseur de stockage de clés logiciel en tant que fournisseur de type TPM avec des informations d’identification d’administrateur local).

  • Il n’était pas possible de limiter la liste des modules TPM autorisés à protéger les certificats émis par l’entreprise (dans le cas où l’administrateur PKI souhaite contrôler les types d’appareils pouvant être utilisés pour obtenir des certificats dans l’environnement).

Attestation de clé TPM

L’attestation de clé TPM correspond à la capacité, pour l’entité qui demande un certificat, à prouver par chiffrement à une autorité de certification que la clé RSA de la demande de certificat est protégée par un (ou le) TPM approuvé par l’autorité de certification. Le modèle d’approbation TPM est décrit plus en détail dans la section Vue d’ensemble du déploiement plus loin dans cet article.

Importance de l’attestation de clé TPM

Un certificat utilisateur comportant une clé attestée par module TPM offre une garantie de sécurité plus élevée, renforcée par la non-exportation, la protection anti-martèlement et l’isolation des clés fournies par le module TPM.

Avec l’attestation de clé TPM, un nouveau paradigme de gestion est désormais possible : l’administrateur définit l’ensemble des appareils dont les utilisateurs peuvent se servir pour accéder aux ressources de l’entreprise (par exemple un VPN ou un point d’accès sans fil) et disposer de garanties fortes qu’aucun autre appareil ne peut être utilisé pour y accéder. Ce nouveau paradigme de contrôle d’accès est dit fort, car il est associé à une identité d’utilisateur liée au matériel, plus forte qu’une information d’identification logicielle.

Fonctionnement de l’attestation de clé TPM

En général, l’attestation de clé TPM repose sur les piliers suivants :

  1. Chaque module TPM est fourni avec une clé asymétrique unique, appelée paire de clés de type EK (Endorsement Key), qui est gravée par le fabricant. Nous désignons sous le nom EKPub la partie publique de cette clé et sous le nom EKPriv la clé privée associée. Certaines puces TPM ont également un certificat EK émis par le fabricant pour la clé EKPub. Nous appelons ce certificat EKCert.

  2. Une autorité de certification établit l’approbation dans le module TPM via la clé EKPub ou le certificat EKCert.

  3. Un utilisateur prouve à l’autorité de certification qu’il possède la clé EKPriv et que la clé RSA pour laquelle le certificat est demandé est liée par chiffrement à la clé EKPub.

  4. L’autorité de certification émet un certificat comportant un identificateur d’objet (OID) de stratégie d’émission spécial pour indiquer que la clé est maintenant attestée comme étant protégée par un module TPM.

Vue d’ensemble du déploiement

Dans ce déploiement, il est supposé qu’une autorité de certification d’entreprise Windows Server 2012 R2 est configurée. En outre, les clients (Windows 8.1) sont paramétrés de façon à s’inscrire auprès de cette autorité de certification d’entreprise à l’aide de modèles de certificat.

Il existe trois étapes à suivre pour déployer l’attestation de clé TPM :

  1. Planification du modèle d’approbation TPM : la première étape consiste à déterminer le modèle d’approbation TPM à utiliser. Trois méthodes sont prises en charge :

    • Approbation en fonction des informations d’identification de l’utilisateur : l’autorité de certification d’entreprise approuve la clé EKPub fournie par l’utilisateur dans le cadre de la demande de certificat. Aucune validation autre que celle des informations d’identification de domaine de l’utilisateur n’est effectuée.

    • Approbation en fonction du certificat EKCert : l’autorité de certification d’entreprise valide la chaîne EKCert fournie dans le cadre de la demande de certificat par rapport à une liste gérée par l’administrateur de chaînes EKCert acceptables. Ces chaînes acceptables sont définies par fabricant et exprimées dans deux magasins de certificats personnalisés sur l’autorité de certification émettrice (l’un pour les certificats de l’autorité de certification intermédiaire, l’autre pour ceux de l’autorité de certification racine). Dans ce mode d’approbation, tous les modules TPM d’un fabricant donné sont approuvés. Notez que les modules TPM utilisés dans l’environnement doivent contenir des certificats EKCert.

    • Approbation en fonction de la clé EKPub : l’autorité de certification d’entreprise vérifie que la clé EKPub fournie dans le cadre de la demande de certificat apparaît dans la liste gérée par l’administrateur des clés EKPub autorisées. Cette liste est exprimée sous la forme d’un répertoire de fichiers dont le nom correspond au hachage SHA-2 de la clé EKPub autorisée. Il s’agit de la solution qui offre le niveau d’assurance le plus élevé. L’effort d’administration nécessaire se révèle toutefois supérieur, car chaque appareil est identifié individuellement. Dans ce modèle d’approbation, seuls les appareils dont la clé EKPub de module TPM a été ajoutée à la liste des clés EKPub autorisées ont la possibilité de s’inscrire à un certificat attesté par module TPM.

    L’autorité de certification applique au certificat émis un OID de stratégie d’émission différent selon la méthode utilisée. Pour plus d’informations sur les OID de stratégie d’émission, consultez le tableau des OID de stratégie d’émission dans la section Configuration d’un modèle de certificat de cet article.

    Notez qu’il est possible de choisir une combinaison de modèles d’approbation TPM. Dans ce cas, l’autorité de certification accepte l’une des méthodes d’attestation. Les OID de stratégie d’émission reflètent alors toutes celles qui ont réussi.

  2. Configuration du modèle de certificat : la configuration du modèle de certificat est décrite dans la section Informations détaillées sur le déploiement de cet article. Cet article ne couvre pas la façon dont ce modèle de certificat est attribué à l’autorité de certification d’entreprise ni la manière dont l’accès à l’inscription est accordé à un groupe d’utilisateurs. Pour plus d’informations, consultez Liste de contrôle : Configuration des autorités de certification pour émettre et gérer des certificats.

  3. Configuration de l’autorité de certification pour le modèle d’approbation TPM :

    1. Approbation en fonction des informations d’identification de l’utilisateur : aucune configuration spécifique n’est requise.

    2. Approbation en fonction du certificat EKCert : l’administrateur doit obtenir les certificats de chaîne EKCert auprès des fabricants du module TPM et les importer dans deux nouveaux magasins de certificats, créés par l’administrateur, sur l’autorité de certification qui effectue l’attestation de clé TPM. Pour plus d’informations, consultez la section Configuration de l’autorité de certification de cet article.

    3. Approbation en fonction de la clé EKPub : l’administrateur doit obtenir la clé EKPub de chaque appareil qui a besoin de certificats attestés par module TPM et l’ajouter à la liste des clés EKPub autorisées. Pour plus d’informations, consultez la section Configuration de l’autorité de certification de cet article.

    Notes

    • Cette fonctionnalité exige Windows 8.1 ou Windows Server 2012 R2.
    • L’attestation de clé TPM n’est pas prise en charge pour les fournisseurs de stockage de clés de carte à puce tiers. Le fournisseur de stockage de clés à utiliser est celui du fournisseur de chiffrement de plateforme Microsoft.
    • L’attestation de clé TPM ne fonctionne que pour les clés RSA.
    • L’attestation de clé TPM n’est pas prise en charge pour une autorité de certification autonome.
    • L’attestation de clé TPM ne prend pas en charge le traitement des certificats non persistants.

Détails du déploiement

Configuration d’un modèle de certificat

Pour configurer le modèle de certificat pour l’attestation de clé TPM, procédez comme suit :

  1. Onglet Compatibilité

    Dans la section Paramètres de compatibilité, suivez la procédure ci-dessous :

    • Vérifiez que Windows Server 2012 R2 est sélectionné comme Autorité de certification.

    • Vérifiez que Windows 8.1/Windows Server 2012 R2 est sélectionné comme Destinataire du certificat.

    Screenshot that highlights the Certificate recipient list.

  2. Onglet Chiffrement

    Vérifiez que Fournisseur de stockage de clés est sélectionné comme Catégorie de fournisseur, et RSA comme Nom de l’algorithme. Vérifiez que Les demandes doivent utiliser l’un des fournisseurs suivants : est sélectionné, ainsi que l’option Fournisseur de chiffrement de plateforme Microsoft sous Fournisseurs :.

    Screenshot that highlights the Provider Category and Algorithm name lists.

  3. Onglet Attestation de clé :

    Il s’agit d’un nouvel onglet pour Windows Server 2012 R2 :

    Screenshot that shows the Key Attestation tab.

    Choisissez un mode d’attestation parmi les trois options possibles.

    Screenshot that shows the attestation modes.

    • Aucune : l’attestation de clé ne doit pas être utilisée.

    • Obligatoire, si le client en est capable : les utilisateurs peuvent continuer à s’inscrire pour ce certificat sur un appareil qui ne prend pas en charge l’attestation de clé TPM. Les utilisateurs en capacité d’effectuer une attestation sont distingués par un OID de stratégie d’émission spécial. Certains appareils ne sont pas en mesure d’effectuer l’attestation en raison d’un ancien module TPM ne prenant pas en charge l’attestation de clé, ou d’un appareil ne disposant pas d’un module TPM.

    • Obligatoire : le client doit effectuer l’attestation de clé TPM, sinon la demande de certificat échoue.

    Choisissez ensuite le modèle d’approbation TPM. Il existe là encore trois options possibles :

    Screenshot that shows the TPM trust models.

    • Informations d’identification de l’utilisateur : un utilisateur qui s’authentifie peut se porter garant d’un module TPM valide en spécifiant ses informations d’identification de domaine.

    • Certificat d’approbation : le certificat EKCert de l’appareil doit être validé au moyen de certificats d’autorité de certification intermédiaire TPM gérés par l’administrateur auprès d’un certificat d’autorité de certification racine géré par l’administrateur. Si vous choisissez cette option, vous devez configurer les magasins de certificats EKCA et EKRoot sur l’autorité de certification émettrice (cf. section Configuration de l’autorité de certification de cet article).

    • Paire de clés de type EK : la clé EKPub de l’appareil doit apparaître dans la liste gérée par l’administrateur PKI. Il s’agit de la solution qui offre le niveau d’assurance le plus élevé. L’effort d’administration nécessaire se révèle toutefois supérieur. Si vous choisissez cette option, vous devez configurer une liste EKPub sur l’autorité de certification émettrice (cf. section Configuration de l’autorité de certification de cet article).

    Enfin, déterminez la stratégie d’émission à afficher dans le certificat émis. Par défaut, à chaque type d’application est associé un OID qui sera inséré dans le certificat s’il réussit ce type d’application (cf. tableau suivant). Notez qu’il est possible de choisir une combinaison de méthodes d’application. Dans ce cas, l’autorité de certification accepte l’une des méthodes d’attestation. L’OID de stratégie d’émission reflète alors toutes celles qui ont réussi.

    OID de stratégie d’émission

    OID Type d’attestation de clé Description Niveau d’assurance
    1.3.6.1.4.1.311.21.30 Paire de clés de type EK « Paire de clés de type EK vérifiée » : pour la liste gérée par l’administrateur des paires de clés de type EK Élevé
    1.3.6.1.4.1.311.21.31 Certificat de la paire de clés de type EK « Certificat de la paire de clés de type EK vérifié » : quand la chaîne de certificats de la paire de clés de type EK est validée Moyenne
    1.3.6.1.4.1.311.21.32 Informations d’identification de l’utilisateur « Paire de clés de type EK approuvée à l’utilisation » : pour la paire de clés de type EK attestée par l’utilisateur Faible

    Les OID sont insérés dans le certificat émis si Inclure des stratégies d’émission est sélectionné (configuration par défaut).

    TPM Key attestation

    Astuce

    Une utilisation potentielle de la présence de l’OID dans le certificat consiste à limiter l’accès au réseau VPN ou sans fil à certains appareils. Par exemple, votre stratégie d’accès peut autoriser la connexion (ou l’accès à un autre VLAN) si l’OID 1.3.6.1.4.1.311.21.30 figure dans le certificat. Cela vous permet de limiter l’accès aux appareils dont la paire de clés de type EK du module TPM est présente dans la liste EKPub.

Configuration de l’autorité de certification

  1. Configuration des magasins de certificats EKCA et EKROOT sur une autorité de certification émettrice :

    Si vous avez choisi Certificat d’approbation dans les paramètres du modèle, procédez comme suit :

    1. Utilisez Windows PowerShell pour créer deux magasins de certificats sur le serveur de l’autorité de certification qui effectuera l’attestation de clé TPM.

    2. Obtenez le ou les certificats d’autorité de certification intermédiaire et racine auprès du ou des fabricants que vous souhaitez autoriser dans votre environnement d’entreprise. Ces certificats doivent être importés dans les magasins de certificats déjà créés (EKCA et EKROOT) appropriés.

    Le script Windows PowerShell suivant effectue ces deux étapes. Dans l’exemple suivant, le fabricant de module TPM Fabrikam a fourni un certificat racine FabrikamRoot.cer et un certificat d’autorité de certification d’émission Fabrikamca.cer.

    PS C:>\cd cert:
    PS Cert:\>cd .\\LocalMachine
    PS Cert:\LocalMachine> new-item EKROOT
    PS Cert:\ LocalMachine> new-item EKCA
    PS Cert:\EKCA\copy FabrikamCa.cer .\EKCA
    PS Cert:\EKROOT\copy FabrikamRoot.cer .\EKROOT
    
  2. Configuration de la liste EKPub si le type d’attestation EK est utilisé :

    Si vous avez choisi Paire de clés de type EK dans les paramètres du modèle, les étapes de configuration suivantes consistent à créer et à configurer sur l’autorité de certification émettrice un dossier contenant des fichiers de 0 octet, chacun nommé pour le hachage SHA-2 d’une paire de clés de type EK autorisée. Ce dossier sert de « liste verte » d’appareils autorisés à obtenir des certificats attestés par clé TPM. Étant donné que vous devez ajouter manuellement la clé EKPub pour chaque appareil exigeant un certificat attesté, l’entreprise dispose d’une garantie des appareils autorisés à obtenir des certificats attestés par clé TPM. La configuration d’une autorité de certification dans ce mode s’effectue en deux étapes :

    1. Création de l’entrée de registre EndorsementKeyListDirectories : utilisez l’outil en ligne de commande CertUtil pour configurer les emplacements des dossiers où les clés EKPub approuvées sont définies (cf. tableau suivant).

      Opération Syntaxe de la commande
      Ajouter des emplacements de dossiers certutil.exe -setreg CA\EndorsementKeyListDirectories +"<folder>"
      Supprimer des emplacements de dossiers certutil.exe -setreg CA\EndorsementKeyListDirectories -"<folder>"

      La commande EndorsementKeyListDirectories de CertUtil constitue un paramètre de registre (cf. tableau suivant).

      Nom de la valeur Type Données
      EndorsementKeyListDirectories REG_MULTI_SZ <Chemin LOCAL ou UNC à la ou aux listes autorisées EKPub>

      Exemple :

      \\blueCA.contoso.com\ekpub

      \\bluecluster1.contoso.com\ekpub

      D:\ekpub

      HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA Sanitized Name>

      EndorsementKeyListDirectories contient la liste des chemins UNC ou de système de fichiers local, chacun pointant vers un dossier auquel l’autorité de certification a accès en lecture. Chaque dossier peut comporter zéro, une ou plusieurs entrées de liste verte, chacune correspondant à un fichier dont le nom correspond au hachage SHA-2 d’une clé EKPub approuvée, sans extension de fichier. Un redémarrage de l’autorité de certification est nécessaire en cas de création ou de modification de cette configuration de clé de registre, tout comme pour les paramètres de configuration existants du registre de l’autorité de certification. En revanche, les modifications du paramètre de configuration s’appliquent immédiatement sans exiger de redémarrage de l’autorité de certification.

      Important

      Sécurisez les dossiers de la liste contre la falsification et l’accès non autorisé en configurant les autorisations de sorte que seuls les administrateurs autorisés disposent d’un accès en lecture et en écriture. Le compte d’ordinateur de l’autorité de certification n’a besoin que d’un accès en lecture.

    2. Remplissage de la liste EKPub : utilisez la cmdlet Windows PowerShell suivante pour obtenir le hachage de clé publique de la paire de clés de type EK du module TPM à l’aide de Windows PowerShell sur chaque appareil, puis envoyez ce hachage de clé publique à l’autorité de certification et stockez-le dans le dossier EKPubList.

      PS C:>\$a=Get-TpmEndorsementKeyInfo -hashalgorithm sha256
      PS C:>$b=new-item $a.PublicKeyHash -ItemType file
      

Résolution des problèmes

Indisponibilité des champs d’attestation de clé sur un modèle de certificat

Les champs Attestation de clé ne sont pas disponibles si les paramètres du modèle ne répondent pas aux conditions requises pour l’attestation. En voici quelques raisons courantes :

  1. Les paramètres de compatibilité ne sont pas configurés correctement. Assurez-vous qu’ils sont paramétrés comme suit :

    1. Autorité de certification :Windows Server 2012 R2

    2. Destinataire du certificat :Windows 8.1/Windows Server 2012 R2

  2. Les paramètres de chiffrement ne sont pas configurés correctement. Assurez-vous qu’ils sont paramétrés comme suit :

    1. Catégorie de fournisseur : Fournisseur de stockage de clés

    2. Nom de l’algorithme :RSA

    3. Fournisseurs : : Fournisseur de chiffrement de plateforme Microsoft

  3. Les paramètres de gestion des demandes ne sont pas configurés correctement. Assurez-vous qu’ils sont paramétrés comme suit :

    1. L’option Autoriser l’exportation de la clé privée ne doit pas être sélectionnée.

    2. L’option Archiver la clé privée de chiffrement du sujet ne doit pas être sélectionnée.

Vérification de l’appareil TPM pour l’attestation

Utilisez la cmdlet Windows PowerShell Confirm-CAEndorsementKeyInfo afin de vérifier qu’un appareil TPM spécifique est approuvé pour l’attestation par les autorités de certification. Il existe deux options : l’une pour vérifier le certificat EKCert, l’autre pour une clé EKPub. La cmdlet est exécutée soit localement sur une autorité de certification, soit sur des autorités de certification distantes à l’aide de la communication à distance Windows PowerShell.

  1. Pour vérifier l’approbation sur une clé EKPub, suivez les deux étapes ci-dessous :

    1. Extraction de la clé EKPub de l’ordinateur client : la clé EKPub peut être extraite d’un ordinateur client avec Get-TpmEndorsementKeyInfo. Dans une invite de commandes avec élévation de privilèges, exécutez la commande suivante :

      PS C:>\$a=Get-TpmEndorsementKeyInfo -hashalgorithm sha256
      
    2. Vérification de l’approbation sur un certificat EKCert sur un ordinateur d’autorité de certification : copiez la chaîne extraite (le hachage SHA-2 de la clé EKPub) sur le serveur (par exemple par e-mail) et passez-la à la cmdlet Confirm-CAEndorsementKeyInfo. Notez que ce paramètre doit comporter 64 caractères.

      Confirm-CAEndorsementKeyInfo [-PublicKeyHash] <string>
      
  2. Pour vérifier l’approbation sur un certificat EKCert, suivez les deux étapes ci-dessous :

    1. Extraction du certificat EKCert de l’ordinateur client : le certificat EKCert peut être extrait d’un ordinateur client avec Get-TpmEndorsementKeyInfo. Dans une invite de commandes avec élévation de privilèges, exécutez la commande suivante :

      PS C:>\$a=Get-TpmEndorsementKeyInfo
      PS C:>\$a.manufacturerCertificates|Export-Certificate -filepath c:\myEkcert.cer
      
    2. Vérification de l’approbation sur un certificat EKCert sur un ordinateur d’autorité de certification : copiez le certificat EKCert (EkCert.cer) extrait dans l’autorité de certification (par exemple par e-mail ou xcopy). Par exemple, si vous copiez le fichier de certificat dans le dossier « C:\diagnose » sur le serveur d’autorité de certification, exécutez la commande suivante pour terminer la vérification :

      PS C:>new-object System.Security.Cryptography.X509Certificates.X509Certificate2 "c:\diagnose\myEKcert.cer" | Confirm-CAEndorsementKeyInfo
      

Voir aussi

Vue d’ensemble de la technologie du module de plateforme sécuriséeRessource externe : Module de plateforme sécurisée