Partilhar via


Obtendo credenciais Schannel

As credenciais são exigidas pelo processo de autenticação Schannel; O cliente e o servidor devem obter credenciais válidas para estabelecer um contexto de segurança para a 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 lado do servidor. Isso significa que os aplicativos que oferecem suporte a conexões de cliente e servidor devem obter um mínimo de dois identificadores de credenciais.

Uma estrutura SCHANNEL_CRED especifica o seguinte:

  • Um protocolo de segurança
  • As cifras permitidas
  • Intensidades de cifragem mínimas e máximas
  • Um certificado X.509 usado para autenticação — Necessário para o servidor, opcional para o cliente, a menos que o servidor solicite autenticação do cliente.

Passe a estrutura 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 de segurança (SSPI) podem usar o TLS 1.3 passando a nova estrutura cripto-ágil SCH_CREDENTIALS ao chamar AcquireCredentialsHandle, que habilita o TLS 1.3 por padrão. Os chamadores SSPI que usam TLS 1.3 precisam certificar-se de que seu código lida corretamente com SEC_I_RENEGOTIATE. Consulte a postagem do blog Levando o Transport Layer Security (TLS) 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 cifras usadas com o Schannel, consulte Especificando cifras Schannel e forças de codificação.

Para obter informações sobre certificados, consulte Funções de Certificados e de Armazenamento de Certificados.

Para obter um exemplo que demonstra a abertura de um armazenamento de certificados e a localização de um certificado a ser usado para autenticação Schannel, consulte Obtendo um certificado.

Obter credenciais

Levando o Transport Layer Security (TLS) para o próximo nível com TLS 1.3

AcquireCredentialsHandle