共用方式為


產生摘要挑戰回應

從伺服器接收挑戰之後,用戶端會呼叫 InitializeSecurityContext (Digest) 函式來建立摘要式挑戰回應。 此函式會使用來自挑戰的要求資源和數據相關信息來產生 MD5 哈希指紋,並輸出代表部分安全性內容的安全性令牌。 若要完成驗證,客戶端必須將令牌傳回給發出挑戰的伺服器。

下表描述 InitializeSecurityContext (Digest) 式的參數,以及建構 Digest 挑戰回應時要提供的值。

參數 描述
fContextReq
用戶端要求的安全性內容屬性。 如需詳細資訊,請參閱摘要式挑戰響應內容需求。
pszTargetName
HTTP:指定目標 URL 的 Null 終止字串。
SASL:指定 DNS/SPN 目標的 Null 終止字串。
pInput
包含摘要 SSP 所需資訊的緩衝區。 如需詳細資訊,請參閱 摘要式挑戰回應的輸入緩衝區。
pfContextAttr
接收傳回的安全性內容所支援的屬性。 如需詳細資訊,請參閱摘要式挑戰響應內容需求。
pOutput
接收要傳回伺服器之安全性令牌之SECBUFFER_TOKEN型別緩衝區的位址。

摘要式挑戰回應內容需求

內容需求是決定:

  • Microsoft摘要函式是否為 SASL 機制或 HTTP 驗證通訊協定。
  • 用戶端和伺服器所共用的安全性內容所支援的保護品質。

根據預設,Microsoft摘要函式作為 SASL 機制。

內容需求會指定為傳遞至 InitializeSecurityContext 函式之 fContextReq 參數的旗標。 旗標會控制挑戰回應中的 qop 指示詞,以影響安全性內容的保護品質。

根據預設,qop 指示詞會設定為 「auth」。 若要產生將 qop 設定為 “auth-int” 的挑戰回應,必須發生下列情況:

  1. 摘要挑戰必須已將 qop 指示詞設定為 「auth-int」。。

  2. 用戶端必須指定下列一或多個旗標:

    • ISC_REQ_INTEGRITY
    • ISC_REQ_REPLAY_DETECT
    • ISC_REQ_SEQUENCE_DETECT

僅限 SASL:藉由指定 ISC_REQ_CONFIDENTIALITY 旗標,產生 qop 指示詞設定為 “auth-conf” 的挑戰回應。 由於此旗標對 HTTP 驗證無效,因此無法搭配 ISC_REQ_HTTP 旗標使用。

驗證保護品質

客戶端必須檢查 InitializeSecurityContext 函式的 pfContextAttr 參數中傳回的安全性內容屬性旗標。 只有當旗標所指出的保護品質足以供其用途使用時,用戶端才會將挑戰回應傳送至伺服器。 相關旗標可以是下列任何組合:

  • ISC_RET_INTEGRITY
  • ISC_RET_REPLAY_DETECT
  • ISC_RET_SEQUENCE_DETECT
  • ISC_RET_CONFIDENTIALITY (僅限 SASL 內容)

如需 qop 指示詞的詳細資訊,請參閱 保護和加密品質。

如需挑戰回應指示詞的詳細資訊,請參閱 摘要式挑戰回應的內容。