커버로스 Kerberos 흐름

agnusdei·2025년 11월 26일

CTF

목록 보기
179/185
post-thumbnail

1. Kerberos의 개요 및 동작 원리

가. Kerberos (커버로스) 정의

  • 개념: MIT(Massachusetts Institute of Technology)에서 개발한 티켓(Ticket) 기반의 분산 컴퓨팅 환경을 위한 네트워크 인증(Authentication) 프로토콜입니다.
  • 목표: 안전하지 않은 네트워크 환경에서 클라이언트와 서버가 상호 인증(Mutual Authentication)을 수행할 수 있도록 하며, 사용자가 자원에 접근할 때마다 비밀번호를 전송하는 위험을 제거하고 Single Sign-On (SSO)을 구현합니다.
  • 핵심: TTP (Trusted Third Party, 신뢰할 수 있는 제3자)KDC (Key Distribution Center, 키 분배 센터)를 통해 보안을 보장합니다.

나. Kerberos 3대 구성 요소

구분명칭 (Full Name)역할
ASAuthentication Server (인증 서버)초기 로그인 시 사용자(Client)를 인증하고 TGT를 발급합니다.
TGSTicket-Granting Server (티켓 발급 서버)TGT를 확인한 후, 특정 서비스 접근을 위한 Service Ticket (서비스 티켓)을 발급합니다.
SSService Server (서비스 서버)클라이언트가 최종적으로 접근하고자 하는 자원을 제공하며, Service Ticket을 통해 클라이언트를 인증합니다.

다. Kerberos 동작 4단계 (4-Way Handshake)

Kerberos는 대칭키 암호화(Symmetric-Key Cryptography)를 사용하여 티켓을 암호화하고 세션 키(Session Key)를 안전하게 전달합니다.

  1. AS 요청 (Authentication Service Request): 클라이언트가 AS에 사용자 ID를 보내 TGT (Ticket-Granting Ticket)를 요청합니다.
  2. AS 응답 (AS Reply): AS는 사용자 ID를 확인하고, TGTTGS 세션 키(Session Key)를 사용자의 패스워드 해시 값으로 암호화하여 클라이언트에게 전송합니다.
    • TGT: TGS의 비밀키로 암호화되어 TGS만 해독할 수 있습니다.
  3. TGS 요청 (Ticket-Granting Service Request): 클라이언트는 수신한 TGS 세션 키를 자신의 패스워드로 복호화하여 얻은 후, 이 세션 키로 인증자(Authenticator)를 생성하고 TGT와 함께 TGS에 서비스 티켓을 요청합니다.
  4. TGS 응답 (TGS Reply): TGS는 TGT를 복호화하여 유효성을 확인하고, 요청된 서비스 서버(SS)의 비밀키로 암호화된 Service TicketSS 세션 키(Session Key)를 클라이언트에게 전송합니다.
  5. 서비스 요청 및 인증 (Service Request): 클라이언트가 Service Ticket과 SS 세션 키로 생성한 인증자(Authenticator)를 SS에 전송하여 최종적으로 서비스를 이용합니다. 이 과정에서 SS는 Service Ticket을 자신의 비밀키로 복호화하여 클라이언트를 인증합니다.

2. 수행능력표 (Capability Tables)의 역할 및 접근통제 메커니즘

가. 수행능력표 (Capability Tables) 정의

제시된 이미지의 내용처럼, 수행능력표는 주체별로 접근 가능한 객체(자원)와 접근 방식(권한)을 지정한 테이블 또는 자료구조입니다.

  • 관점: 주체(Subject, 사용자) 중심의 접근 통제입니다. (반대 개념: 객체 중심의 ACL (Access Control List, 접근 제어 목록))
  • Kerberos에서의 역할: Kerberos는 기본적으로 인증(Authentication) 프로토콜이지만, Service Ticket 내부에 인가(Authorization) 정보를 포함하여 접근통제를 지원합니다.

나. 티켓 내의 접근통제 (인가) 정보

Kerberos의 Service Ticket은 단순히 '클라이언트가 인증되었다'는 사실만 담고 있지 않고, 종종 '인가(Authorization)' 관련 정보를 포함하여 접근통제 수단으로 활용됩니다.

  1. Ticket-Granting Ticket (TGT): TGS에 접근할 권한을 부여합니다.

  2. Service Ticket (ST): 특정 서비스 서버(SS)에 접근할 권한을 부여하며, 이 티켓 내의 인가 데이터(Authorization Data) 필드에 클라이언트가 속한 그룹 정보나 기타 접근 통제 관련 속성 정보가 담길 수 있습니다.

    즉, Service Ticket 자체가 특정 자원(서비스 서버)에 대한 접근 권한(Capability)을 부여하는 토큰(Token) 역할을 수행합니다.

다. 접근통제 모델 관점의 해석

모델특징
Capability List수행능력표(Capability Tables)는 주체(사용자)가 가진 권한 목록을 명시합니다. Kerberos의 티켓은 이 Capability List의 개념을 암호화된 토큰(Ticket) 형태로 구현한 것입니다.
RBAC (Role-Based Access Control)실제 Active Directory 환경 등에서 Kerberos를 사용할 때, Service Ticket 내부에 사용자 계정의 그룹(Group) 또는 역할(Role) 정보를 포함시켜 이 정보를 기반으로 서버에서 최종적인 인가(Authorization) 결정을 수행하게 됩니다.
DAC (Discretionary Access Control)Service Ticket을 받은 클라이언트가 해당 티켓을 서버에 제시하여 서버가 접근을 허용하면, 이는 DAC의 한 형태로 볼 수도 있습니다.

3. Kerberos의 보안상 장점 및 취약점 (기술사 관점)

구분장점 (Strong Points)취약점 (Weak Points)
보안상호 인증 (클라이언트 ↔ 서버), 재전송 공격 방지 (타임 스탬프 사용), 네트워크 스니핑 방지 (평문 패스워드 미사용)KDC 단일 실패 지점(SPOF): KDC 서버가 다운되면 전체 인증 시스템 마비.
운영SSO 구현 용이, 분산 환경에 적합하여 관리 편리시계 동기화 필수: KDC와 클라이언트 간의 시간 차이가 클 경우 인증 실패.
공격Kerberoasting: 서비스 계정의 해시를 탈취하여 오프라인으로 크래킹 시도. Golden/Silver Ticket: KDC 비밀키(Golden) 또는 서비스 비밀키(Silver) 탈취 시 위조 티켓 생성 가능.

Kerberos는 강력한 인증 메커니즘을 제공하지만, 완벽한 접근통제(인가)를 위해서는 Active Directory 등과 연동하여 티켓 내 정보를 기반으로 서버에서 최소 권한 원칙(Principle of Least Privilege)이 적용된 정책 기반 인가(Policy-Based Authorization)를 반드시 수행해야 합니다.

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

0개의 댓글