서버가 몇대 없고, 사용자의 숫자도 얼마 안되는 경우 각 서버별로 수동으로 유저를 추가하거나 권한을 부여해서 수동으로 관리하는것이 가능하다. 하지만 아래와 같이 점점 서버의 숫자가 많아지고, 유저들도 늘어나는 경우 관리에 드는 비용이 점점 커진다.
이런 경우에는 클라이언트/서버 외에 제3의 인증서버(Authentication Server, AS)를 도입 하고, 이와 연동된 티켓 부여 서비스(Ticket Granting Service, TGS)를 통해 티켓을 발급하여 유효한 티켓이 있는 유저만 서비스 서버(Service Server, SS)에 접속을 할 수 있도록 제어하는 커버로스(Kerberos) 프로토콜 을 도입하여 편리하게 관리하는 것이 가능하다.
참고: 아래 설명에서 encrypt(키, 데이터)는 키값으로 데이터를 암호화 한다는 뜻이다.
클라이언트가 ID/PWD 또는 공개키 등으로 클라이언트의 머신에 먼저 로그인
클라이언트가 아래 메시지를 AS로 전송
AS는 User ID가 DB에 존재하는지 찾아본 후 존재하는 경우 아래 두 메시지를 리턴
클라이언트는 아래 두 메시지를 TGS로 전송 (TGS 세션키는 수신한 메시지를 복호화해서 획득)
TGS는 전달받은 TGT(TGS 비밀키로 복호화 가능), 암호화된 Authenticator (TGS 세션키로 복호화 가능)를 모두 복호화 해서 안에 담긴 Client ID가 일치하는지 확인하여 일치할 경우 아래 두 메시지를 리턴
클라이언트는 아래 두 메시지를 SS로 전송
SS는 전달받은 Ticket, Authenticator를 복호화 해서 안에 담긴 Client ID일치 확인 후 일치할 경우 아래 메시지를 리턴
클라이언트는 전달받은 timestamp와 자신이 Authenticator에 담아보냈던 timestamp의 값이 일치하는 확인 후, 일치할경우 실제 작업을 시작한다.