🛡️ Kerberos 5단계 인증 프로세스
Kerberos는 분산 네트워크 환경에서 보안 주체(Principal) 간의 상호 인증(Mutual Authentication)을 제공하는 대칭 키(Symmetric Key) 기반의 네트워크 인증 프로토콜입니다. 클라이언트가 서비스 서버에 접근할 때 제3자 신뢰 기관인 KDC (Key Distribution Center)를 통해 티켓(Ticket)을 발급받아 사용하는 것이 핵심입니다.
Windows Active Directory (AD) 환경에서 Kerberos 인증은 사용자 로그온부터 서비스 접근까지 총 5단계의 주요 과정으로 이루어집니다.
1. Kerberos 핵심 구성 요소
Kerberos 인증 프로세스를 이해하기 위한 세 가지 핵심 구성 요소입니다.
| 구성 요소 | 약어 | 역할 |
|---|
| 클라이언트 (Client) | C | 서비스를 요청하는 주체 (사용자, 컴퓨터 등) |
| 서비스 서버 (Server) | S | 클라이언트에게 자원이나 서비스를 제공하는 주체 |
| 키 분배 센터 (Key Distribution Center) | KDC | 신뢰 기관으로, 인증 서비스(AS)와 티켓 부여 서비스(TGS)의 두 부분으로 구성 |
2. 5단계 인증 프로세스 (티켓 요청 및 서비스 접근)
Kerberos 인증은 크게 ① TGT 발급 (로그온 시점)과 ② 서비스 티켓 발급 및 사용 (서비스 접근 시점)의 두 부분으로 나뉘며, 총 5단계로 진행됩니다.
1단계: 인증 서비스 요청 (AS Request)
- 주체: 클라이언트 (C) → KDC의 인증 서비스 (AS)
- 내용: 클라이언트는 자신의 사용자 ID와 접근하고자 하는 KDC의 TGS (Ticket-Granting Service) ID를 평문으로 AS에 보냅니다. (암호화되지 않은 요청)
2단계: 인증 서비스 응답 (AS Response) - TGT 발급
- 주체: KDC의 AS → 클라이언트 (C)
- 목적: 클라이언트가 이후 서비스 티켓을 요청할 때 사용할 TGT (Ticket-Granting Ticket)를 발급합니다. TGT는 보통 8시간 유효합니다.
- 응답 구성 요소:
- 세션 키 (Session Key) - TGT용: 클라이언트와 TGS 간의 안전한 통신을 위해 사용될 임시 대칭 키. 이 키는 클라이언트의 암호 해시로 암호화되어 전송됩니다.
- TGT: 클라이언트의 ID, 세션 키, 유효 기간, 인가 데이터(Authorization Data) 등의 정보를 포함합니다. 이 TGT는 TGS의 비밀 키로 암호화되어 전송됩니다.
- 클라이언트 작업: 클라이언트는 자신의 암호 해시를 사용하여 암호화된 세션 키를 해독합니다. TGT는 TGS의 키로 암호화되어 있어 클라이언트는 TGT를 해독할 수 없습니다.
3단계: 티켓 부여 서비스 요청 (TGS Request)
- 주체: 클라이언트 (C) → KDC의 티켓 부여 서비스 (TGS)
- 목적: 클라이언트가 실제 접근하려는 서비스(S)에 대한 서비스 티켓을 요청합니다.
- 요청 구성 요소:
- TGT: 2단계에서 받은 암호화된 TGT (TGS만 해독 가능).
- 인증자 (Authenticator): 클라이언트 ID, 타임스탬프 등을 포함하며, TGT용 세션 키로 암호화됩니다. TGS가 클라이언트의 신분을 검증하는 데 사용합니다.
- SPN (Service Principal Name): 접근하고자 하는 서비스의 고유 식별자 (예:
HTTP/webserver.corp.local).
4단계: 티켓 부여 서비스 응답 (TGS Response) - 서비스 티켓 발급
- 주체: TGS → 클라이언트 (C)
- 목적: 요청한 서비스에 대한 서비스 티켓(Service Ticket)을 발급합니다.
- TGS의 주요 작업:
- TGS는 자신의 비밀 키로 TGT를 해독하여 TGT용 세션 키를 추출합니다.
- 추출된 TGT용 세션 키를 사용하여 인증자를 해독하여 클라이언트의 신원을 확인하고 요청의 적법성(시간, 재전송 여부 등)을 검증합니다.
- 응답 구성 요소:
- 서비스 세션 키 (Service Session Key): 클라이언트와 서비스 서버 간의 통신에 사용될 새로운 세션 키. 이는 TGT용 세션 키로 암호화되어 전송됩니다.
- 서비스 티켓 (Ticket): 클라이언트 ID, 서비스 세션 키, 유효 기간 등의 정보를 포함합니다. 이 티켓은 서비스 서버의 비밀 키로 암호화되어 전송됩니다.
- 클라이언트 작업: 클라이언트는 TGT용 세션 키를 사용하여 암호화된 서비스 세션 키를 해독합니다. 서비스 티켓은 서버의 키로 암호화되어 있어 클라이언트는 해독할 수 없습니다.
5단계: 서비스 요청 (AP Request) 및 상호 인증
- 주체: 클라이언트 (C) → 서비스 서버 (S)
- 목적: 클라이언트는 서비스 서버에 접근하여 상호 인증을 수행하고 서비스를 사용합니다.
- 요청 구성 요소:
- 서비스 티켓: 4단계에서 받은 암호화된 서비스 티켓 (서비스 서버만 해독 가능).
- 새로운 인증자: 클라이언트 ID, 현재 타임스탬프 등을 포함하며, 서비스 세션 키로 암호화됩니다.
- 서비스 서버의 작업 (상호 인증):
- 서버는 자신의 비밀 키로 서비스 티켓을 해독하여 서비스 세션 키를 추출합니다.
- 추출된 서비스 세션 키로 인증자를 해독하여 클라이언트의 신원과 요청의 적법성을 최종 검증합니다.
- (옵션) 서버는 서비스 세션 키로 암호화된 자신의 인증자를 클라이언트에게 다시 보내 클라이언트의 서버 신뢰 여부까지 확인하는 상호 인증을 완료합니다.
- 결과: 상호 인증 성공 시, 서버는 클라이언트에게 서비스를 제공합니다.
3. 기술사적 판단: Kerberos의 특징 및 이점
| 특징 | 설명 | 기술사적 관점 |
|---|
| SSO (Single Sign-On) | 최초 한 번의 로그온(1~2단계)으로 TGT를 발급받으면, 이후 티켓 유효기간 동안 비밀번호 재입력 없이 모든 서비스에 접근 가능. | 사용자 편의성 및 운영 효율성 극대화. |
| 상호 인증 (Mutual Auth.) | 클라이언트와 서버 모두 서로의 신원을 확인하여 신뢰할 수 없는 서버(Man-in-the-Middle)로부터 클라이언트를 보호. | 보안성 강화, 특히 분산 환경에서의 ID 위조 방지. |
| 전이적 신뢰 (Transitive Trust) | 포리스트나 도메인 간에 설정된 신뢰 관계를 통해 한 도메인의 TGT로 다른 도메인의 서비스 티켓을 발급받아 접근 가능. | 대규모 기업 환경에서 ID 연합(Federation) 및 자원 접근 관리를 용이하게 함. |
| 대칭 키 기반 | 모든 암호화 및 복호화에 대칭 키(비밀 키)를 사용하여 비용 효율적이며 고성능의 인증 처리 속도 제공. | 대용량 트래픽 환경에 적합한 아키텍처. |
Kerberos 5단계 프로세스는 복잡해 보이지만, 클라이언트의 암호 해시로 TGT 세션 키를 받고, 이 세션 키로 서비스 세션 키를 받고, 최종적으로 이 서비스 세션 키로 통신 보안을 확보하는 "키의 계층적 교환 및 사용" 메커니즘을 제공합니다.