Depuis Windows 8, c'est possible, que les clés privées des certificats soient protégées par un module de plate-forme de confiance (TPM), si celui-ci est disponible. De ce fait, la clé n'est pas exportable - même avec des outils comme mimikatz.
Au premier coup d'œil, il n'est toutefois pas évident de garantir l'utilisation d'un TPM. Il est vrai que pas de demande possible via la Microsoft Management Console ou AutoEnrollment si l'ordinateur ne dispose pas de TPM.
Toutefois, la configuration dans le modèle de certificat n'est qu'une configuration par défaut pour le client. L'autorité de certification, lorsqu'elle demande un certificat ne pas vérifier explicitement si un module Trusted Platform a vraiment été utilisé.
Pour s'assurer que la clé privée d'une demande de certificat a bien été protégée par un module Trusted Platform, il ne reste donc que l'attestation de clé TPM.
Fonctionnement
Lors de l'attestation de clé TPM, l'autorité de certification vérifie si la demande de certificat a été signée avec la clé d'endossement du Trusted Platform Module. Cela peut être réalisé de deux manières :
- EKPUB : Dans cette variante, on fait explicitement confiance aux différentes clés d'endossement des TPM des différentes machines. Celles-ci sont explicitement déposées sur l'autorité de certification.
- EKCERT : dans cette variante, on fait confiance aux organismes de certification des fabricants des TPM des différentes machines. Les TPM sont identifiés à l'aide du certificat d'endossement. Les certificats du fabricant sont stockés sur les autorités de certification dans un magasin de confiance spécial.
La troisième option, User Credentials, dans laquelle l'utilisateur confirme à l'aide de ses données de connexion que la demande de certificat a été protégée par un TPM, n'est bien sûr pas vraiment sûre et ne sera donc pas traitée ici.
Mise en place de la méthode EKPUB sur l'autorité de certification
Cette méthode présente l'inconvénient de ne pas être très évolutive. Sans une solution de gestion, il sera pratiquement impossible de déterminer (de manière sûre !) toutes les clés d'endossement.
La méthode EKPUB est la plus stricte, c'est pourquoi elle est considérée comme un „niveau d'assurance élevé“.
Connaissez-vous TameMyCerts? TameMyCerts est un add-on pour l'autorité de certification Microsoft (Active Directory Certificate Services). Il étend la fonction de l'autorité de certification et permet de Application de la réglementationIl s'agit d'un logiciel de gestion des certificats qui permet d'automatiser l'émission de certificats en toute sécurité. TameMyCerts est unique dans l'écosystème Microsoft, a déjà fait ses preuves dans d'innombrables entreprises du monde entier et est disponible sous une licence libre. Il peut téléchargé via GitHub et être utilisé gratuitement. Une maintenance professionnelle est également proposée.
Exporter et déposer des clés d'endossement
Un répertoire est créé sur l'autorité de certification dans lequel les sommes de contrôle des clés d'endossement sont sauvegardées sous forme de fichier. La commande suivante permet ensuite d'intégrer le répertoire dans la configuration de l'autorité de certification.
certutil.exe -setreg CA\EndorsementKeyListDirectories +"{Verzeichnisname}"

La commande Windows PowerShell suivante permet d'identifier le hachage de la clé d'endossement d'un module Trusted Platform et de l'écrire dans un fichier compatible.
New-Item ` -Path (Get-TpmEndorsementKeyInfo -HashAlgorithm SHA256).PublicKeyHash ` –ItemType File

Ces fichiers doivent maintenant être sauvegardés pour chaque ordinateur client dans le répertoire configuré au préalable sur l'autorité de certification.

Mise en place de la méthode EKCERT sur l'organisme de certification
La méthode EKCERT est considérée comme un „niveau d'assurance moyen“. Elle présente l'avantage de ne pas devoir déterminer chaque clé d'endossement individuelle. Au lieu de cela, on fait confiance aux autorités de certification des fabricants qui ont (espérons-le) signé un certificat d'endossement pour le module Trusted Platform concerné.
Créer une liste de certificats sur l'autorité de certification
Tout d'abord, deux nouvelles listes de certificats doivent être créées sur l'autorité de certification :
- Clé d'approbation Autorités de certification racine de confiance
- Endorsement Key Intermediate Certification Authorities (autorités de certification intermédiaires clés)
Cela peut se faire à l'aide des commandes Windows PowerShell suivantes :
cd Cert:\LocalMachine
New-Item -Name EKROOT
New-Item -Name EKCA

Ensuite, ces listes de certificats devraient apparaître dans la Microsoft Management Console (MMC) pour les certificats du compte d'ordinateur (certlm.msc).

Déterminer les certificats d'autorité de certification
Microsoft propose pour le Host Guardian Service (HGS) un fichier cabinet qui contient les autorités de certification des fabricants pour les modules Trusted Platform les plus courants. Ce fichier peut également être utilisé pour l'attestation de clé TPM.
La version la plus récente de la liste peut être téléchargée depuis ce lien peut être téléchargé. Comme il est très complexe de gérer tous les certificats des fabricants, cela constitue un point de départ utile.
Si l'on ne souhaite pas utiliser cette option ou si le certificat du fabricant d'un ordinateur n'est pas inclus, il est également possible de l'extraire manuellement du TPM d'un ordinateur. La détermination d'un certificat de fabricant à partir d'un module Trusted Platform est expliquée dans l'article „Déterminer et exporter un certificat d'approbation du module TPM (Trusted Platform Module)" décrit.
Malheureusement, tous les TPM ne disposent pas d'un certificat d'endossement, de sorte qu'il peut arriver que la méthode EKCERT ne puisse pas être utilisée pour certains modèles d'ordinateurs.
Importer des certificats d'autorité de certification
Il convient tout d'abord de vérifier la codification du fichier de chaîne.
Get-AuthenticodeSignature .\TrustedTpm.cab

Le fichier du cabinet peut ensuite être décompressé :
mkdir .\TrustedTPM expand.exe -F:* TrustedTpm.cab .\TrustedTPM

Le dossier contient les certificats et, de manière pratique, un script d'installation. Toutefois, comme celui-ci est destiné au Host Guardian Service, il doit être édité pour pouvoir être utilisé pour une autorité de certification.

Les variables $intermediateStore et $rootStore sont adaptées comme suit :
$intermediateStore = "Cert:\LocalMachine\EKCA" $rootStore = "Cert:\LocalMachine\EKROOT"
Le fichier est signé numériquement. La modification du fichier invalide la signature, ce dont nous devons nous accommoder dans ce cas.

Les certificats peuvent maintenant être importés avec le script.
.\setup.ps1

Les deux mémoires de confiance devraient maintenant être remplies.


Test de fonctionnement
La commande PowerShell suivante permet de vérifier si une autorité de certification fait confiance à un certificat d'endossement spécifique pour l'attestation de clé TPM :
New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 "{Pfad-zum-Zertifikat}"| Confirm-CAEndorsementKeyInfo
Pour l'exportation d'un certificat d'endossement, voir l'article „Déterminer et exporter un certificat d'approbation du module TPM (Trusted Platform Module)„ .
Configurer un modèle de certificat
Pour pouvoir émettre des certificats protégés par TPM, il faut tout d'abord configurer un modèle de certificat qui contient le Microsoft Platform Crypto Provider est utilisé. Ce processus est décrit dans l'article „Configuration d'un modèle de certificat pour l'utilisation du Microsoft Platform Crypto Provider afin de permettre la protection de la clé privée par un Trusted Platform Module (TPM)" décrit.
Ensuite, l'attestation peut être configurée dans l'onglet „Key Attestation“. Les possibilités suivantes s'offrent à vous :
| Attestation de clé | Description |
|---|---|
| None | La demande de certificat ne fait pas l'objet d'une vérification d'attestation. Le certificat est délivré même si l'attestation n'est pas réussie. |
| Required, if client is capable | L'attestation de la demande de certificat n'est vérifiée que si le client la prend en charge. Le certificat est délivré même si l'attestation n'a pas abouti. |
| Required | Dans tous les cas, l'attestation de la demande de certificat est vérifiée et la demande est classée si elle n'a pas abouti. |
| Perform Attestation basée sur | Description |
|---|---|
| Identifiants de l'utilisateur | L'utilisateur confirme que la clé privée est protégée par un TPM, ce qui n'est évidemment pas vraiment sûr. |
| Certificat matériel | Conforme à la méthode EKCERT. |
| Clé matérielle | Entspricht der EKPUB Methode. |
Die Attestierungsmethoden können durch Mehrfachauswahl auch miteinander kombiniert werden. Somit können beispielsweise Clients, die über kein Endorsementzertifikat verfügen via EKPUB geprüft werden und alle anderen via EKCERT. Die „User credentials“ Methode ist natürlich nicht wirklich sicher und sollte daher nicht verwendet werden.

Zertifikatrichtlinien in ausgestellten Zertifikaten inkludieren
Darüber hinaus kann angegeben werden, dass die Zertifizierungsstelle eine Ausstellungsrichtlinie (Issuance policy) in ein ausgestelltes Zertifikat schreibt, um die Art der Attestierung zu bestätigen.
| OID | Signification |
|---|---|
| 1.3.6.1.4.1.311.21.32 | TPM Key Attestattion : User Credentials : (Low Assurance) |
| 1.3.6.1.4.1.311.21.31 | TPM Key Attestattion : Endorsement Certificate : (Assurance moyenne) |
| 1.3.6.1.4.1.311.21.30 | TPM Key Attestattion : Endorsement Key : (Haute assurance) |

Aus der Kombination dieser Optionen kann beispielsweise festgelegt werden, dass jeder Antragsteller zwar ein Zertifikat bekommt, aber nur solche, bei denen nachgewiesen werden kann, dass deren private Schlüssel mit einem TPM geschützt sind (was über die Ausstellungsrichtlinie im Zertifikat nachgewiesen werden kann), auch Zugang zu bestimmten Ressourcen gewährt wird.
Damit diese Richtlinien jedoch in ausgestellte Zertifikate geschrieben werden können, muss das Zertifizierungsstellen-Zertifikat auch entsprechend konfiguriert sein. Siehe hierzu die Artikel „Inclure les directives d'émission (Issuance Policies) pour la Trusted Platform (TPM) Key Attestation dans un certificat d'autorité de certification“ oder „Inclure la politique d'émission Wildcard (All Issuance Policies) dans un certificat d'autorité de certification„

Dépannage
Fehlgeschlagene TPM-Attestierungen sind üblicherweise über die Ereignisse mit den Nummern 22 et 53 auf der Zertifizierungsstelle identifizierbar.
Liens complémentaires :
- Demander un certificat protégé par un Trusted Platform Module (TPM) - sans posséder de TPM
- Configuration d'un modèle de certificat pour l'utilisation du Microsoft Platform Crypto Provider afin de permettre la protection de la clé privée par un Trusted Platform Module (TPM)
Sources externes
- Attestation de clé TPM (Microsoft)
- Mise en place de certificats protégés par TPM à l'aide d'une autorité de certification Microsoft - Partie 1 : Fournisseur de cryptographie de la plate-forme Microsoft (Microsoft)
- Setting up TPM protected certificates using a Microsoft Certificate Authority – Part 2: Virtual Smart Cards (Microsoft)
- Configuration des certificats protégés par TPM à l'aide d'une autorité de certification Microsoft - Partie 3 : Attestation de clé (Microsoft)
- Install trusted TPM root certificates (Microsoft)
Les commentaires sont fermés.