Kerberos는 네트워크 인증 방식 중 하나입니다. 주 목적은 보안이 보장되지 않은 네트워크 환경에서 요청을 보내는 유저와 서버가 서로의 신뢰성을 확보하기 위함입니다.
주의해야 할 점은, Kerberos는 사용자의 신원을 인증해주는 역할만 하지, 그 사용자가 접근할 수 있는 서비스나 리소스를 검증하지는 않습니다. 즉, 리소스에 대한 사용자의 액세스를 결정하는 것은 각 서비스의 책임이라고 보시면 됩니다.
그러면 어떻게 Kerberos가 사용자의 신원을 인증해줄 수 있는지, 그 방법을 알아보기 전에, 주요 용어부터 짚고 넘어가겠습니다.
Windows 운영체제 같은 경우엔, Windows2000 이상 버전부터 Kerberos를 기본 인증 방법으로 사용하고 있습니다. 클라이언트를 Windows 도메인에 가입시킬 경우, 해당 클라이언트에서 Windows 도메인 및 해당 도메인과 신뢰 관계가 있는 모든 도메인의 서비스에 대한 인증을 Kerberos를 통해 한다고 보시면 됩니다.
반대로 클라이언트나 서버 둘 중에 하나라도 신뢰관계에 있지 않다면 인증을 위해 NTLM을 사용한다는데 이건 나중에 다룰 일이 있다면… 언젠가…
KDC(Key Distribution Center) : 서버와 사용자에 대한 신뢰관계 정보를 관리하는 중앙 DB AS (Authentication Server) : 인증서버, 사용자로부터 인증을 수락하는 서버 TGS (Ticket Granting Server) : 티켓 발급 서버, 각 서버를 이용하기 위한 티켓을 발급하는 서버 Principal : KDC가 인증하는 사용자 및 서버 Realm : 동일한 KDC아래의 시스템들을 논리적 그룹으로 정의