□ 커버로스(Kerberos)란?

  • 티켓(ticket) 기반의 컴퓨터 네트워크 인증 프로토콜. 클라이언트 서버 모델을 목적으로 개발되었으며 사용자와 서버가 서로 식별할 수 있는 상호 인증(양방향 인증)을 제공한다.
  • 보안이 보장되지 않은 네트워크 환경에서 요청을 보내는 유저와 요청을 받는 서버가 서로의 신뢰성을 확보하기위해 사용된다.

* 티켓(ticket) : 유저 아이디를 안전하게 전달하는 데 사용되는 정보 패킷으로, [유저 아이디, 유저 호스트의 IP 주소, 타임 스탬프(time stamp, 시간 기록), 티켓 수명을 정의하는 값, 세션 키] 등을 포함한다

 

□ 커버로스의 구성요소

- KDC(Key Distribution Center)

: 키 분배 서버(Kerberos에서 가장 중요한 시스템)

: 모든 사용자와 서비스들의 암호화키(비밀키, secret key)를 보유

: 신뢰할 수 있는 제3의 기관으로서 티켓을 생성, 인증서비스를 제공

: 클라이언트와 서비스는 KDC의 무결성을 신뢰하며, 이러한 신뢰는 커버로스 보안의 근간

: 사용자의 패스워드는 비밀키로 변환됨. 이 비밀키는 주체와 KDC 사이에서 "민감한 데이터를 전송"하기 위해 사용되며, "사용자 인증 목적"을 위해서도 사용됨

: TGS와 AS로 구성

 

- AS(Authentication Service)

: 실질적으로 인증을 수행

: 사용자에 대한 인증을 수행하는 KDC의 부분 서비스

 

- TGS(Ticket Granting Service)

: 티켓 부여 서비스

: 티켓을 부여하고 티켓을 분배하는 KDC의 부분 서비스

 

- SS(Service Server, Resource Server)

: 유저가 최종적으로 통신하고자 하는 목적지 서버

 

- Ticket

: 사용자에 대해 신원과 인증을 확인하는 토큰

: 사용자가 다른 주체들과 통신이 필요할 때마다 패스워드를 입력하지 않도록 도와 줌

 

- Principals

: 인증을 위하여 커버로스 프로토콜을 사용하는 모든 실체

 

□ 커버로스의 동작절차

이미지 출처 https://kim-dragon.tistory.com/187

1,2(Request TGT) : 사용자는 워크스테이션에 로그인하고 호스트의 서비스를 요청한다

3(TGT+Session Key) :  AS는 사용자가 DB에 접근권한이 있는지 확인한다. 그리고 TGT(Ticket Granting Ticket, 티켓을 받기 위한 티켓) 와 세션키를 생성한다. 그 결과물을 사용자의 패스워드로부터 유도한 키를 사용하여 암호화한다.

4(Request Ticket + Auth) : 워크스테이션은 사용자에게 프롬프트를 통해 패스워드를 묻고, 그것으로 수신되는 메시지를 복호화한 다음(유저는 당연히 자신의 패스워드를 알고 있으므로, AS로부터 받은 정보를 복호화하여 TGS 세션 키를 얻을 수 있다.) 사용자 이름, 네트워크 주소, TGS의 시간이 기록된 티켓과 인증자를 보낸다.

5(Ticket + Session Key) : TGS는 티켓과 인증자를 복호화하고, 요청을 확인하고 요청된 서버에 사용할 티켓을 생성한다.
6(Request Service + Auth) : 워크스테이션은 티켓과 인증자를 서버에 보낸다.

7(Server Authentication) : 서버는 티켓과 인증자가 일치되는지를 확인하고, 서비스에 대한 접근을 허락한다. 만약 쌍방 인증이 필요한 경우라면 서버는 인증자를 반환한다.

 

□ 특징

  • 세션 키는 비밀 키와 다른 개념이다.
  • 세션 키는 유저와 서비스 간의 통신에 필요한 키이다.
  • 커버로스에서 유저는 TGS, SS와 통신을 하게 되므로, 두 개의 세션 키를 필요로 한다.
  • 비밀 키는 서비스가 유저에게 만들어서 보내줄 티켓을 암호화하거나, 서비스가 유저로부터 전달받은 티켓의 복호화를 위해 가지고 있는 키이다.
  • 티켓의 복호화를 위해 TGS는 TGS 비밀 키를 가지고 있고, SS는 SS 비밀 키를 가지고 있다.
  • 티켓의 암호화를 위해 AS는 TGS 비밀 키를 가지고 있고, TGS는 SS 비밀 키를 가지고 있다.
  • 또한 세션 키는 티켓 안에 들어갈 데이터 중 하나이기 때문에 AS는 TGS 세션 키를 가지고 있고, TGS는 SS 세션 키를 가지고 있다.

 

□ 커버로스의 장단점

장점 단점
- 데이터의 기밀성과 무결성 보장
- 재생공격 예방
- 개방된 이기종 간의 컴퓨터에서 자유로운 서비스 인증이 가능(SSO)
- 대칭키를 사용하여 도청으로부터 보호
- 패스워드 사전공격에 약함
- 비밀키, 세션키가 임시로 단말기에 저장되어 침입자에 의해 탈취당할 수 있음
- TimeStamp로 인해 시간동기화 프로토콜이 필요
(요청 시간에 대한 요구가 엄격함(통상적으로 5분). 만약 요청을 주고받는 호스트들 간에 시간 동기화가 되어있지 않을 경우 통신이 불가능)
- 비밀키 변경 필요
- KDC가 단일실패지점(SPoF, Single Point of Failure)이 될 수 있음
- KDC는 많은 수의 요청을 처리 가능해야 함(즉, 확장 가능성이 있어야 함)
- TGS & AS는 물리적 공격 및 악성코드의 공격에 취약

 

 

'Study' 카테고리의 다른 글

WEB/WAS 취약점 진단 참고 - WebtoB  (1) 2023.10.27
Windows Powershell(2)  (0) 2022.08.05
Windows Powershell  (0) 2022.08.04
Puzzing 기본  (0) 2021.04.07

+ Recent posts