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:
O desafio Digest deve ter uma diretiva qop definida como "auth-int".
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.