본문 바로가기
정보보안/시스템보안

윈도우 보안 인증과 패스워드

by 피갓자 2025. 2. 2.

윈도우 보안 인증과 패스워드
윈도우 보안 인증과 패스워드

인증 동작 원리

  1. 사용자가 ID/PW 입력
  2. GINA에서 입력받은 ID/PW를 LSA에 전달
  3. LSA가 내부에서 NTLM을 실행시켜 검증 시작
  4. NTLM이 SAM에 저장된 기존 사용자 정보와 동일한지 비교
  5. 비교 결과가 맞으면 SRM에서 사용자에게 고유 SID 부여
  6. 부여된 SID가 사용자에게 전달되면서 실행 권한 획득

인증 프로세스 역할

Winlogon

  • Windows 로그인 프로세스의 한 부분

GINA(Graphical Identification and Authentication)

  • Winlogon 내에서 msGINA.dll을 로딩시켜 사용자가 입력한 계정과 패스워드를 LSA에 전달

LSA(Local Security Authority)

  • 전달받은 계정과 패스워드를 검증하기 위해 NTLM(NT Lan Manager) 모듈을 로딩하고 모든 계정의 로그인에 대한 검증
  • 시스템 자원 및 파일 등에 대한 접근 권한을 검사(로컬, 원격 모두 해당)
  • SRM이 작성한 감사 로그를 기록하는 역할 수행
  • NT 보안의 중심 요소이며 보안 서브 시스템(Security Subsystem)이라고도 함

SAM(Security Account Manager)

  • 사용자, 그룹 계정 보호(암호화된 해시값)에 대한 데이터베이스를 관리(사용자 계정 정보 저장)
  • 사용자의 로그인 입력 정보와 SAM 데이터베이스 정보를 비교하여 인증 여부 결정
  • 리눅스의 /etc/shadow와 같은 역할, 중요하므로 복사본 존재
  • SAM 위치 : %systemroot%\system32\config\sam

SRM(Security Reference Monitor)

  • SAM이 사용자의 계정과 패스워드가 일치하는지를 확인하여 SRM에 알려주면 사용자에게 고유 SID 부여
  • SID에 기반하여 파일이나 디렉터리 접근제어를 하게 되고 이에 대한 감사 메시지 생성

패스워드 구조

패스워드 블록구조

  • SAM에서 관리
  • 패스워드 길이와 관계없이 8byte가 하나의 블록
  • 7byte(문자열 저장) + 1byte(패스워드 블록 정보)
  • 예 : 패스워드 ‘secure12’는 8개 문자이므로, 2개의 패스워드 블록으로 나누어짐

패스워드 블록구조 취약점

  • 하나의 패스워드 블록은 독립적으로 운영됨
  • secure12는 2개의 패스워드 블록 secure1, 2로 나누어짐. 블록1의 secure1의 경우는 7개 문자로 쉽게 크래킹 되지 않을 수도 있지만, 블록2의 2는 패스워드를 1개 문자로 설정한 것과 같아서 쉽게 크래킹 할 수 있음
  • 14개 문자 길이의 패스워드를 크래킹 하는 것은 7개 문자 길이의 패스워드를 2개 크래킹 하는 것과 같음
  • Unix/Linux의 경우 패스워드 블록이 없으므로, 1개 문자가 늘어남에 따라 패스워드 강도는 약 100배 정도 높아짐