Le capolicy.inf contient des paramètres de base qui peuvent ou devraient être définis avant l'installation d'une autorité de certification. Pour simplifier, on peut dire qu'aucune autorité de certification ne devrait être installée sans lui.
Création d'un capolicy.inf
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.
Le fichier n'est pas créé automatiquement. Il doit donc être créé avant l'installation d'une autorité de certification et, en cas de migration ou d'utilisation d'un certificat, il doit être créé par l'autorité de certification. Restauration être repris du système source.
Version
Chaque capolicy.inf doit commencer par l'extension „Version“ avec le contenu suivant.
[Version] Signature= "$Windows NT$"
Chaînes
Dans la section „Strings“, il est possible de définir des variables de texte, par exemple pour convertir des identificateurs d'objets dans un format facile à lire.
[Strings] szOID_NAME_CONSTRAINTS = "2.5.29.30"
Extensions
La section „Extensions“ permet de définir ou de modifier des extensions dans la demande de certificat (et donc dans le certificat qui en résulte).
Exemple : définition des „Name Constraints“ Extension d'une autorité de certification émettrice afin d'autoriser les noms DNS dans le Subject Alternative Name pour „adcslabor.de“ et d'interdire l'utilisation du Common Name.
[Extensions]
Critical = %szOID_NAME_CONSTRAINTS%
%szOID_NAME_CONSTRAINTS% = "{text}"
continue = "SubTree=Include&"
continue = "DNS = adcslabor.de&"
continue = "SubTree=Exclude&"
continue = "DIRECTORYNAME = CN=&"
[Strings]
szOID_NAME_CONSTRAINTS = "2.5.29.30"
Conformément à la RFC 5280, les contraintes de nom sont ignorées dans les certificats pour les autorités de certification racines.
Exemple : modification de l'extension „Key Usage“ d'une autorité de certification racine. Suppression de „Digital Signature“ et définition de l'extension „Key Usage“ comme critique.
[Extensions] 2.5.29.15 = AwIBBg== Critical = 2.5.29.15
Exemple : suppression des extensions „CA Version“ et „Previous CA Certificate Hash“ d'un certificat d'une autorité de certification racine.
[Extensions] 1.3.6.1.4.1.311.21.1= ; szOID_CERTSRV_CA_VERSION 1.3.6.1.4.1.311.21.2= ; szOID_CERTSRV_PREVIOUS_CERT_HASH
Voir également les articles suivants à ce sujet :
- Suppression des extensions spécifiques à ADCS des certificats
- Principes de base : contraintes de nom (Name Constraints)
BasicConstraintsExtension
La section „BasicConstraintsExtension“ permet de définir la contrainte de longueur de chemin (Path Length Constraint) d'un certificat d'autorité de certification. Ce paramètre ne doit pas être appliqué aux certificats d'une autorité de certification racine afin de conserver une certaine flexibilité. L'extension doit plutôt être configurée pour les certificats des autorités de certification émettrices.
[BasicConstraintsExtension] PathLength=0 Critical=TRUE
Conforming CAs MUST include this extension in all CA certificates that contain public keys used to validate digital signatures on certificates and MUST mark the extension as critical in such certificates.
https://tools.ietf.org/html/rfc5280#section-4.2.1.9
Voir aussi à ce sujet l'article "Principes de base : contrainte de longueur de chemin (Path Length Constraint)„ .
PolicyStatementExtension
[PolicyStatementExtension] Policies=InternalPolicy [InternalPolicy] OID=1.3.6.1.4.1.99999.300.2.1.4.3.1 Notice=CPS is to be found at: http://pki.adcslabor.de/CPS/index.html URL=http://pki.adcslabor.de/CPS/index.html
Le site Attestation de clé du module TPM (Trusted Platform Module) peut être utilisé en option avec des directives d'émission. Si l'on prévoit de l'utiliser, il est judicieux d'inclure les directives d'émission définies à cet effet dans le certificat de l'autorité de certification.
Voir aussi à ce sujet l'article "Configuration de l'attestation de clé du module TPM (Trusted Platform Module)„ .
Il est également possible d'inclure l'identificateur d'objets AnyPolicy :
[PolicyStatementExtension] Policies=AllIssuancePolicy [AllIssuancePolicy] OID=2.5.29.32.0
Cette pratique devrait être évitée, selon RFC 5280 mais explicitement autorisé.
Lorsqu'une AC ne souhaite pas limiter l'ensemble des politiques pour les chemins de certification qui incluent ce certificat, elle AUTORISE l'assertion de la politique spéciale anyPolicy, avec une valeur de { 2 5 29 32 0 }.
https://tools.ietf.org/html/rfc5280#section-4.2.1.14
Voici une liste des directives (générales) courantes en matière d'exposition.
| OID | Description |
|---|---|
| 2.5.29.32.0 | Toutes les politiques d'émission (AnyPolicy) |
| 1.3.6.1.4.1.311.21.32 | Attestation de clé TPMUser Credentials : (Low Assurance) |
| 1.3.6.1.4.1.311.21.31 | Attestation de clé TPM: Endorsement Certificate : (Assurance moyenne) |
| 1.3.6.1.4.1.311.21.30 | Attestation de clé TPM: Endorsement Key : (Haute assurance) |
EnhancedKeyUsageExtension
Dans la section „EnhancedKeyUsageExtension“, l'extension „Extended Key Usage“ d'un certificat d'autorité de certification peut être éditée afin de limiter la portée de l'émission de certificats.
Microsoft utilise le terme "Enhanced Key Usage" (utilisation améliorée des clés), mais la désignation correcte selon le RFC 5280 est "Extended Key Usage"..
[EnhancedKeyUsageExtension] OID=1.3.6.1.5.5.7.3.1 ; Client Authentication OID=1.3.6.1.5.5.7.3.2 ; Server Authentication OID=1.3.6.1.5.5.7.3.9 ; OCSP Signing OID=1.3.6.1.4.1.311.21.5 ; Private Key Archival Critical=FALSE
En ce qui concerne les restrictions des Extended Key Usages dans les certificats d'autorités de certification, le RFC 5280 est malheureusement absente. L'évaluation doit donc être effectuée séparément pour chaque cas d'application.
Le CA/Browser Forum (CAB) responsable du traitement des certificats dans les navigateurs courants recommande beispielsweise für SSL die Einschränkung der Extended Key Usages einer Zertifizierungsstelle und rät dazu, die Erweiterung als nicht kritisch zu markieren.
Concernant l'inscription par carte à puce les contrôleurs de domaine ignorent la restriction des utilisations de clés étendues mais, par exemple, complètement dans le réglage standard.
Voir également les articles suivants à ce sujet :
- Principes de base : limiter l'utilisation de la clé étendue (Extended Key Usage, EKU) dans les certificats d'autorité de certification
- Les contrôleurs de domaine ne vérifient pas l'utilisation étendue de la clé lors de la connexion par carte à puce.
Outre les Extended Key Usages prévus, les restrictions doivent toujours inclure „Private Key Archival“ et „OCSP Signing“. Si un service d'enregistrement de périphériques réseau (NDES) est relié à l'autorité de certification, l„“agent de demande de certificat" Extended Key Usage est également requis.
Voici une liste des utilisations courantes des clés étendues :
| OID | Description |
|---|---|
| 1.3.6.1.4.1.311.20.2.1 | Agent de demande de certificat |
| 1.3.6.1.5.5.7.3.2 | Authentification du client |
| 1.3.6.1.5.5.7.3.3 | Code Signing |
| 1.3.6.1.4.1.311.10.3.13 | Signature à vie |
| 1.3.6.1.4.1.311.10.3.12 | Signature du document |
| 1.3.6.1.4.1.311.80.1 | Cryptage de documents |
| 1.3.6.1.4.1.311.10.3.4 | Système de fichiers cryptés |
| 1.3.6.1.4.1.311.10.3.4.1 | Récupération de fichiers |
| 1.3.6.1.5.5.7.3.5 | Système terminal de sécurité IP |
| 1.3.6.1.5.5.8.2.2 | IP Security IKE intermédiaire |
| 1.3.6.1.5.5.7.3.6 | Tunnel de sécurité IP Endpoint |
| 1.3.6.1.5.5.7.3.7 | Utilisateur de sécurité IP |
| 1.3.6.1.4.1.311.21.6 | Agent de récupération des clés |
| 1.3.6.1.4.1.311.10.3.11 | Récupération de clés |
| 1.3.6.1.5.2.3.5 | Authentification KDC |
| 1.3.6.1.4.1.311.10.3.1 | Signature de la liste de confiance Microsoft |
| 1.3.6.1.4.1.311.10.3.10 | Subordination qualifiée |
| 1.3.6.1.4.1.311.10.3.9 | Signataire de la liste des racines |
| 1.3.6.1.5.5.7.3.4 | E-mail sécurisé |
| 1.3.6.1.5.5.7.3.1 | Authentification du serveur |
| 1.3.6.1.4.1.311.20.2.2 | Connexion par carte à puce |
| 1.3.6.1.5.5.7.3.8 | Time Stamping selon RFC 3161 |
| 1.3.6.1.5.5.7.3.9 | Signature de l'OCSP |
| 1.3.6.1.4.1.311.54.1.2 | Authentification du bureau à distance |
| 1.3.6.1.4.1.311.21.5 | Archives de clés privées |
NameConstraintsExtension
Permet de définir des restrictions de nom pour le certificat d'autorité de certification.
[NameConstraintsExtension] Include = PermittedSubtrees Critical = True [PermittedSubtrees] DirectoryName = CN=ADCS Labor Test Issuing CA 1-Xchg DNS = .intra.adcslabor.de
Voir l'article "Principes de base : contraintes de nom (Name Constraints)„ .
Certsrv_Server
Cette section permet de définir les paramètres du processus d'autorité de certification.
| Paramètres | Description |
|---|---|
| RenewalKeyLength | Appliqué uniquement lors du renouvellement du certificat d'autorité de certification avec une nouvelle paire de clés. Désigne la taille de la clé à utiliser dans ce cas. |
| RenewalValidityPeriod | Ne concerne que les autorités de certification de base. N'est utilisé que lors du renouvellement du certificat d'une autorité de certification racine (celle-ci détermine elle-même la validité de son propre certificat). |
| RenewalValidityPeriodUnits | Ne concerne que les autorités de certification de base. N'est utilisé que lors du renouvellement du certificat d'une autorité de certification racine (celle-ci détermine elle-même la validité de son propre certificat). |
| AlternatesignatureAlgorithm | Ne concerne que les autorités de certification de base. Si la valeur est „0“, le schéma de padding PKCS#1 version 1.5 est utilisé. Si la valeur est „1“, le schéma de padding PKCS#1 version 2.1 est utilisé. |
| ForceUTF8 | Ne concerne que les autorités de certification de base. Force l'encodage du „Common Name“ de l'autorité de certification en UTF-8 (sinon, uniquement s'il contient des caractères spéciaux). Peut entraîner des problèmes de compatibilité et ne doit donc pas être utilisé dans la mesure du possible. |
| LoadDefaultTemplates | Ne concerne que les autorités de certification intégrées à Active Directory (Enterprise CA). Si la valeur est fixée à „1“ ou n'est pas définie, un ensemble de modèles de certificats standard est automatiquement publié sur l'autorité de certification - c'est pourquoi la valeur doit être définie et fixée à „0“ pour éviter cela. |
Voir également les articles suivants à ce sujet :
- Utiliser PKCS#1 version 2.1 pour une autorité de certification racine (certificats propres et émis)
- Description des paramètres de configuration nécessaires pour le profil de certificat "Common PKI".
- (Ré)installation des modèles de certificats Microsoft Standard
Exemple de paramètres typiques d'une autorité de certification racine :
[Certsrv_Server] RenewalKeyLength=4096 RenewalValidityPeriod=Years RenewalValidityPeriodUnits=8 AlternateSignatureAlgorithm=0 ForceUTF8=1
Exemple de paramètres typiques d'une autorité de certification émettrice :
[Certsrv_Server] RenewalKeyLength=4096 LoadDefaultTemplates=0 AlternateSignatureAlgorithm=0
Dans le dernier livre „officiel“ sur les services de certificats Microsoft Active Directory, „Sécurité de l'infrastructure de clés publiques et des certificats de Microsoft Windows Server 2008“Dans le livre de Brian Komar, on parle à tort de DiscreteSignatureAlgorithm, et les valeurs étaient exactement inversées. Au moment de l'impression du livre, c'était également correct, mais lors du passage de la version bêta de Windows Server 2008 à la version finale, la directive a été rebaptisée „AlternateSignatureAlgorithm“, y compris le fonctionnement inverse. Ainsi, PKCS#1 a continué à être utilisé par défaut dans la version 1.5 si la directive n'était pas explicitement configurée.
Enregistrer le fichier
Le fichier doit être enregistré dans le répertoire C:\NWindows avec codage ANSI avant de configurer le rôle d'autorité de certification.
Dans l'écosystème Windows, la désignation „ANSI“ correspond au code de caractères Windows-1252 (Latin-1, Europe de l'Ouest).

Anciennes charges et recrutements inhabituels
Par souci d'exhaustivité, voici encore quelques réglages qui n'ont aujourd'hui plus d'importance dans la pratique.
CRLDistributionPoint et AuthorityInformationAccess
Dans cette section, il est possible de saisir une extension pour les points de distribution de la liste de révocation ou pour l'accès aux informations sur les postes dans la demande de certificat.
Cette section ne devrait plus être utilisée. Les sections du fichier capolicy.inf (à l'exception de la section CertSrv_Server) sont écrites dans la demande de certificat pour l'autorité de certification et sont de toute façon écrasées par l'autorité de certification parente. Les chemins d'accès sont donc définis dans la configuration de l'autorité de certification supérieure. Si l'on souhaite adapter les points de distribution de la liste de révocation ou pour l'accès aux informations sur les postes pour l'autorité de certification, on le fait via le registre de l'autorité de certification installée.
[CRLDistributionPoint] URL=http://pki.adcslabor.de/CertData/MeineCrl.crl [AuthorityInformationAccess] URL=http://pki.adcslabor.de/CertData/MeinCaZertifikat.crt
De même, la directive „Empty=true“ dans ces sections n'est plus nécessaire depuis Windows Server 2008 et plus récent pour les certificats d'autorité de certification racine.
Voir aussi à ce sujet l'article "Jeton pour la configuration CDP et AIA d'une autorité de certification„ .
Paramètres qui peuvent également être définis via l'enregistrement de l'autorité de certification
Les paramètres suivants peuvent être définis dans la section CertSrv_Server. Ils sont facultatifs et identiques à la valeur du même nom dans l'enregistrement de l'autorité de certification. Il est donc judicieux de les définir également à cet endroit après l'installation d'une autorité de certification.
Les valeurs „Unit“ sont indiquées dans le format suivant : „Minutes“, „Hours“, „Days“, „Weeks“, „Months“, „Years“.
| Paramètres | Description |
|---|---|
| ClockSkewMinutes | Décrit la différence (plus ou moins) des certificats émis par rapport à l'heure du système, exprimée en minutes, afin de compenser les éventuels décalages horaires. |
| CRLPeriod | Décrit les unités de validité des listes de blocage. |
| CRLPeriodUnits | Décrit la valeur numérique pour l'unité correspondante. |
| CRLOverlapPeriod | Décrit les unités pour la période de chevauchement des listes de blocage. |
| CRLOverlapUnits | Décrit la valeur numérique pour l'unité correspondante. |
| CRLDeltaPeriodUnits | Décrit les unités de validité des listes de blocage delta. |
| CRLDeltaPeriod | Décrit la valeur numérique pour l'unité correspondante. |
| CRLDeltaOverlapUnits | Décrit les unités pour la période de chevauchement des listes de blocage delta. |
| CRLDeltaOverlapPeriod | Décrit la valeur numérique pour l'unité correspondante. |
Autres réglages inhabituels
| Paramètres | Description |
|---|---|
| EnableKeyCounting | Si cette option est activée (valeur définie sur „1“), un compteur est incrémenté à chaque utilisation de la clé privée. Cette fonction doit toutefois être prise en charge par le fournisseur de stockage de clés correspondant. |
Liens complémentaires :
- Accents dans les certificats d'autorité de certification
- Principes de base : limiter l'utilisation de la clé étendue (Extended Key Usage, EKU) dans les certificats d'autorité de certification
- Utilisations étendues des clés (Extended Key Usages) et politiques d'émission (Issuance Policies) fréquemment utilisées
- Bases : algorithmes de clés, algorithmes de signature et algorithmes de hachage de signature
- Utiliser PKCS#1 version 2.1 pour une autorité de certification racine (certificats propres et émis)
- Description des paramètres de configuration nécessaires pour le profil de certificat "Common PKI".
- Utiliser des contraintes de nom pour permettre à une autorité de certification de ne délivrer des certificats que pour des noms de domaine spécifiques.
- (Ré)installation des modèles de certificats Microsoft Standard
- Jeton pour la configuration CDP et AIA d'une autorité de certification
- Codage des caractères dans le Subject Distinguished Name des demandes de certificat et des certificats délivrés
Sources externes
- Préparer le fichier CAPolicy.inf (Microsoft)
- Windows Server 2008 R2 CAPolicy.inf Syntaxe (Microsoft, lien archive)
- Exigences de base pour l'émission et la gestion de certificats garantis par le public (CA/Browser Forum)
- Trois décennies d'Unicode (Golem Media GmbH)
Les commentaires sont fermés.