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. Lors de la demande, l'autorité de certification ne vérifiera pas explicitement si un module Trusted Platform a vraiment été utilisé.
Ainsi, si la demande de certificat est effectuée en dehors de la MMC, n'importe quel paramètre peut être utilisé pour la clé privée.
Pour la démonstration, on peut par exemple utiliser le PSCertificateEnrollment module PowerShell peut être utilisé. Nous utilisons le Microsoft Software Key Storage Provider pour générer la paire de clés et marquons la clé privée comme exportable.
New-CertificateRequest ` -Exportable ` -Upn "rudi@intra.adcslabor.de" ` -Ksp "Microsoft Software Key Storage Provider"

Pour plus de sécurité, on peut jeter un coup d'œil à la demande de certificat générée. Il y a là un attribut „Enrollment CSP“ qui contient le fournisseur de stockage de clés utilisé.
certutil noTPM.req

La demande de certificat est ensuite transmise à l'autorité de certification. Nous indiquons également le nom du serveur de l'autorité de certification ainsi que le nom du modèle de certificat à utiliser.
certreq ^ -config "CA02.intra.adcslabor.de\ADCS Labor Issuing CA 1" ^ -attrib "CertificateTemplate:ADCSLaborUserTPM" ^ -submit noTPM.req
En règle générale, l'autorité de certification va maintenant délivrer le certificat. A ce stade, la preuve est déjà apportée qu'aucun contrôle du CSP/KSP utilisé n'est effectué par l'organisme de certification.

Le certificat peut maintenant être installé localement.
certreq -accept noTPM.cer

Nous serons en mesure d'exporter la clé privée.

Contre-mesures
Le site Module de politique TameMyCerts pour Microsoft Active Directory Certificate Services permet de limiter les demandes de certificats à certains noms de processus et fournisseurs cryptographiques. Les attributs évalués pour la prise de décision seraient toutefois manipulables par le demandeur avec des efforts correspondants, c'est pourquoi on ne peut pas parler ici de protection complète.
TameMyCerts est open source et peut être utilisé gratuitement. Toutefois, pour une utilisation en entreprise, il est recommandé d'utiliser le Conclusion d'un contrat de maintenance. Cela garantit que vous recevrez un soutien qualifié et que le module pourra être développé à long terme avec une qualité élevée.
Si l'on veut s'assurer que les clés privées sont réellement sécurisées par un module Trusted Platform, il faut utiliser le module (nettement plus complexe) Attestation de clé TPM peuvent être utilisés.
Les commentaires sont fermés.