본문 바로가기
란 모음집

커버로스 프로토콜(Kerberos Protocol)이란?

by burdock129 2022. 12. 28.
반응형

커버로스 프로토콜이란

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

커버로스를 사용하는 경우

1. 서버의 수가 점점 많아지고, 유저의 수도 많아져서 사용자와 권한에 대한 관리 비용이 높아지는 경우
2. 서버별로 접근 가능한 사용자를 관리해야 하는 경우
3. 서버가 추가될 때마다 혹은 유저가 추가/삭제돼 때마다 유저를 등록 관리해야 하는 경우

커버로스 장점

1. 기밀성과 무결성 보장

2. 재생공격 예방

3. 이기종간 서비스 인증 가능

4. 대칭키를 사용하여 도청으로부터 보호

 

커버로스 단점

1. 사용자 몰림으로 인해 과도한 티켓 생성 시 서버 부하가 발생할 수 있다.

2. AS 다운 시 인증과정이 중단된다.

3. 각 서버의 시간 설정이 잘못되어있는 경우 인증 과정에서 문제가 발생한다.

4. 프로토콜의 표준화가 진행되지 않아 서버마다 구현이 상이합니다.

 

커버로스에 대해서 알아야 할 용어

Ticket Granting Server(TGS) : SS서버와 통신하기 위한 티켓

Authentication Server(AS) : 사용자의 아이디와 패스워드를 인증하고, TGS와 통신하기 위한 티켓을 사용자에게 발급해주는 서버

Ticket Granting Ticket(TGT) : 티켓을 받기 위한 티켓

Service Server(SS) : 서비스를 하는 서버


1. 유저는 유저 아이디를 인증서버(AS)로 전송한다. (로그인 요청)
2. 인증서버(AS)는 전송받은 아이디가 데이터베이스에 있는지 확인하고 있다면 암호화된 TGS와 TGT를 생성해서 유저에게 보낸다.
    - TGS 세션키는 데이터베이스 안에 있는 유저의 패스워드를 키로해서 암호화한다.
    - TGT(Tiket Granting Tiket) : 티켓을 받기 위한 티켓
3. 유저는 인증서버(AS)로부터 받은 정보를 이용해 TGS 세션키를 얻고, Authenticator를 만들어 TGT와 함께 TGS에 보낸다.
    - TGS 세션키는 유저의 패스워드를 통해 만들었기 때문에 복호화 가능하다.
    - Authenticator는 유저 아이디와 타임스탬프를 TGS 세션키로 암호화한 데이터이다.
4. TGS는 유저로부터 받은 TGT와 Autenticator를 복호화하여 유저 아이디가 일치하는지 확인하고, 일치한다면 유저에게 티켓과 SS 세션키를 발급해준다.
5. 유저는 TGS로 부터 받은 SS세션키를 복호화하여 또다른 Authenticator를 만들고 티켓과 함께 SS에 보낸다.
    - 유저는 TGS 세션키가 있으므로 SS세션키를 복호화할 수 있다.
    - Authenticator는 유저 아이디와 타임스탬프를 SS 세션키로 암호화한 데이터다.
6. SS는 유저로 부터 받은 Autehenticator와 티켓을 복호화하여 유저 아이디가 일치하는지 확인한 후, 일치한다면 Authenticator에 들어있던 타임스탬프를 SS 세션키로 암호화하여 유저에게 보낸다.
7. 유저는 받은 데이터를 SS 세션키로 복호화하여 5번에서 SS에게 보낸 타임스탬프와 일치하는지 여부를 확인한다.

 

반응형