다음을 통해 공유


다이제스트 챌린지 응답 생성

서버에서 챌린지를 받은 후 클라이언트는 InitializeSecurityContext(Digest) 함수를 호출하여 다이제스트 챌린지 응답을 만듭니다. 이 함수는 요청된 리소스 및 챌린지의 데이터에 대한 정보를 사용하여 MD5 해시 지문을 생성하고 부분 보안 컨텍스트를 나타내는 보안 토큰을 출력합니다. 인증을 완료하려면 클라이언트가 챌린지를 실행한 서버에 토큰을 반환해야 합니다.

다음 표에서는 InitializeSecurityContext(Digest) 함수매개 변수와 다이제스트 챌린지 응답을 생성할 때 제공할 값에 대해 설명합니다.

매개 변수 설명
fContextReq
클라이언트에서 요청한 보안 컨텍스트 특성입니다. 자세한 내용은 다이제스트 챌린지 응답 컨텍스트 요구 사항을 참조하세요.
pszTargetName
HTTP: 대상 URL을 지정하는 Null로 끝나는 문자열입니다.
SASL: DNS/SPN 대상을 지정하는 Null로 끝나는 문자열입니다.
pInput
Digest SSP에 필요한 정보를 포함하는 버퍼입니다. 자세한 내용은 다이제스트 챌린지 응답에 대한 입력 버퍼를 참조 하세요.
pfContextAttr
반환된 보안 컨텍스트에서 지원하는 특성을 받습니다. 자세한 내용은 다이제스트 챌린지 응답 컨텍스트 요구 사항을 참조하세요.
pOutput
서버로 다시 보낼 보안 토큰을 수신하는 SECBUFFER_TOKEN 형식 버퍼의 주소입니다.

다이제스트 챌린지 응답 컨텍스트 요구 사항

컨텍스트 요구 사항은 다음을 결정하는 플래그입니다.

  • Microsoft Digest가 SASL 메커니즘 또는 HTTP 인증 프로토콜로 작동하는지 여부입니다.
  • 클라이언트와 서버에서 공유하는 보안 컨텍스트에서 지원하는 보호 품질입니다.

기본적으로 Microsoft Digest는 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 지시문에 대한 자세한 내용은 보호 품질 및 암호화를 참조 하세요.

챌린지 응답 지시문에 대한 자세한 내용은 다이제스트 챌린지 응답의 내용을 참조하세요.