Un module de politique pour les apprivoiser : Présentation du module de politique TameMyCerts pour Microsoft Active Directory Certificate Services

En tant qu'exploitant d'un organisme de certification il est responsable (entre autres) de l'identification des demandeurs et de la confirmation des identités demandées. Le fait que cette tâche soit effectuée consciencieusement et sans erreur est le pilier central de la confiance accordée à l'organisme de certification. Des entreprises renommées sont a déjà échoué dans cette tâche, ont même dû déposer le bilan à la suite de fausses expositions et/ou ont été remplacés par les grands acteurs du marché sensible punit.

Dans de nombreux cas, en tant qu'opérateurs PKI (Microsoft) dans les entreprises (indépendamment de la qualité qui en découle), nous sommes en mesure de déléguer notre tâche d'identification unique d'un demandeur à l'Active Directory. Mais dans de nombreux cas, nous devons malheureusement aussi demander à notre/nos autorité(s) de certification de délivrer simplement tout ce qui est demandé.

TameMyCerts est un Module de politiquepour sécuriser l'autorité de certification Microsoft (Active Directory Certificate Services). Il étend les fonctions de l'autorité de certification et permet de l'application élargie de la réglementationIl permet d'automatiser en toute sécurité l'émission de certificats. TameMyCerts est unique dans l'écosystème Microsoft et est disponible sous une licence libre. Il peut téléchargé via GitHub et être utilisé gratuitement.

Parmi les exemples notables, on peut citer

  • Systèmes de gestion des dispositifs mobiles (MDM) tels que VMware AirWatch (désormais connu sous le nom de "Workspace ONE") demandent des certificats à la place des utilisateurs des terminaux gérés, sans que l'autorité de certification ne puisse influencer le contenu du certificat demandé. "Workspace ONE" présente un bogue connu et non encore corrigé qui fait que des certificats sans identité sont demandés lorsqu'un appareil n'est pas attribué à un utilisateur.
  • De nombreux types d'appareils utilisés dans l'entreprise nécessitent le fonctionnement d'un Simple Certificate Enrollment (SCEP) (inscription simple au certificat) serveur qui transmet le contenu du certificat demandé 1:1 à l'autorité de certification. Des interfaces SCEP mal sécurisées peuvent constituer un risque pour la sécurité. Porte d'entrée pour des attaques sur l'environnement être.
  • Et bien sûr, le facteur humain. Les opérateurs de PKI peuvent aussi lors de la configuration des autorités de certification ou la vérification manuelle des demandes de certificats peuvent commettre des erreurs et provoquer ainsi des délivrances erronées de certificats. Il en va bien sûr de même pour les autres administrateurs qui ont peut-être été autorisés à demander des certificats (dans le pire des cas, même par le biais de l Enregistrement en ligne des organismes de certification).

Restrictions de nom du certificat d'autorité de certification peuvent certes traiter ces cas en partie, mais pas du tout dans leur intégralité.

Je voudrais aujourd'hui présenter une alternative très puissante pour reprendre le contrôle de l'émission de certificats, sous la forme du TameMyCerts Policy pour l'autorité de certification Microsoft.

Il permet entre autres de définir finement le contenu autorisé du certificat et de faire rejeter directement par l'autorité de certification les demandes de certificat qui ne correspondent pas aux règles.

Il permet également une planification nettement plus flexible de la hiérarchie des autorités de certification, car plusieurs cas d'utilisation avec la même autorité de certification peuvent être limités individuellement. Il est également possible de forcer le contenu des certificats.

TameMyCerts a été développé par mit dans le langage de programmation C# et placé sous une licence open source. Il peut donc être utilisé gratuitement.

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.

Fonctionnement

Contrairement à Modules de sortieSi l'autorité de certification peut en charger plusieurs, un seul module de politique peut être chargé à la fois. Si l'on utilise son propre module de politique, on perd généralement la fonctionnalité complète du module de politique par défaut de Windows. Celui-ci assume pourtant des fonctions essentielles comme (entre autres)...

  • Vérifier si le demandeur est autorisé à déposer une demande de certificat.
  • Ajouter les extensions de certificat configurées au certificat émis (à partir de la configuration du modèle de certificat, du module Policy, mais aussi les informations sur le modèle de certificat et les points de distribution CDP/AIA).
  • Ajouter les attributs de certificat configurés tels que Subject et Subject Alternative Name, s'ils doivent être formés à partir d'Active Directory.

Comme les modules de politique sont représentés sous forme d'objets Component Object Model (COM), nous pouvons facilement connecter le module Windows Default en aval grâce à TameMyCerts. Les demandes de certificat sont donc d'abord transmises au module Windows Default Policy, puis sa réponse est évaluée.

Nous conservons ainsi toutes les fonctionnalités du module Windows Default Policy et pouvons désormais effectuer des vérifications supplémentaires. Le module TameMyCerts Policy prend en charge la vérification de tous les noms distincts relatifs au sujet imaginables et les types de noms alternatifs au sujet les plus courants.

Fonctionnalités de TameMyCerts

TameMyCerts offre entre autres les fonctions suivantes :

  • Appliquer des règles de contenu pour les demandes de certificats hors ligne. Par exemple, il est possible de configurer que les certificats doivent obligatoirement contenir un nom DNS, mais en aucun cas un nom d'utilisateur principal, et que le contenu du certificat demandé doit suivre certaines règles (par exemple, uniquement certains domaines DNS, sous-réseaux IP ou noms d'hôtes selon certains modèles). Les possibilités sont les suivantes
    • Forcer certains champs à apparaître dans la demande de certificat ou les autoriser s'ils apparaissent.
    • Forcer les types de champs spécifiés à n'apparaître que dans un certain nombre.
    • Forcer le contenu des champs définis à être conforme aux expressions régulières spécifiées ou à ne pas enfreindre les expressions régulières ou les masques de sous-réseau IP définis (une application finement granulaire de Restrictions de nom).
    • Forcer le rejet des demandes de certificat contenant des champs non spécifiés.
  • Se connecter à l'objet Active Directory demandé (utilisateur ou ordinateur) et s'assurer qu'il se trouve dans un groupe de sécurité donné ou qu'il n'est pas membre d'un groupe de sécurité donné. Ainsi, il est par exemple possible d'empêcher l'émission de certificats pour les comptes administratifs.
  • Inscription des Security Identifier Extension du certificat avec les données de l'objet Active Directory détecté. De même, empêcher qu'une extension de certificat Security Identifier (au contenu incertain) soit indiquée par le demandeur.
  • Délivrer des certificats avec une date de début déterminée. De cette manière, les certificats peuvent être datés dans le futur, de sorte qu'ils ne soient valables qu'à partir d'une date donnée. En combinaison avec les moyens existants du module Windows Default Policy permet donc de délivrer des certificats pour une période définie avec précision.
  • "tronquer" la date de fin des certificats émis à un moment donné. De cette manière, il est par exemple possible de fixer une date de fin fixe pour les certificats qui sont des variables clés faibles peuvent être déterminés.
  • S'assurer que l'algorithme clé prévu est effectivement utilisé (ceci n'est pas vérifié par le module Windows Default Policy).
  • Veiller à ce que les certificats ne soient délivrés que par des moyens spécifiques (par exemple, par le biais d'une carte de crédit). Autoenrollment), empêchant ainsi également que le la clé privée est marquée comme exportable.

Ainsi, le module TameMyCerts Policy permet de sécuriser des interfaces insuffisamment sécurisées comme le Service d'enregistrement des périphériques réseau ou les connexions aux systèmes de gestion des appareils mobiles, comme VMware AirWatch par exemple, peuvent être sécurisées efficacement.

Il est également adapté à la délégation des demandes de certificats manuels, comme par exemple pour Certificats pour serveur web à d'autres équipes.

Comme TameMyCerts intervient directement dans le processus d'émission de certificats au niveau de l'autorité de certification, il convient à toutes les interfaces, comme par exemple :

Installer le module Policy

La définition des règles pour les modèles de certificats est contrôlée par des fichiers XML. Il faut d'abord créer un dossier sur le serveur de l'autorité de certification qui contiendra les fichiers de définition. Des fichiers d'exemple sont fournis avec le package d'installation.

Voir aussi la documentation détaillée jointe (README.adoc).

Le module est accompagné d'un script d'installation (install.ps1). Il doit être exécuté sur l'autorité de certification avec des droits d'administrateur. Le dossier créé précédemment avec le fichier -PolicyDirectory directive.

Le script d'installation met fin aux processus Microsoft Management Console (mmc) en cours, car la console de gestion des autorités de certification (certsrv.msc) pourrait sinon empêcher le désenregistrement du fichier DLL.

Si un SafeNet Fournisseur de stockage de clés est détecté, un délai d'attente est inséré après la fin du service d'autorité de certification, pour contourner un problème connu avec le KSP.

L'installation sur des autorités de certification autonomes est interdite, car le module n'offre actuellement dans ce cas aucune valeur ajoutée par rapport au module Windows Default Policy.

Après l'exécution réussie du script d'installation, le module Policy est déjà défini comme le module actif.

Le contenu du chemin d'accès au registre du module Windows Default Policy a été repris dans celui du module TameMyCerts Policy.

Dans la mesure où les Niveau de journalisation de l'autorité de certification est fixé au moins à 4 (CERTLOG_VERBOSE), le module Policy consigne au démarrage du service d'autorité de certification qu'il est prêt à traiter les demandes de certificat entrantes.

Configurer le module Policy

Le paquet d'installation est accompagné de plusieurs fichiers d'exemple (par ex. Sample_Offline_Webserver.xml, Sample_Online_User_TPM.xml) sont jointes. Ceux-ci peuvent être utilisés comme base de départ pour vos propres règles. Pour chaque modèle de certificat pour lequel les règles supplémentaires doivent être appliquées par TameMyCerts, un fichier du même nom doit être créé dans le dossier précédemment créé et indiqué lors de l'installation.

Il n'est pas nécessaire de créer un fichier de configuration pour tous les modèles de certificats, mais uniquement pour ceux auxquels les fonctions supplémentaires fournies par TameMyCerts doivent être appliquées. Les modèles de certificats pour lesquels il n'existe pas de fichier de configuration sont traités par TameMyCerts comme si seul le module Windows Default Policy était activé.

Pour la description des différents types de champs et des directives, voir le documentation détaillée en ligne.

Veuillez noter que le module TameMyCerts Policy n'applique les règles de nommage qu'aux demandes de certificat configurées pour permettre au demandeur de spécifier le contenu du Subject dans la demande de certificat.

Un exemple :

<CertificateRequestPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Subject>
<SubjectRule>
<Field>commonName</Field>
<Mandatory>true</Mandatory>
<Patterns>
<Pattern>
<Expression>^[\-_a-zA-Z0-9]*\.tamemycerts\.com$</Expression>
</Pattern>
</Patterns>
</SubjectRule>
</Subject>
<SubjectAlternativeName>
<SubjectRule>
<Field>dNSName</Field>
<Mandatory>false</Mandatory>
<Patterns>
<Pattern>
<Expression>^[\-_a-zA-Z0-9]*\.tamemycerts\.com$</Expression>
</Pattern>
</Patterns>
</SubjectRule>
</SubjectAlternativeName>
</CertificateRequestPolicy>

Le module Policy en action

L'autorité de certification continue de consigner, comme on le sait, le Événement n° 53 pour les demandes de certificats refusées.

De plus, en cas de refus d'une demande de certificat, le module TameMyCerts Policy consigne la raison de la décision de refus.

Exemples

Active Directory Certificate Services denied request 524437 because The public key does not meet the minimum size required by the specified certificate template. 0x80094811 (-2146875375 CERTSRV_E_KEY_LENGTH).  The request was for CN=intranet.adcslabor.de.  Additional information: Denied by Policy Module
Active Directory Certificate Services denied request 524444 because The certificate has an invalid name. The name is not included in the permitted list or is explicitly excluded. 0x800b0114 (-2146762476 CERT_E_INVALID_NAME).  The request was for CN=sparkasse-muenchen.de, C=UK, S=Bavaria.  Additional information: Denied by Policy Module

Liens complémentaires :

Sources externes

Les commentaires sont fermés.

fr_FRFrançais