Kerberos 5단계 인증 프로세스

agnusdei·2025년 12월 8일

Information Security

목록 보기
56/96
post-thumbnail

🛡️ 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) \rightarrow KDC의 인증 서비스 (AS)
  • 내용: 클라이언트는 자신의 사용자 ID와 접근하고자 하는 KDC의 TGS (Ticket-Granting Service) ID를 평문으로 AS에 보냅니다. (암호화되지 않은 요청)

2단계: 인증 서비스 응답 (AS Response) - TGT 발급

  • 주체: KDC의 AS \rightarrow 클라이언트 (C)
  • 목적: 클라이언트가 이후 서비스 티켓을 요청할 때 사용할 TGT (Ticket-Granting Ticket)를 발급합니다. TGT는 보통 8시간 유효합니다.
  • 응답 구성 요소:
    1. 세션 키 (Session Key) - TGT용: 클라이언트와 TGS 간의 안전한 통신을 위해 사용될 임시 대칭 키. 이 키는 클라이언트의 암호 해시로 암호화되어 전송됩니다.
    2. TGT: 클라이언트의 ID, 세션 키, 유효 기간, 인가 데이터(Authorization Data) 등의 정보를 포함합니다. 이 TGT는 TGS의 비밀 키로 암호화되어 전송됩니다.
  • 클라이언트 작업: 클라이언트는 자신의 암호 해시를 사용하여 암호화된 세션 키를 해독합니다. TGT는 TGS의 키로 암호화되어 있어 클라이언트는 TGT를 해독할 수 없습니다.

3단계: 티켓 부여 서비스 요청 (TGS Request)

  • 주체: 클라이언트 (C) \rightarrow KDC의 티켓 부여 서비스 (TGS)
  • 목적: 클라이언트가 실제 접근하려는 서비스(S)에 대한 서비스 티켓을 요청합니다.
  • 요청 구성 요소:
    1. TGT: 2단계에서 받은 암호화된 TGT (TGS만 해독 가능).
    2. 인증자 (Authenticator): 클라이언트 ID, 타임스탬프 등을 포함하며, TGT용 세션 키로 암호화됩니다. TGS가 클라이언트의 신분을 검증하는 데 사용합니다.
    3. SPN (Service Principal Name): 접근하고자 하는 서비스의 고유 식별자 (예: HTTP/webserver.corp.local).

4단계: 티켓 부여 서비스 응답 (TGS Response) - 서비스 티켓 발급

  • 주체: TGS \rightarrow 클라이언트 (C)
  • 목적: 요청한 서비스에 대한 서비스 티켓(Service Ticket)을 발급합니다.
  • TGS의 주요 작업:
    • TGS는 자신의 비밀 키로 TGT를 해독하여 TGT용 세션 키를 추출합니다.
    • 추출된 TGT용 세션 키를 사용하여 인증자를 해독하여 클라이언트의 신원을 확인하고 요청의 적법성(시간, 재전송 여부 등)을 검증합니다.
  • 응답 구성 요소:
    1. 서비스 세션 키 (Service Session Key): 클라이언트와 서비스 서버 간의 통신에 사용될 새로운 세션 키. 이는 TGT용 세션 키로 암호화되어 전송됩니다.
    2. 서비스 티켓 (Ticket): 클라이언트 ID, 서비스 세션 키, 유효 기간 등의 정보를 포함합니다. 이 티켓은 서비스 서버의 비밀 키로 암호화되어 전송됩니다.
  • 클라이언트 작업: 클라이언트는 TGT용 세션 키를 사용하여 암호화된 서비스 세션 키를 해독합니다. 서비스 티켓은 서버의 키로 암호화되어 있어 클라이언트는 해독할 수 없습니다.

5단계: 서비스 요청 (AP Request) 및 상호 인증

  • 주체: 클라이언트 (C) \rightarrow 서비스 서버 (S)
  • 목적: 클라이언트는 서비스 서버에 접근하여 상호 인증을 수행하고 서비스를 사용합니다.
  • 요청 구성 요소:
    1. 서비스 티켓: 4단계에서 받은 암호화된 서비스 티켓 (서비스 서버만 해독 가능).
    2. 새로운 인증자: 클라이언트 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 세션 키를 받고, 이 세션 키로 서비스 세션 키를 받고, 최종적으로 이 서비스 세션 키로 통신 보안을 확보하는 "키의 계층적 교환 및 사용" 메커니즘을 제공합니다.

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글