Compartilhar via


Gerando a resposta ao desafio do Digest

Depois de receber um desafio do servidor, o cliente cria a resposta do desafio Digest chamando a função InitializeSecurityContext (Digest). Essa função gera uma impressão digital de hash MD5 usando informações sobre o recurso solicitado e os dados do desafio e gera um token de segurança que representa um contexto de segurança parcial. Para concluir a autenticação, o cliente deve retornar o token ao servidor que emitiu o desafio.

A tabela a seguir descreve os parâmetros da função InitializeSecurityContext (Digest) e os valores a serem fornecidos ao construir uma resposta de desafio Digest.

Parâmetro Descrição
fContextReq
Os atributos de contexto de segurança solicitados pelo cliente. Para obter mais informações, consulte Requisitos de contexto de resposta ao desafio de resumo.
pszTargetName
HTTP: Cadeia de caracteres terminada em nulo que especifica a URL de destino.
SASL: Cadeia de caracteres terminada em nulo que especifica o DNS/SPN de destino.
pInput
Buffers que contêm informações exigidas pelo Digest SSP. Para obter mais informações, consulte Buffers de entrada para a resposta do desafio do Digest.
pfContextAttr
Recebe os atributos suportados pelo contexto de segurança retornado. Para obter mais informações, consulte Requisitos de contexto de resposta ao desafio de resumo.
pOutput
Endereço de um buffer de tipo SECBUFFER_TOKEN que recebe um token de segurança para enviar de volta ao servidor.

Requisitos de contexto de resposta ao desafio do Digest

Os requisitos de contexto são sinalizadores que determinam:

  • Se o Microsoft Digest funciona como um mecanismo SASL ou protocolo de autenticação HTTP.
  • A qualidade da proteção suportada pelo contexto de segurança compartilhado pelo cliente e pelo servidor.

Por padrão, o Microsoft Digest funciona como um mecanismo SASL.

Os requisitos de contexto são especificados como sinalizadores passados para o parâmetro fContextReq da função InitializeSecurityContext . Os sinalizadores afetam a qualidade da proteção do contexto de segurança controlando a diretiva qop na resposta de desafio.

Por padrão, a diretiva qop é definida como "auth". Para gerar uma resposta de desafio que define qop como "auth-int", o seguinte deve ocorrer:

  1. O desafio Digest deve ter uma diretiva qop definida como "auth-int".

  2. O cliente deve especificar um ou mais dos seguintes sinalizadores:

    • ISC_REQ_INTEGRITY
    • ISC_REQ_REPLAY_DETECT
    • ISC_REQ_SEQUENCE_DETECT

Somente para SASL: Gere uma resposta de desafio com a diretiva qop definida como "auth-conf" especificando o sinalizador ISC_REQ_CONFIDENTIALITY. Como esse sinalizador não é válido para autenticação HTTP, ele não pode ser usado com o sinalizador ISC_REQ_HTTP.

Verificando a qualidade da proteção

O cliente deve examinar os sinalizadores de atributos de contexto de segurança retornados no parâmetro pfContextAttr da função InitializeSecurityContext. O cliente deve enviar a resposta de desafio ao servidor somente se a qualidade da proteção indicada pelos sinalizadores for suficiente para seus propósitos. Os sinalizadores relevantes podem ser qualquer combinação dos seguintes:

  • ISC_RET_INTEGRITY
  • ISC_RET_REPLAY_DETECT
  • ISC_RET_SEQUENCE_DETECT
  • ISC_RET_CONFIDENTIALITY (somente contextos SASL)

Para obter mais informações sobre a diretiva qop, consulte Qualidade de proteção e criptografias.

Para obter mais informações sobre diretivas de resposta a desafios, consulte Conteúdo de uma resposta de desafio Digest.