Compartilhar via


Certificate Authentication

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

A autenticação é o processo de determinar se um remoto hospedar pode ser de confiança. Para estabelecer sua confiabilidade, a remoto hospedar deve fornecer um Certificado autenticação aceitáveis.

Hosts remotos estabelecer sua confiabilidade obtendo um Certificado de um autoridade de certificação (CA). O CA pode, por sua vez, ter certificação de uma maior autoridade e assim por diante, criando um encadear de confiança. Para determinar se um Certificado é confiável, um aplicativo deve determinar a identidade do CA a raiz e, em seguida, determinar se ele é confiável.

Windows Embedded CE mantém um banco de dados de de confiança autoridades de certificação. Quando uma conexão com uma infra-estrutura de segurança é tentada por um aplicativo, Windows Embedded CE extrai o Certificado raiz a partir de encadear de certificação e verifica-la contra o banco de dados CA. Ele oferece o Certificado raiz para o aplicativo através de função callback uma validação Certificado, along with o resultado da comparação contra o banco de dados CA.

Aplicativos lembre responsabilidade definitiva para verificar se um Certificado é aceitável. Aplicativos podem aceitar ou rejeitar qualquer Certificado. Se um Certificado será rejeitado, a conexão não será concluída. No mínimo, um Certificado deve atender aos dois requisitos: O Certificado é atual e a identidade contidos o Certificado coincide com a raiz identidade CA.

O função callback validação Certificado deve ser implementado por todos os aplicativos cliente que usam Seguro soquetes. O valor retornará determina se a conexão será concluída por sockets do Windows (Winsock). O valor deve ter a seguinte sintaxe.

int SslValidate (
    DWORD  dwType
    LPVOID pvArg
    DWORD  dwChainLen
    LPBLOB pCertChain
    DWORD  dwFlags
);

Os parâmetros contêm o seguinte dados:

  • O dwType parâmetro especifica o tipo de dados apontado pelo pCertChain. Este valor deve ser SSL_CERT_X.509, especificando que pCertChain é um ponteiro para um estilo Certificado X.509.
  • O pvArg parâmetro é o contexto Application-defined, passado pelo SSLVALIDATECERTHOOK estrutura.
  • O dwChainLen parâmetro é o número de certificados apontados pelo pCertChain. Ele sempre será igual a um.
  • O pCertChain parâmetro é um ponteiro para o Certificado raiz. A estrutura blob é definida em Sslsock.h na SDK. O pBlobData campo aponta para um certificado X.509 (ISO padrão). O Certificado não é o Certificado raiz mas Certificado de servidor. O chamador deve analisar o Certificado para extrair os dados pertinentes como o assunto e Emissor nomes.
  • Se o emissor raiz do Certificado não pôde ser encontrado em banco de dados o CA, o dwFlags parâmetro conterá SSL_CERT_FLAG_ISSUER_UNKNOWN. O aplicativo ou pode tentar verificar o emissor próprio, ou SSL_ERR_CERT_UNKNOWN de retorno.

A seguinte tabela mostra os valores retornados pela função callback.

Return valor Descrição

SSL_ERR_BAD_DATA

O Certificado não está formatado corretamente.

SSL_ERR_BAD_SIG

Falha de verificar assinatura.

SSL_ERR_CERT_EXPIRED

o certificado expirou.

SSL_ERR_CERT_REVOKED

O certificado foi revogado.

SSL_ERR_CERT_UNKNOWN

O Emissor é desconhecido, ou alguns não especificado problema surgiram no processamento de Certificado, processamento-inaceitável.

SSL_ERR_OKAY

O Certificado é aceitável.

See Also

Concepts

Winsock Secure Sockets