Kerberos

2021. 4. 21. 22:10보안\암호화

Kerberos란

Kerberos는 티켓 기반의 컴퓨터 네트워크 인증 프로토콜입니다. 보안이 보장되지 않은 네트워크 환경에서 클라이언트와 서버가 서로의 신뢰성을 확보하기위해 사용됩니다. Kerberos는 클라이언트 - 서버이외에 제 3의 컴퓨터가 클라이언트의 사용자를 인증합니다. 인증을 통해 서버는 클라이언트의 사용자가 올바른 사용자인지 확인하게 되고 클라이언트 - 서버간 통신이 가능해집니다.

Kerberos의 장점

  • 기밀성과 무결성 보장
  • 재생공격 예방
  • 이기종간 서비스 인증 가능
  • 대칭키를 사용하여 도청으로부터 보호

Kerberos의 단점

  • 사용자 몰림으로 인해 과도한 티켓 생성 시 서버 부하가 발생할 수 있습니다.
  • AS(Authentication Server) 다운 시 인증 과정이 중단됩니다.
  • 각 서버의 시간 설정이 잘못되어 있는 경우 인증 과정에서 문제가 발생합니다.
  • 프로토콜의 표준화가 진행되지 않아 서버마다 구현이 상이합니다.

Kerberos의 동작 과정

(1) 사용자가 로그인을 시도

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

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

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

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

  • 클라이언트 ID, Timestamp를 TGS 세션키로 암호화한 인증자
  • TGT(클라이언트는 TGS 비밀키를 모르기 때문에 복호화 및 조작 불가)

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

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

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

  • 클라이언트 ID, TimeStamp를 서비스 서버(SS) 세션키로 암호화한 인증자
  • 티켓

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

  • Timestamp를 서비스 서버(SS) 세션키로 암호화하여 반환

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

728x90

'보안\암호화' 카테고리의 다른 글

서버 기반 인증 vs 토큰 기반 인증  (0) 2021.12.08
CORS  (0) 2021.11.01
접근 통제 모델  (0) 2021.03.05
HMAC  (0) 2021.01.14
암호화 알고리즘  (0) 2020.06.04