LDAP을 이용한 Kerberos 인증(1)

  • Kerberos 개요

커버로스는 중앙집중형 인증방식으로 한번의 인증으로 여러 서비스를 이용할 수 있는 통합 인증(SSO : Single Sign On) 기능을 제공합니다.

대칭키 암호기법을 기반으로 하는 티켓기반 인증 프로토콜로써 윈도우 서버 운영체제의 기본 인증방법으로 활용되고 있으며 분산 환경을 위한  SSO의 대표 예입니다.

 

  • Kerberos 구성
구성요소 설명 비고
KDC(Key Distribution Center) 키 분배 서버

모든 사용자와 서비스들의 암호화키 보유

TGS와 AS로 구성
AS(Authentication Server) 실질적 인증 수행
TGS(Ticket Granting server) 티켓 부여 서버
Ticket 사용자에 대한 인증 확인을 위한 토큰

다른 주체들과 통신 시 패스워드 재입력을 필요하지 않게 함

Principals 인증을 위하 Kerberos 프로토콜을 사용하는 모든 개체

 

  • Kerberos 동작방식

AS는 모든 사용자의 패스워드를 알고 있으며, 중앙저장소에 저장합니다. 이 때 중앙 저장소는 분산환경에서의 인증 및 권한을 위해 설계된 LDAP을 주로 사용합니다.

실제 Kerberos의 동작방식은 다음의 그림을 통해 설명하도록 하겠습니다.

[그림] Kerberos 동작방식

1. 사용자가 ID/PW 또는 공개키로 로그인을 시도

2. 클라이언트는 유저 아이디를 인증서버(AS)로 전송

3. 인증서버(AS)는 중앙저장소(LDAP)에 유저 아이디 확인 후 존재할 경우 다음을 반환

– 클라이언트 PW 기반으로 암호화한 티켓 발급 서버(TGS)의 세션키
– 클라이언트 ID, 주소, 유효기간, TGS 세션키를 TGS 비밀키로 암호화한 티켓발급용 티켓(TGT : Ticket Granting Ticket)

4. 클라이언트는 다음 두 가지를 티켓 발급 서버(TGS)에게 전송

– 클라이언트 ID, Timestamp를 TGS 세션키로 암호화한 인증자
– 티켓 발급용 티켓(TGT) (클라이언트는 TGS 비밀키를 모르므로 복호화 및 조작 불가)

5. 티켓 발급 서버(TGS)는 인증자(TGS 세션키로 복호화)와 TGT(TGS 비밀키로 복호화)를 복호화 하여 Client ID가 일치할 경우 아래 두 메시지를 반환

– 티켓발급서버(TGS) 세션키로 암호한 SS 세션키
– 클라이언트 ID, 주소, 유효기간, SS세션키를 SS 비밀키로 암호화한 티켓

6. 클라이언트는 다음 두 메시지를 서비스 서버(SS)로 전달

– 클라이언트 ID, Timestamp를 SS 세션키로 암호화한 인증자
– 티켓

7. 서비스 서버(SS)는 Ticket, 인증자를 복호화하여 Client ID가 일치 할 경우 다음 메시지를 반환

– Timestamp를 SS세션키로 암호화하여 반환

8. 클라이언트는 전달받은 timestamp와 자신이 인증자에 담아보냈던 timestamp의 값을 확인하여 일치하는 경우 실제 작업을 시작

 

  • Kerberos 인증방식의 장단점
장점 단점
기밀성과 무결성 보장 패스워드 사전공격에 취약
재생공격 예방 비밀키, 세션키가 임시로 단밀기에 저장되어 공격당할 수 있음
이기종간 서비스 인증 가능(SSO) 타임스템프로 인한 시간 동기화 필요
대칭키를 사용하여 도청으로부터 보호 KDC가 단일 실패지점으로 TGS&AS는 물리 공격 및 악성코드에 취약

답글 남기기