Principes de base : fichier de configuration pour l'autorité de certification (capolicy.inf)

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 :

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.

OIDDescription
2.5.29.32.0Toutes les politiques d'émission (AnyPolicy)
1.3.6.1.4.1.311.21.32Attestation de clé TPMUser Credentials : (Low Assurance)
1.3.6.1.4.1.311.21.31Attestation de clé TPM: Endorsement Certificate : (Assurance moyenne)
1.3.6.1.4.1.311.21.30Attestation 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 :

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 :

OIDDescription
1.3.6.1.4.1.311.20.2.1Agent de demande de certificat
1.3.6.1.5.5.7.3.2Authentification du client
1.3.6.1.5.5.7.3.3Code Signing
1.3.6.1.4.1.311.10.3.13Signature à vie
1.3.6.1.4.1.311.10.3.12Signature du document
1.3.6.1.4.1.311.80.1Cryptage de documents
1.3.6.1.4.1.311.10.3.4Système de fichiers cryptés
1.3.6.1.4.1.311.10.3.4.1Récupération de fichiers
1.3.6.1.5.5.7.3.5Système terminal de sécurité IP
1.3.6.1.5.5.8.2.2IP Security IKE intermédiaire
1.3.6.1.5.5.7.3.6Tunnel de sécurité IP Endpoint
1.3.6.1.5.5.7.3.7Utilisateur de sécurité IP
1.3.6.1.4.1.311.21.6Agent de récupération des clés
1.3.6.1.4.1.311.10.3.11Récupération de clés
1.3.6.1.5.2.3.5Authentification KDC
1.3.6.1.4.1.311.10.3.1Signature de la liste de confiance Microsoft
1.3.6.1.4.1.311.10.3.10Subordination qualifiée
1.3.6.1.4.1.311.10.3.9Signataire de la liste des racines
1.3.6.1.5.5.7.3.4E-mail sécurisé
1.3.6.1.5.5.7.3.1Authentification du serveur
1.3.6.1.4.1.311.20.2.2Connexion par carte à puce
1.3.6.1.5.5.7.3.8Time Stamping selon RFC 3161
1.3.6.1.5.5.7.3.9Signature de l'OCSP
1.3.6.1.4.1.311.54.1.2Authentification du bureau à distance
1.3.6.1.4.1.311.21.5Archives 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ètresDescription
RenewalKeyLengthAppliqué 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.
RenewalValidityPeriodNe 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).
RenewalValidityPeriodUnitsNe 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).
AlternatesignatureAlgorithmNe 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é.
ForceUTF8Ne 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.
LoadDefaultTemplatesNe 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 :

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ètresDescription
ClockSkewMinutesDé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.
CRLPeriodDécrit les unités de validité des listes de blocage.
CRLPeriodUnitsDécrit la valeur numérique pour l'unité correspondante.
CRLOverlapPeriodDécrit les unités pour la période de chevauchement des listes de blocage.
CRLOverlapUnitsDécrit la valeur numérique pour l'unité correspondante.
CRLDeltaPeriodUnitsDécrit les unités de validité des listes de blocage delta.
CRLDeltaPeriodDécrit la valeur numérique pour l'unité correspondante.
CRLDeltaOverlapUnitsDécrit les unités pour la période de chevauchement des listes de blocage delta.
CRLDeltaOverlapPeriodDécrit la valeur numérique pour l'unité correspondante.

Autres réglages inhabituels

ParamètresDescription
EnableKeyCountingSi 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 :

Sources externes

Les commentaires sont fermés.

fr_FRFrançais