[보안기사]1강 원도우 인증 과정

정보보안기사를 준비하면서 매일 공부한 내용을 정리해서 남겨보려 합니다. 오늘은 시스템 보안의 출발점이라 할 수 있는 윈도우 인증 구조를 다뤘습니다. 시험에서도 자주 나오는 개념이지만, 실무에서 로그 분석할 때도 바로 쓰이는 내용이라 확실히 짚고 넘어가는 게 좋겠더라고요.

윈도우 로그인, 그 뒤에서는 무슨 일이?

우리가 윈도우 컴퓨터를 켜고 아이디/비밀번호를 입력하는 그 짧은 순간, 뒤에서는 세 개의 핵심 서비스가 손발을 맞춰 움직입니다. 이 셋의 역할만 정확히 구분해도 인증 파트의 절반은 이해한 셈입니다.

LSA
Local Security Authority
SAM
Security Account Manager
SRM
Security Reference Monitor
서비스 하는 일
LSA 모든 로그인 요청을 받아 검증하고, 파일 등 시스템 자원에 대한 접근 권한을 검사한다. 계정명과 SID를 짝지어 관리하고, SRM이 만든 감사 로그도 기록한다. 사실상 윈도우 보안의 관제탑 역할.
SAM 사용자·그룹 계정 정보를 담은 데이터베이스. 로그인 시 입력된 정보와 저장된 값을 비교해 인증 여부를 가른다. 계정, 그룹, 암호화된 비밀번호가 모두 이 안에 있다.
SRM 인증이 끝난 사용자에게 SID를 부여하고, 이 SID를 근거로 특정 파일·폴더에 접근을 허용할지 판단한다. 판단 결과는 감사 메시지로 남긴다.

정리하면 LSA가 창구, SAM이 신원 확인 대장, SRM이 출입증 발급 및 검사를 담당하는 그림입니다.

로컬 인증과 도메인 인증, 뭐가 다를까

같은 로그인이라도 “내 컴퓨터에만 로그인”하는 것과 “회사 도메인에 로그인”하는 것은 뒤에서 벌어지는 일이 다릅니다.

① 로컬 인증
Winlogon 로그인 시작
↓ 인증 정보 전달
LSA(NTLM) → SAM 조회
↓ 접근 토큰 발급
새 프로세스 시작
② 도메인 인증
Winlogon 로그인 시작
↓ 로컬/도메인 여부 판단(Kerberos)
내 PC의 LSA → 도메인 컨트롤러(DC) 문의
DC의 LSA(커버로스+액티브 디렉토리)가 응답
↓ 접근 토큰 발급
새 프로세스 시작

즉 로컬 인증은 “내 PC 안에서 다 끝나는” 구조이고, 도메인 인증은 커버로스 프로토콜을 통해 “도메인 컨트롤러에 물어보고 답을 받는” 구조라는 점이 핵심 차이입니다.

SAM 파일, 왜 이렇게 조심스럽게 다룰까

SAM 파일에는 계정과 암호화된 비밀번호 정보가 통째로 들어 있습니다(경로: C:\Windows\System32\config\SAM). 이 파일이 뚫리면 사실상 계정 전체가 뚫리는 셈이라, 실무에서는 다음 두 가지를 반드시 점검합니다.

  • 접근 권한 최소화 — Administrators, SYSTEM 그룹 정도만 남기고 그 외 그룹/계정의 접근 권한은 제거
  • 불필요한 계정 정리 — 안 쓰는 그룹·계정에 권한이 남아있지 않은지 주기적으로 확인

시스템 취약점 점검 항목에도 항상 들어가는 부분이라, 실제 서버 점검할 때도 이 폴더 권한부터 확인하는 습관을 들이면 좋을 것 같습니다.

SID, 계정마다 붙는 고유 번호

SID(Security Identifier)는 사용자·그룹마다 부여되는 고유 식별번호입니다. 로그인하면 이 SID가 담긴 접근 토큰이 만들어지고, 그 토큰이 이후 실행되는 모든 프로세스에 그대로 따라붙습니다. 구조를 뜯어보면 이렇게 생겼습니다.

S-1-5-21-<시스템 고유값 3묶음>-<계정 식별자>
구성 요소 의미
S-1 윈도우 시스템임을 나타내는 고정값
5-21 도메인 컨트롤러 또는 단독(stand-alone) 시스템임을 의미
시스템 고유값 해당 컴퓨터만의 고유 식별자. 같은 PC에 윈도우를 다시 설치해도 값이 겹치지 않는다
계정 식별자(RID) 500=관리자(Administrator), 501=게스트(Guest), 1000 이상=일반 사용자

참고로 이 정보는 윈도우 관리 명령 콘솔(WMIC)에서 wmic > useraccount list brief 명령으로 직접 확인할 수 있습니다.

Challenge-Response, 비밀번호를 그대로 보내지 않는 이유

아이디·비밀번호를 그냥 평문으로 보내는 방식은 중간에 가로채이면 그대로 노출됩니다. 그래서 윈도우는 Challenge-Response 방식을 씁니다. 순서는 이렇습니다.

1. 사용자 → 서버 : 인증 요청
2. 서버 : 랜덤한 Challenge 값 생성
3. 서버 → 사용자 : Challenge 값 전송
4. 사용자 : Challenge 값 + 내 비밀번호로 Response 값 계산
5. 사용자 → 서버 : Response 값 전송
6. 서버 : Response 값 검증
7. 서버 → 사용자 : 인증 성공/실패 통보

비밀번호 자체는 네트워크에 실리지 않고, “비밀번호로 계산한 결과값”만 오간다는 게 포인트입니다.

해시 알고리즘의 진화: LM → NTLM → NTLMv2

  • LM 해시 — 윈도우 2000·XP 시절 기본 알고리즘. 구조적으로 취약해서 비스타 이후로는 기본적으로 사용하지 않는다.
  • NTLM 해시 — LM 해시에 MD4 해시를 더한 형태.
  • NTLMv2 해시 — 비스타 이후 기본 프로토콜. 이전 알고리즘과는 완전히 다른 방식으로 해시를 생성하며, 지금 기준으로도 크래킹이 쉽지 않다.

참고로 로컬 보안 정책의 “네트워크 보안: LAN Manager 인증 수준” 항목은 시스템 취약점 분석·평가 항목에도 나오는데, 실무에서는 “NTLMv2 응답만 보내기”로 설정하는 걸 권장합니다.

패스워드 크래킹, 공격 방식 4가지 비교

공격 방식 핵심 아이디어
사전 대입 공격
(Dictionary Attack)
자주 쓰는 단어, 키보드 순서(qwer1234 등), 주민번호·이름 등을 사전 파일로 만들어 하나씩 대입
무차별 대입 공격
(Brute Force Attack)
가능한 문자 범위를 정하고 그 안에서 만들 수 있는 모든 조합을 대입. 보통 사전 공격이 실패한 다음 시도
혼합 공격
(Hybrid Attack)
사전 파일의 단어 뒤에 숫자·문자를 무작위로 붙여서 대입(예: gooday1004처럼 단어+숫자 조합을 노림)
레인보우 테이블
(Rainbow Table)
하나의 비밀번호에서 출발해 변이 함수로 여러 변형을 만들고, 각 변형의 해시를 체인으로 엮어 미리 만들어 둔 테이블. Reduction 함수 반복으로 해시값을 역추적해 비밀번호를 찾아낸다

오늘 정리 한 줄 요약

  • 윈도우 인증은 LSA(검문) · SAM(신원 대장) · SRM(출입증 발급) 3단 구조로 돌아간다
  • 로컬 인증은 내 PC 안에서, 도메인 인증은 커버로스로 DC에 확인받는 구조
  • SAM 파일은 접근 권한을 Administrators/SYSTEM으로 최소화해야 하는 핵심 보호 대상
  • SID는 S-1-5-21-고유값-RID 구조, RID 500=관리자·501=게스트·1000 이상=일반 사용자
  • 비밀번호는 평문으로 보내지 않고 Challenge-Response로 검증
  • 해시는 LM → NTLM → NTLMv2 순으로 강화, 지금은 NTLMv2가 기본
  • 크래킹 방식은 사전 대입 · 무차별 대입 · 혼합 · 레인보우 테이블 4가지가 핵심

※ 이 글은 개인 학습을 정리한 내용으로, 특정 교재나 강의의 표·그림을 그대로 옮긴 것이 아니라 제 나름대로 재구성한 내용입니다.

관련 글 보기

  • 샘플 포스트 2

    예비비는 총액으로 국회의 의결을 얻어야 한다. 예비비의 지출은 차기국회의 승인을 얻어야 한다. 헌법재판소 재판관의 임기는…