Compartilhar via


Obtendo credenciais do Schannel

As credenciais são exigidas pelo processo de autenticação do Schannel; O cliente e o servidor devem obter credenciais válidas para estabelecer um contexto de segurança para troca de mensagens. Para obter um exemplo que demonstra esse procedimento, consulte Obtendo credenciais.

Seu aplicativo obtém credenciais chamando a função AcquireCredentialsHandle , que retorna um identificador para as credenciais solicitadas. Como os identificadores de credenciais são usados para armazenar informações de configuração, o mesmo identificador não pode ser usado para operações do lado do cliente e do servidor. Isso significa que os aplicativos que dão suporte a conexões de cliente e de servidor devem obter um mínimo de dois identificadores de credenciais.

Uma estrutura de SCHANNEL_CRED especifica o seguinte:

  • Um protocolo de segurança
  • As cifras permitidas
  • Pontos de codificação mínimos e máximos
  • Um certificado X.509 usado para autenticação — necessário para o servidor, opcional para o cliente, a menos que o servidor solicite a autenticação do cliente.

Passe a estrutura de SCHANNEL_CRED (por meio do parâmetro pAuthData ) para a função AcquireCredentialsHandle . Essa função retorna o identificador de credenciais necessário para estabelecer um contexto de segurança.

Os chamadores da interface do provedor de suporte à segurança (SSPI) podem usar o TLS 1.3 ao passar a nova estrutura criptograficamente ágil SCH_CREDENTIALS ao chamar AcquireCredentialsHandle, o que habilita o TLS 1.3 por padrão. Os chamadores de SSPI que usam o TLS 1.3 precisam verificar se o código lida corretamente com SEC_I_RENEGOTIATE. Consulte a postagem no blog Levando o TLS (Transport Layer Security) para o próximo nível com o TLS 1.3 para obter mais informações.

Para obter informações detalhadas sobre como definir as criptografias usadas com o Schannel, consulte Especificando codificações schannel e pontos fortes de criptografia.

Para obter informações sobre certificados, consulte Funções de Repositório de Certificados e Certificados.

Para obter um exemplo que demonstra como abrir um repositório de certificados e localizar um certificado a ser usado para autenticação Schannel, consulte Como obter um certificado.

Obtendo credenciais

Elevar o protocolo TLS ao próximo nível com o TLS 1.3

AcquireCredentialsHandle