다음을 통해 공유


인증에 대한 확장된 보호 개요

인증에 대한 확장된 보호는 공격자가 클라이언트의 자격 증명을 가로채 서버에 전달하는 MITM(man-in-the-middle) 공격으로부터 보호하는 데 도움이 됩니다.

세 명의 참가자(클라이언트, 서버 및 공격자)가 있는 시나리오를 고려합니다. 서버에는 URL https://server이 있는 반면 공격자에는 URL https://attacker이 있습니다. 공격자는 클라이언트를 속여 마치 서버인 것처럼 공격자에 액세스합니다. 그런 다음 공격자는 서버에 요청을 보냅니다. 공격자가 보안 리소스에 액세스하려고 하면 서버는 WWW-Authenticate 헤더를 사용하여 공격자에게 회신합니다. 공격자는 인증 정보가 없으므로 클라이언트에 WWW-Authenticate 헤더를 보냅니다. 클라이언트는 권한 부여 헤더를 공격자에게 보내고, 공격자는 헤더를 서버에 보내고 클라이언트의 자격 증명을 사용하여 보안 리소스에 대한 액세스를 가져옵니다.

현재 클라이언트 애플리케이션이 HTTPS를 사용하여 Kerberos, Digest 또는 NTLM을 사용하여 서버에 인증하는 경우 TLS(전송 수준 보안) 채널이 먼저 설정되고 이 채널을 사용하여 인증이 수행됩니다. 그러나 SSL(Secure Sockets Layer)에서 생성된 세션 키와 인증 중에 생성된 세션 키 사이에는 바인딩이 없습니다. 따라서 이전 시나리오에서 통신이 TLS(예: HTTPS 채널)를 통해 수행되는 경우 두 개의 SSL 채널이 생성됩니다. 하나는 클라이언트와 공격자 사이에, 다른 하나는 공격자와 서버 간에 만들어집니다. 클라이언트의 자격 증명은 클라이언트와 공격자 사이의 SSL 채널을 통해 먼저 클라이언트에서 서버로 전송된 다음, 공격자와 서버 사이의 채널을 통해 전송됩니다. 클라이언트의 자격 증명이 서버에 도달하면 서버는 해당 자격 증명이 전송된 채널이 클라이언트가 아닌 공격자와 함께 시작되었음을 감지하지 않고 자격 증명을 확인합니다.

솔루션은 TLS 보안 외부 채널 및 클라이언트 인증 내부 채널을 사용하고 CBT(채널 바인딩 토큰)를 서버에 전달하는 것입니다. CBT는 TLS 보안 외부 채널의 속성이며 클라이언트 인증 내부 채널을 통해 외부 채널을 대화에 바인딩하는 데 사용됩니다.

이전 시나리오에서는 클라이언트-공격자 TLS 채널의 CBT가 서버로 전송되는 권한 부여 정보와 병합됩니다. CBT 인식 서버는 클라이언트-공격자 채널에 해당하는 클라이언트 인증 정보에 포함된 CBT를 공격자-서버 채널에 연결된 CBT와 비교합니다. CBT는 채널의 대상과 관련이 있으므로 클라이언트-공격자 CBT는 공격자 서버 CBT와 일치하지 않습니다. 이를 통해 서버는 MITM 공격을 감지하고 인증 요청을 거부할 수 있습니다.

클라이언트 쪽에는 구성 설정이 필요하지 않습니다. 클라이언트가 CBT를 서버에 전달하도록 업데이트되면 항상 업데이트됩니다. 서버도 업데이트된 경우 CBT를 사용하거나 무시하도록 구성할 수 있습니다. 업데이트되지 않은 경우 무시됩니다.

서버에는 다음과 같은 수준의 보호가 있을 수 있습니다.

  • 없음. 채널 바인딩 유효성 검사가 수행되지 않습니다. 업데이트되지 않은 모든 서버의 동작입니다.

  • 부분적. 업데이트된 모든 클라이언트는 서버에 채널 바인딩 정보를 제공해야 합니다. 업데이트되지 않은 클라이언트는 업데이트할 필요가 없습니다. 애플리케이션 호환성을 허용하는 중간 옵션입니다.

  • 전체 모든 클라이언트는 채널 바인딩 정보를 제공해야 합니다. 서버는 그렇게 하지 않는 클라이언트의 인증 요청을 거부합니다.

자세한 내용은 Win7 CBT/확장 보호 샘플을 참조하세요.

참고하십시오