Lorsque l'on installe une autorité de certification subordonnée, il se peut que l'on se heurte au comportement suivant :
- On demande une extension Key Usage qui est par exemple marquée comme critique ou qui ne contient pas DigitalSignature.
- Cependant, le certificat délivré par l'autorité de certification parente contient DigitalSignature et l'extension Key Usage est marquée comme non critique.
- L'autorité de certification supérieure est une autorité de certification autonome, c'est-à-dire sans intégration Active Directory.
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.
L'extension d'utilisation de clé demandée peut être affichée lors d'une demande de certificat avec la commande de ligne de commande suivante :
certutil -dump {Zertifikatanforderung}.req

Cependant, il est évident que ces exigences sont ignorées par l'organisme de certification autonome.

Une des raisons pour lesquelles on souhaite voir les caractéristiques décrites dans l'extension Key Usage est le Common PKI (également connue sous le nom d'ISIS-MTT) Profil du certificat.
Le RFC5280, pertinent pour les PKI, recommande également que l'extension d'utilisation des clés soit marquée comme critique :
Lorsqu'elles sont présentes, les AC conformes doivent marquer cette extension comme critique.
Mais pourquoi l'organisme de certification ignore-t-il les informations contenues dans la demande de certificat ? Examinons d'abord la demande avant qu'elle ne soit émise par l'autorité de certification. Pour ce faire, nous cliquons dans la console de gestion de l'autorité de certification sous Demandes en attente sur Toutes les tâches – View Attributes/Extensions...

Dans l'onglet Extensions, nous voyons que l'extension Key Usage n'est pas du tout prise dans la demande de certificat, mais qu'elle est donnée par le module Policy.

Dans le cas d'une autorité de certification intégrée à Active Directory, les paramètres des modèles de certificats respectifs sont utilisés. Cependant, cela n'est pas possible pour une autorité de certification autonome, faute de modèles de certificats.
Lorsque le module Policy détecte, pour une autorité de certification autonome, que la demande est pour un certificat d'autorité de certification, les bits suivants sont forcés pour l'extension Key Usage :
- CERT_DIGITAL_SIGNATURE_KEY_USAGE (0x80)
- CERT_KEY_CERT_SIGN_KEY_USAGE (0x04)
- CERT_CRL_SIGN_KEY_USAGE (0x02)
En outre, l'extension Key Usage est marquée comme non critique.
Le drapeau EDITF_ADDOLDKEYUSAGE est responsable de ce comportement. Pour savoir s'il est activé, on peut utiliser la commande de ligne de commande suivante :
certutil -v -getreg Policy\EditFlags

Si l'on souhaite empêcher le comportement décrit, on peut le faire avec la commande de ligne de commande suivante.
certutil -setreg Policy\EditFlags -EDITF_ADDOLDKEYUSAGE

Ensuite, le service d'autorité de certification doit être redémarré pour que la modification prenne effet. Ensuite, la demande de certificat peut être soumise à nouveau et devrait maintenant être délivrée correctement.
Après la modification, l'extension Key Usage est toujours définie par le module Policy, mais les paramètres de la demande de certificat sont désormais transmis.
Voici un exemple d'extension d'utilisation de clé critique sans DigitalSignature :


Voici un exemple de pas-extension critique d'utilisation des clés avec DigitalSignature :


Liens complémentaires :
Sources externes
- Comment rendre une autorité de certification autonome exécutant Windows Server 2003 avec le Service Pack 1 ou une version x64 de Windows Server 2003 conforme à la version 1.1 d'ISIS-MTT ? (Microsoft, archive.org)
- Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile (Internet Engineering Task Force)
- Infrastructure à clés publiques commune (Wikipedia)