NTLM
Last updated
Was this helpful?
Last updated
Was this helpful?
NTLM(New Technology LAN Manager)은 Windows에서 사용하는 인증 프로토콜입니다.
이 프로토콜을 사용할 때 통신은 클라이언트와 서버 간의 직접 통신으로 이뤄지고
HTTP, SMB, FTP, SQL, LDAP 등의 프로토콜에도 포함되어 있어
언급된 프로토콜을 통한 NTLM 통신이 가능합니다.
NTLM 인증은 다음과 같은 단계로 이루어집니다.
클라이언트는 서버에게 NTLM 프로토콜을 사용하겠다는 의사를 밝힙니다.
서버는 난수를 생성하여 클라이언트에게 전송합니다.
클라이언트는 본인의 NT Hash로 난수를 암호화하여 서버에게 전송합니다.
서버는 클라이언트의 NT Hash로 난수를 암호화했을 때 수신된 것과 일치하면 인증이 완료됩니다.
NTLM을 통한 인증 과정은 패스워드와 같은 민감 데이터를 직접 전송하지 않는다는 점에서
초기에는 안전한 알고리즘이라고 평가 받았으나,
버전 1의 경우 난수는 16바이트로 형성되는데, 8자리 비밀번호를 기준으로
이것을 깨는데 걸리는 시간이 2019년을 기준으로 2.5시간밖에 소요되지 않는다고 합니다.
그래서 버전 2는 암호화 단계에서 타임스탬프를 추가하고 가변 길이 챌린지로
더 강력하게 만들었으나 여전히 이 프로토콜도 취약합니다.
이 외에도 중간자 공격인 NTLM Relay에도 취약합니다.
그럼에도 불구하고 여전히 예전 버전의 환경에서 호환성 해결을 위해 사용되고 있습니다.