[네트워크] 커버로스(kerberos)란?
Network

[네트워크] 커버로스(kerberos)란?

728x90

kerberos는 그리스 신화에서 유래하여 "지옥에서 온 머리가 3개 달린 경비견" 이라는 뜻으로 케르베로스 라고도 불리기도하죠.

 

이러한 이름을 가지고 있는 kerberos는 MIT에서 개발한 티켓 기반의 컴퓨터 네트워크 인증 프로토콜입니다.

 

왜 만들어졌나요?

프로젝트 Athena가 제공하는 네트워크 서비스를 보호할 목적으로 처음에 만들어지게 되었습니다. 하지만 일반적으로는 보안이 보장되지 않은 네트워크 환경에서 유저와 서버의 신뢰성을 확보하기 위해서 사용됩니다. 더 쉽게 말하면 인증된 클라이언트만이 서버에 접속할 수 있도록 관리해줍니다.

 

신뢰성을 어떻게 확보하죠?

바로 위에서 말한 티켓을 사용하여 진행됩니다. 커버로스에서 티켓은 아래 정보를 안전하게 전달하는데 사용되는 정보 패킷입니다.

  • 유저 아이디
  • 유저 host IP 주소
  • timestamp
  • 티켓 수명
  • 세션키

암호화된 위 정보를 통해서 클라이언트와 서버는 서로 믿을 수 있는지에 대한 과정을 거치며 확인합니다

 

커버로스 동작 과정

커버로스 인증 메커니즘에는 아래 4가지가 존재합니다.

  • 클라이언트: 인증을 얻길 원하는 사용자의 컴퓨터
  • 서버: 클라이언트가 접근하려고 하는 컴퓨터
  • 인증서버: 클라이언트를 인증해주는 컴퓨터
  • 티켓 발급 서버: 티켓을 클라이언트에게 발급해주는 서버

위 그림처럼 내가 누구인지 인증하고(아이디 패스워드 로그인), 티켓을 발급받고 서버에 접근할 수 있게됩니다.

 

주의할 점

커버로스 서버는 하나이기 때문에 서버가 다운될 경우 새로운 유저는 로그인할 수 없게됩니다. 또한 시간(timestamp)에 대한 요구가 엄격하기 때문에 호스트들 간의 시간 동기화가 되어있지 않을 경우 인증 과정에서 문제가 발생합니다. 과도한 티켓 생성시 서버 부하가 발생할 수 있습니다.

 

출처:
- 커버로스 (Kerberos)
- [네트워크] 커버로스(kerberos)란?
- Kerberos 인증 구성
- 커버로스(Kerberos) 프로토콜
728x90