Nécessité d’une connexion chiffrée à un espace de noms

Vous pouvez exiger que les scripts et applications clients établissent une connexion chiffrée pour l’authentification, en ajoutant le qualificateur RequiresEncryption au fichier .mof Managed Object Format (MOF) qui crée l’espace de noms.

Une connexion chiffrée à un espace de noms WMI spécifie RPC_C_AUTHN_LEVEL_PKT_PRIVACY (ou PktPrivacy dans un script) pour l’authentification. Le qualificateur RequiresEncryption oblige WMI à rejeter toutes les requêtes de données entrantes, sauf si elles utilisent explicitement l’authentification chiffrée. Pour plus d’informations, consultez Définition du niveau de sécurité du processus par défaut à l’aide de VBScript ou Définition de l’authentification à l’aide de C++.

Vous pouvez également modifier un espace de noms existant en ajoutant cet attribut, puis compiler à nouveau le fichier MOF. RequiresEncryption est utilisé dans MOF avec l’instruction de préprocesseur d’espace de noms pragma.

La procédure suivante définit l’espace de noms de manière à exiger une connexion chiffrée.

Définir le chiffrement requis

  1. Créez un fichier MOF (Managed Object Format) ou modifiez votre fichier MOF existant qui définit l’espace de noms.

    L’exemple de code suivant montre que l’espace de noms à modifier est root\MyNamespace et que le fichier est nommé MyNamespace_security.mof. RequiresEncryption a un type de données booléen et doit donc être défini sur True ou False.

    #pragma namespace("\\\\.\\Root\\MyNamespace") 
    
    [RequiresEncryption(TRUE)] 
    instance of __systemSecurity { };
    
  2. Exécutez mofcomp.exe pour compiler le fichier MOF.

    c:\mofcomp MyNamespace_security.mof

    En C++, utilisez les méthodes IMoFCompiler.

WMI rejette un client qui utilise le niveau d’authentification par défaut, car DCOM négocie la sécurité au niveau requis par le processus SVCHOST dans lequel le service WMI s’exécute. Pour plus d’informations sur les hôtes de service, consultez Hébergement et sécurité des fournisseurs. Pour plus d’informations sur la définition des niveaux d’authentification lors de la connexion à des espaces de noms WMI, consultez Définition du niveau de sécurité du processus par défaut à l’aide de C++, Définition de l’authentification à l’aide de C++ ou Définition du niveau de sécurité du processus par défaut à l’aide de VBScript.

Lorsque vous retournez des données sur une connexion de rappel asynchrone, WMI retourne un message d’accès refusé à l’ordinateur demandeur. WMI effectue également une entrée de journal dans le journal des événements NT de l’ordinateur avec l’espace de noms chiffré indiquant qu’une connexion sécurisée ne peut pas être établie pour le client.

À compter de Windows Vista, le fichier WbemCore.log n’existe plus. Vous pouvez vérifier dans le journal des événements NT les entrées indiquant les requêtes de données entrantes rejetées dans les espaces de noms qui nécessitent un chiffrement.

Définition des descripteurs de sécurité d’espace de noms

WbemAuthenticationLevelEnum

Sécurisation d’une connexion WMI distante