ダイジェスト チャレンジの生成
Microsoft Digest チャレンジは、サーバーが AcceptSecurityContext (Digest) 関数を最初に呼び出すことによって生成されます。 この関数呼び出しでは nonce が生成されます。nonce は、セキュリティ違反の検出に使用できる情報を含む一意の値です。 この呼び出しでは、状態情報を維持するために使用される部分的なセキュリティ コンテキストも生成されます。 AcceptSecurityContext (Digest) を呼び出すときに、Microsoft Digest の動作を制御したり、保護の品質を設定したりするためのコンテキスト要件フラグを指定します。 詳細については、「Digest チャレンジ コンテキストの要件」を参照してください。
AcceptSecurityContext (Digest) 関数への最初の呼び出しからの出力は、HTTP 401 応答 (アクセスが拒否されました) でクライアントに送信されるトークンを含むセキュリティ バッファーです。
Note
入力バッファーに情報が含まれていない AcceptSecurityContext (Digest) への呼び出しは、Digest チャレンジを返します。
Digest チャレンジ コンテキストの要件
コンテキスト要件は、次を決定するフラグです。
- Microsoft Digest が SASL メカニズムまたは HTTP 認証プロトコルとして機能するかどうか。
- クライアントとサーバーによって共有されるセキュリティ コンテキストでサポートされる保護の品質。
既定では、Microsoft Digest は SASL メカニズムとして機能します。 HTTP 認証に使用するには、サーバーが ASC_REQ_HTTP (0x10000000) フラグを設定する必要があります。
コンテキスト要件は、AcceptSecurityContext (Digest) 関数の fContextReq パラメーターに渡されるフラグとして指定されます。 フラグは、チャレンジの qop ディレクティブを制御することによって、セキュリティ コンテキストの保護の品質に作用します。
既定では、qop ディレクティブは "auth" に設定されています。 qop ディレクティブを "auth-int" に設定するチャレンジを生成するには、サーバーで次のフラグを 1 つ以上指定する必要があります。
- ASC_REQ_INTEGRITY
- ASC_REQ_REPLAY_DETECT
- ASC_REQ_SEQUENCE_DETECT
SASL の場合のみ、ASC_REQ_CONFIDENTIALITY コンテキスト要件フラグを指定し、qop ディレクティブを "auth-conf" に設定してチャレンジを生成します。 このフラグは HTTP 認証に対して有効ではないため、ASC_REQ_HTTP フラグと一緒に使用することはできません。
qop ディレクティブの詳細については、「保護と暗号の品質」を参照してください。
チャレンジの詳細については、「Digest チャレンジの内容」を参照してください。