Kerberos
kerberos는 MIT에서 개발한 인증 프로토콜이다. 인증을 위해 총 3번의 request, response를 거친다.
application layer에서 동작하는 프로토콜이다. 안전한 인증을 위한 프로토콜인데, 4버전과 5버전이 존재한다. 현재 4버전은 취약점이 발견되어 사용하지 않는다. 특징으로는 비밀번호를 요청에 넣지 않고 key를 사용해서 인증한다는 점이다. 비밀번호를 재료로 한 대칭 key를 만들어 인증을 수행한다.
Kerberos version 4 message exchange
Kerberos protocol은
ticket
을 기반으로 작동한다. client는 ticket을 복호화할 수 없다. 또한, 아래 3가지 서버는 동기화가 되어 있어야 한다.
- AS(Authentication Server)를 통해 TGS와 통신할 수 있는 Tickettgs을 발급받는다.
- TGS(Ticket Grant Server)를 통해 Service Server와 통신할 수 있는 Ticketv을 발급받는다.
- Service Server(v)와 통신한다.
위 정보를 기반으로 message exchange 과정을 살펴보자.
kerberos ver4 client와 AS, TGS간의 message exchange
kerberos ver4 client와 Service(v)간의 message exchange
마무리하며
kerberos ver4에서 어떻게 인증이 이루어지는지 알아보았다. spring security kerberos
가 2024.12.16 기준 2.1.1
버전까지 나왔다. 다음 포스팅에서 어떻게 spring boot에서 이를 사용하는지 다루어 보도록 하겠다.