이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 10977|회답: 0

Windows NTLM 인증 프로토콜 프로세스

[링크 복사]
2020-9-5 13:28:14에 게시됨 | | | |
IIS는 다양한 인증 기술을 제공합니다. 그중 하나가 윈도우 인증의 통합입니다. 통합 Windows 인증은 협상 케르베로스(NTLM)를 활용하여 브라우저와 서버 간에 주고받는 암호화된 티켓 메시지를 바탕으로 사용자를 인증합니다.

NTLM 인증의 가장 일반적인 적용 시나리오는 아마도 브라우저에서 사용되는 인증(http 프로토콜)일 것입니다. 하지만 실제로 NTLM은 인증 절차와 인증 메시지 형식만 명시합니다. 특정 계약과는 관련이 없습니다. 그래서 http와 반드시 연결되어 있는 것은 아닙니다. 브라우저는 HTTP 프로토콜 헤더에 NTLM 메시지만 전달하고 인증을 통과합니다. http는 보통 평문으로 처리되어 있으므로, 비밀번호 직접 전송이 매우 불안정할 경우 NTLM이 이 문제를 효과적으로 방지합니다.   

인증 절차



NTLM 인증은 완료에 세 단계가 필요하며, 자세한 요청 과정을 Fiddler toolbox를 통해 확인할 수 있습니다.






1단계

사용자는 Windows 계정 번호와 비밀번호를 입력하여 클라이언트 호스트에 로그인합니다. 로그인 전에 클라이언트는 입력된 비밀번호의 해시를 캐시하고, 원본 비밀번호는 버려집니다("원본 비밀번호는 어떠한 경우에도 캐시할 수 없다"는 기본 보안 지침). Windows에 성공적으로 로그인한 사용자는 상대방이 서버 자원에 접근하려 할 경우 요청을 보내야 합니다. 요청에는 명문 사용자 이름이 포함되어 있습니다.

2단계

서버가 요청을 받으면 16비트 난수가 생성됩니다. 이 난수 수를 챌린지 또는 논스라고 부릅니다. 챌린지는 서버가 클라이언트에 전송하기 전에 저장됩니다. 도전 과제는 평문으로 전송됩니다.


3단계

서버에서 전송된 챌린지를 받은 후, 클라이언트는 1단계에서 저장된 비밀번호 해시로 챌린지를 암호화한 후 암호화된 챌린지를 서버에 전송합니다.


4단계

클라이언트가 전송한 암호화된 챌린지를 받은 후, 서버는 클라이언트에게 DC(도메인)에 인증 요청을 보냅니다. 요청서에는 주로 다음 세 가지 내용이 포함됩니다: 클라이언트 사용자 이름; 암호화된 클라이언트 비밀번호 해시를 사용한 챌린지와 원래 챌린지.


5단계와 6단계

DC는 사용자 이름을 기반으로 계정의 비밀번호 해시를 얻어 원래 챌린지를 암호화합니다. 암호화된 챌린지가 서버에서 보낸 것과 동일하다면, 사용자가 올바른 비밀번호를 가지고 있고 검증이 통과했음을 의미하며, 그렇지 않으면 검증이 실패합니다. DC는 검증 결과를 서버에 보내고 마지막으로 클라이언트에 피드백을 보냅니다.


참고 논문:

하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.




이전의:Azure DevOps 2020 (III) limits search (ES) 메모리 풋프린트
다음:Azure DevOps 2020 (II) Azure DevOps Server Express 2020 RC2 installation tutorial
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com