intermediários

Intermediários se comunicam com aplicativos cliente para permitir que eles enviem solicitações de certificado e (supondo que a solicitação resulte em um certificado emitido) para baixar o certificado emitido para o cliente. Cada protocolo de camada de transporte requer seu próprio intermediário.

Os Serviços de Certificados da Microsoft são fornecidos com um intermediário (as páginas de registro na Web) para HTTP. Outro exemplo de um intermediário é o snap-in MMC de Certificados do Microsoft Windows (que permite que o Assistente de Solicitação de Certificado seja invocado). Se outros protocolos de camada de transporte forem usados com os Serviços de Certificados, um desenvolvedor poderá criar um intermediário para cada protocolo de camada de transporte desejado.

Os intermediários se comunicam com os Serviços de Certificado usando as interfaces ICertRequest e ICertConfig fornecidas pelo mecanismo de servidor. O método ICertRequest::Submit é usado para enviar uma solicitação de certificado e ICertRequest::GetCertificate é usado para obter o certificado emitido resultante. Da mesma forma, ICertConfig::GetConfig é usado para determinar qual autoridade de certificação pode ser usada para emitir o certificado.

Um intermediário não depende da linguagem. Pode ser um programa escrito em C++, Visual Basic, Java, script ou outro idioma.

Além de coletar dados do cliente para criar uma solicitação de certificado, um intermediário pode especificar atributos de solicitação. As solicitações enviadas a uma autoridade de certificação que executa o módulo de política empresarial devem indicar o tipo de certificado solicitado especificando um atributo "CertificateTemplate" ou uma extensão de Modelo de Certificado na própria solicitação.

Observe que, durante a criação de uma solicitação de certificado, os desenvolvedores (e intermediários) são responsáveis por manter o sigilo da chave privada. Depois que uma chave privada for comprometida (perdeu seu sigilo), ela será inútil.

As páginas de registro da Web dos Serviços de Certificado usam as Interfaces de Registro de Certificado, que protegem chaves privadas gerando-as na estação de trabalho. Além de manter o sigilo da chave privada, o Controle de Registro de Certificado permite que um intermediário especifique o Provedor de Serviços Criptográficos, a especificação da chave, a força da chave e o algoritmo de hash.

O snap-in do MMC de certificados também usa o controle de registro de certificado (Xenroll.dll). No entanto, quando as páginas de registro na Web dos Serviços de Certificado fazem com que o recurso controle de registro de certificado (Xenroll.dll) seja baixado para o cliente, se necessário, o snap-in MMC de certificados é executado em um ambiente em que Xenroll.dll já é um recurso disponível.

Além de ICertRequest e ICertConfig, os desenvolvedores de intermediários podem achar que as Interfaces de Registro de Certificado e o Controle de Registro de Cartão Inteligente são úteis.