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