커버로스(kerberos) 인증이란
커버로스 인증이란?
커버로스는 티켓이라는 개념을 기반으로 인증을 하여 안전한 통신을 제공하기 위한 프로토콜이라고 생각하면 될 것 같애. 자세한 과정은 아래에 그림과 함께 그려보도록 하자!
커버로스 통신 구조
- KDC (Key Distributjion Center) : 그 의미 그대로 키를 분배하는 센터라고 이해하면 될 것 같애. 이 키를 통해 암호화, 복호화를 진행하겠지.
- AS (Authentication Server) : 해당 방식에서는 인증을 진행할 때 믿을 수 있는 제 3의 시스템을 통해 진행을 하는데 그 녀석이 AS라고 일단은 생각하면 될 것 같다
- TGS (Ticket Granting Server) : 위에서 커버로스가 티켓을 기반으로 인증을 진행한다 하였는데 그 티켓을 발급해주는 녀석이야.
- Client
- Server
통신 과정
- 먼저 서비스 사용을 위한 요청을 AS에게 보내. 이 요청에는 Client의 id와 같은 식별할 수 있는 정보가 있겠찌. (이 요청은 AS와 공유하고있는 shared key를(=password) 이용해 암호화해서 보내)
- AS 에서는 클라이언트가 보내온 정보(userId)를 바탕으로 유저가 존재하는지 검증 후 존재한다면 Client에게 TGT(Ticket Granting Ticket)을 넘겨줘. 이때 TGT 정보는 또 다른 secret key로 암호화해서 보내줘.
- 클라이언트는 받은 TGT를 TGS(Ticket Granting Server)에 보내.
- TGS는 아까 AS가 TGT정보를 암호화할 때 사용한 키에 대해 복호화할 수 있는 키를 가지고 있어. 그래서 복호화 후 확인이 된다면 Client에게 Token을 반환해줘. 이때 이 Token은 통신하고자하는 Server 측에서 가지고 있는 (복호화할 수 있는) 키와 매칭되는 키로 암호화해서 보내줘
- 클라이언트는 이렇게 받은 Token을 가지고 Server 와 통신을 할 수 있게 되어져. 이 Token을 암호화하고 있는 키에 대해서는 Server에서 복호화할 수 있는 키를 가지고있다 했지.