Compartilhar via


Exigir uma conexão criptografada com um namespace

Você pode exigir que scripts e aplicativos cliente estabeleçam uma conexão criptografada para autenticação adicionando o qualificador RequiresEncryption ao arquivo .mof do MOF (Managed Object Format) que cria o namespace.

Uma conexão criptografada com um namespace WMI especifica RPC_C_AUTHN_LEVEL_PKT_PRIVACY (ou PktPrivacy em um script) para autenticação. O qualificador RequiresEncryption faz com que o WMI rejeite todas as solicitações de dados de entrada, a menos que elas usem explicitamente a autenticação criptografada. Para obter mais informações, consulte Como definir o nível de segurança do processo padrão usando vbScript ou configuração de autenticação usando C++.

Você também pode modificar um namespace existente adicionando esse atributo e, em seguida, compilar o arquivo MOF novamente. RequiresEncryption é usado no MOF com a instrução de pré-processador do namespace pragma .

O procedimento a seguir define o namespace para exigir uma conexão criptografada.

Para definir a criptografia necessária

  1. Crie um arquivo MOF (Managed Object Format) ou modifique o arquivo MOF existente que define o namespace.

    O exemplo de código a seguir mostra que o namespace que será modificado é root\MyNamespace e o arquivo é nomeado MyNamespace_security.mof. RequiresEncryption tem um tipo de dados booliano, portanto, ele deve ser definido como True ou False.

    #pragma namespace("\\\\.\\Root\\MyNamespace") 
    
    [RequiresEncryption(TRUE)] 
    instance of __systemSecurity { };
    
  2. Execute mofcomp.exe para compilar o arquivo MOF.

    c:\mofcomp MyNamespace_security.mof

    No C++, use os métodos IMoFCompiler .

O WMI rejeita um cliente que usa o nível de autenticação padrão porque o DCOM negocia a segurança para o nível exigido pelo processo SVCHOST no qual o serviço WMI está em execução. Para obter mais informações sobre hosts de serviço, consulte Hospedagem e Segurança do Provedor. Para obter mais informações sobre como definir níveis de autenticação ao se conectar a namespaces WMI, consulte Como definir o nível de segurança do processo padrão usando C++, definir a autenticação usando C++ou definir o nível de segurança do processo padrão usando o VBScript.

Ao retornar dados em uma conexão assíncrona de retorno de chamada, o WMI retorna uma mensagem de acesso negado ao computador que fez a solicitação. O WMI também faz uma entrada de log no Log de Eventos NT do computador com o namespace criptografado informando que uma conexão segura não pode ser estabelecida com o cliente.

A partir do Windows Vista, o arquivo WbemCore.log não existe mais. Você pode verificar o Log de Eventos NT para obter entradas que indicam solicitações de dados de entrada rejeitadas para namespaces que exigem criptografia.

Definindo descritores de segurança do namespace

WbemAuthenticationLevelEnum

Protegendo uma conexão WMI remota