Share via


Microsoft NTLM

NTLM(Windows Challenge/Response)은 Windows 운영 체제를 실행하는 시스템과 독립 실행형 시스템을 포함하는 네트워크에서 사용되는 인증 프로토콜입니다.

Microsoft Kerberos보안 패키지 는 네트워크의 시스템에 NTLM보다 더 큰 보안을 추가합니다. Microsoft Kerberos 가 선택한 프로토콜이지만 NTLM은 여전히 지원됩니다. NTLM은 독립 실행형 시스템의 로그온 인증에도 사용해야 합니다. Kerberos에 대한 자세한 내용은 Microsoft Kerberos를 참조하세요.

NTLM 자격 증명은 대화형 로그온 프로세스 중에 얻은 데이터를 기반으로 하며 도메인 이름, 사용자 이름 및 사용자 암호의 단방향 해시 로 구성됩니다. NTLM은 유선으로 사용자 암호를 보내지 않고 암호화된 시도/응답 프로토콜을 사용하여 사용자를 인증합니다. 대신 인증을 요청하는 시스템은 보안 NTLM 자격 증명에 대한 액세스 권한이 있음을 증명하는 계산을 수행해야 합니다.

네트워크를 통한 대화형 NTLM 인증에는 일반적으로 사용자가 인증을 요청하는 클라이언트 시스템 및 사용자의 암호와 관련된 정보가 보관되는 도메인 컨트롤러의 두 가지 시스템이 포함됩니다. 이미 로그온한 사용자가 서버 애플리케이션과 같은 리소스에 액세스할 수 있도록 허용하는 데 필요할 수 있는 비대화형 인증에는 일반적으로 서버 대신 인증 계산을 수행하는 클라이언트, 서버 및 도메인 컨트롤러의 세 가지 시스템이 포함됩니다.

다음 단계에서는 NTLM 비대화형 인증의 개요를 제공합니다. 첫 번째 단계는 사용자의 NTLM 자격 증명을 제공하며 대화형 인증(로그온) 프로세스의 일부로만 발생합니다.

  1. (대화형 인증에만 해당) 사용자가 클라이언트 컴퓨터에 액세스하고 도메인 이름, 사용자 이름 및 암호를 제공합니다. 클라이언트는 암호의 암호화 해시 를 계산하고 실제 암호를 삭제합니다.

  2. 클라이언트는 사용자 이름을 서버( 일반 텍스트)로 보냅니다.

  3. 서버는 챌린지 또는 nonce라고 하는 8바이트 난수를 생성하고 클라이언트에 보냅니다.

  4. 클라이언트는 사용자 암호의 해시를 사용하여 이 챌린지를 암호화하고 결과를 서버에 반환합니다. 이를 응답이라고 합니다.

  5. 서버는 도메인 컨트롤러에 다음 세 항목을 보냅니다.

    • 사용자 이름
    • 클라이언트에 전송된 챌린지
    • 클라이언트에서 받은 응답
  6. 도메인 컨트롤러는 사용자 이름을 사용하여 보안 계정 관리자 데이터베이스에서 사용자 암호의 해시를 검색합니다. 이 암호 해시를 사용하여 챌린지를 암호화합니다.

  7. 도메인 컨트롤러는 계산한 암호화된 챌린지(6단계)와 클라이언트가 계산한 응답(4단계)을 비교합니다. 동일한 경우 인증이 성공합니다.

애플리케이션은 NTLM 보안 패키지 에 직접 액세스해서는 안 됩니다. 대신 협상 보안 패키지를 사용해야 합니다. Negotiate를 사용하면 애플리케이션이 인증과 관련된 시스템에서 지원되는 경우 고급 보안 프로토콜 을 활용할 수 있습니다. 현재 협상 보안 패키지는 Kerberos 와 NTLM 간에 선택합니다. Negotiate는 인증과 관련된 시스템 중 하나에서 사용할 수 없는 한 Kerberos를 선택합니다.