Living Rough

Kerberos(커보로스)란? 본문

System & Security/Security

Kerberos(커보로스)란?

HJ호준 2023. 12. 10. 04:20

Kerberos가 무엇인지에 대해 알아보자.


Kerberos란?

 

Kerberos는 아테나 프로젝트의 일환으로, 대칭키 기반 분산 인증 시스템을 말한다.

한 클라이언트가 원격으로 서버에 자원하고, 서비스 요청 시마다 인증을 반복할 필요 없이, 각 서버가 사용자들의 비번을 저장할 필요 없이 하나만 인증하면 모든 서비스에 접속할 수 있도록 하는 것이다.

 

이때, 패스워드는 네트워크를 통해 전송이 되어서도, 메모리에 저장되어서도 안된다.

유저는 반드시 위 조건을 만족하며 하나의 로그인 세션을 통해 다른 서비스에 접속할 수 있어야 한다.

 

시스템 구성 요소는 다음과 같다 :

- 서버와 사용자

- AS(Authentication Server) : 모든 유저와 서버의 패스워드를 알고 있고, TGS(Ticket Granting Server)에게 제시할 티켓을 발급한다.

- TGS(Ticket Granting Server) : 이 서버는 티켓만 받는다. 서비스를 요청하면, 하나의 사용자는 하나의 서버에 하나의 티켓을 제시한다.

- Server에 제시할 티켓을 발급하는 역할을 한다.

 

Kerberos 컨셉

위와 같은 컨셉이 된다.

그렇다면 조금 더 자세히 살펴보자. 도대체 어떤 과정을 통해서 처음 인증만 하면 다른 서비스에 접속하게 되는 것일까?

커버로스의 요약 과정

 

1. UserAS에게  UserID, TGS이름을 Kuser-AS로 암호화하여 보낸다.

 

2. ASUserTGS간의 통신을 위한 세션키1 Kuser-TGS 생성하고(세션키 1), UserID KAS-TGS로 암호화하여 User에게 발급할 Ticket을 생성, 세션키1TicketKuser-AS로 암호화하여 보낸다.

 

3. 받은 2) Kuser-AS를 이용해 복호화해서 Kuser-TGS(세션키 2)Ticket을 얻는다. UserID 세션키2로 암호화해서 Ticket과 함께 TGS로 보낸다.

 

4. 받은 3)Kuser-TGS KAS-TGS복호화해서 User 정보와 요구 내용 확인, TGSUser와 Service Server간의 통신을 위한 (세션키 3) Kuser-server를 생성하고, 세션키3, UserID KTGS-server로 암호화하여 User에게 발급할 Ticket을 생성, 세션키3TicketKuser-TGS로 암호화하여 보낸다.

 

5. 받은 4) Kuser-TGS복호화해서 세션키 3인 Kuser-serverTicket(user, Server) 얻는다. Server에게 Kuser-server로 암호화한 UserIDTicket을 전송한다.

 

6. Server는 받는 5)TicketKTGS-server로 복호화 하여 세션키 3인 Kuser-server을 얻는다. 이걸로 UserID 복호화하여 사용자 확인을 한다.


커버로스의 장단점

 

  • TGS로부터 받은 티켓에는 발송 일자와 시간이 적혀 있기 때문에 일정 시간 동안(약 8시간 동안)에는 재인증 없이도 동일한 티켓으로 다른 추가 서비스를 요청할 수 있음(티켓을 제한된 시간 동안에만 유효하게 함으로써 후에 다른 사람이 그것을 사용할 수 없도록 함)
  • 기밀성과 무결성 보장
  • 이기종간 서비스 인증 가능(SSO)
  • 사용자 ID 관리가 간편

 

  • KDC 방식처럼 Single Point Failure, 즉 서버의 의존도가 높아 서버가 다운되면 서비스가 불가능하다.
  • 또한, Scalablility의 특성이 존재하기 때문에 
  • 비밀키, 세션키가 임시로 단밀기에 저장되어 공격당할 수 있음
  • 시간 동기화(동기화 안되면 느려짐, DoS 공격), 타임스템프로 인한 시간 동기화 필요

SSL과 Kerberos

 


이번 게시물에서는 커보로스의 특징에 대해 알아보았다.

이상으로 글을 마친다.

'System & Security > Security' 카테고리의 다른 글

TLS / SSL이란?  (0) 2023.12.10
Access Control이란?  (1) 2023.12.10
Diffie - Hellman(디피-헬만 키 교환)  (1) 2023.12.10
KDC와 CA  (1) 2023.12.10
S/MIME이란 무엇일까?  (0) 2023.12.09