Exemple d’utilisation de TPM sur une PKI Microsoft

Prenons l’exemple d’une PKI Windows associée à un domaine AD comportant des utilisateurs d’une entreprise. Cette entreprise veut déployer des certificats utilisateurs sur ses postes de travail pour s’authentifier sur plusieurs services (portail Web, application métier, …).
En lieu et place du magasin de certificat traditionnel, cette entreprise souhaite que le certificat soit protégé par un TPM.
Il est tout d'abord nécessaire de créer un "Template" de certificat sur la PKI afin que tous les utilisateurs aient un modèle commun avec les mêmes propriétés. Le Template est de type « Certificat utilisateur » et doit posséder les attributs suivants :

  • Compatibilité :
    • Certification Authority: Windows 2012 R2
    • Certificate recipient: Windows 8.1/Windows Server 2012 R2

alt

  • Cryptography :
    • Provider Category: Key Storage Provider
    • Algorithm name: RSA
    • Requests must use one of the following providers: Microsoft Platform Crypto Provider

alt

En effet, la compatibilité entre le certificat et le fournisseur de clé « KSP » n’est pleinement compatible que depuis Windows 8.1 et Windows 2012. De plus, pour être fonctionnel l’algorithme doit être RSA.

Ensuite, pour réaliser l’attestation de clé il faut configurer la partie « Key attestation » permettant de définir quel mécanisme sera utilisé parmi les 3 cités précédemment.

  • Key attestation :
    • Key attestation : Required
    • Key attestation type to enforce: User credentials (for example)

alt

Remarque : Tous ces types d'attestation de clés peuvent être cumulatifs et ne sont donc pas exclusifs. Il est par exemple possible de cocher les 3 types, ce qui aura pour effet de demander à la fois la validation de l'utilisateur, le certificat EK et la clé publique du TPM.
Enfin l’attestation peut être tracée par l’insertion d’OID spécifique dans le certificat généré comme suit :

alt

Toutefois, pour que cela fonctionne il est nécessaire que l’autorité de certification émettrice sache à quoi correspondent les OIDs de type « Key attestation ». Si cela n’est pas le cas, une erreur de génération sera présentée et il sera alors nécessaire de modifier le fichier Policy.inf de la CA émettrice ainsi que générer à nouveau le Certificat de la CA.