네트워크 환경에서 티켓 기반의 인증 프로토콜
핵심 목적 : 비밀번호를 네트워크에 반복적으로 보내지 않고, 한 번 인증받은 사용자가 여러 서비스에 안전하게 접근하도록 하는 것
등장배경
- 커버로스는 네트워크에서 사용자를 안전하게 인증하기 위해 만들어진 인증 프로토콜이다. 기존의 인증과정에서는 로그인 정보를 암호화 해서 보내며, 사용자가 여러 서비스를 사용할 경우 인증할 때마다 비밀번호 관련 정보가 그때마다 계속해서 네트워크를 지나가야 했다.
- 암호화로 부족한 이유는, 공격자가 암호문을 해독하지 못하더라도 암호된 패킷자체를 복사해서 그대로 재전송하여 서버를 착각시킬 수 있는 문제가 존재했다.
- 또한 서비스 별로 계속 로그인 해야했다.
→ 사용자가 인증서버에 한 번만 인증하고 , 이후에 인증이 필요한 경우에는 “티켓”을 사용해서 반복전송하는 경우도 없애고, 중앙 인증구조를 제공하며 서버 간 신뢰구조를 형성할 수 있고 SSO구현을 할 수 있다.
→ 커버로스는 중앙인증서버 “KDC”를 중심으로 동작한다.
KDC
├─ AS (Authentication Server)
└─ TGS (Ticket Granting Server)
주요 용어 정리
[KDC] - Key Distribution Center
- 커버로스의 중앙 인증 서버
- 사용자 인증과 티켓 발급을 발급한다.
[AS] - Authentication Server
- 사용자가 처음 로그인할 때 인증을 수행한다.
- 정상 사용자이면 TGT를 발급한다.
[TGS] - Tickent Granting Ticket
- 서비스 티켓을 발급받기 위한 티켓이다.
- 사용자가 최초 인증할 때 AS로부터 전달받는다.
[Session key]
- 사용자와 서버가 일정 시간 동안 통신할 때 사용되는 임시 대칭키이다.
[Realm]
- Kerberos 인증이 적용되는 관리 영역이다.
- 윈도우의 active Direcory 에서의 “도메인”과 비슷한 개념이다.