You are here: Comics > Miscellaneous > Kerberos (01.2007)


Kerberos was the three-headed dog of Hades, the god of the greek underworld.


It is also an authentication server system for single sign-on, which I hardly understood. So I decided to make a drawing.

The centralized Kerberos servers implement the

  • Kerberos-trusted Key Distribution center (KDC)
  • Kerberos Ticket Granting Service (TGS)
  • Kerberos Authentication Server (AC)






    Client-TGS Server: Initial Exchange

  • User enters an ID and password on the client workstation
  • The client temporarily generates the clients secret key Kc from the password by using a one-way hash function.
  • The client sends a request for authentication to the TGS server by using the client's ID in the clear (no password or secret key is sent).
  • The TGS server returns a client/TGS session key (Kc, tgs), which is encryted in the secret key of the client, and a Ticket Granting Ticket (TGT) encrypted in the secret key(Ktgs) of the TGS server.
  • The TGT consists of the client ID, the client network address, the starting and ending time that the ticket is valid (v), and the client/TGS session key.

    Symbolically, these initial messages from the TGS server to the client are represented as follows:
    [Kc, tgs] Kc
    TGT[c, a, v, Kc, tgs] Ktgs

    The client decrypts the message containing the session key (Kc, tgs) with its secret key(Kc) and now uses this session key to communicate with the TGS server. Then , the client erases ists stored secret key to avoid compromising the secret key.







    Client to TGS Server: Request for Service

    When requesting access to a specific service on the network from the TGS server, the client sends two messages to the TGS server.
    In one message the client submits the previously obtained TGT which is encrypted in the secret key (Ktgs) of the TGS server an an identification of the server (s) from which the service is requested.
    The other message is an authentication that is encrypted in the assigned session key (Kc, tgs) The authenticator contains the client ID, a timestamp, and an optional additional session key.

    TGT = s, [c,a,v,Kc, tgs] Ktgs
    Authenticator = [c,t,key] Kc, tgs







    TGS Server to Client: Issuing Ticket for Service

    After receiving a valid TGT an an authentication from the client requesting a service, the TGS server issues a ticket (T) to the client that is encrypted in the server's secret key (Ks) and a client/server session key (Kc, s) that is encrypted in the client TGS sessions key (Kc, tgs).

    Ticket Tc, s = s, [c, a, v, Kc, s] Ks
    [Kc, s]Kc, tgs







    Client to Server Authentication: Exchange and Providing of Service

    To receive service from the server (or servers), the client sends the ticket (Tc, s) and an authenticator to the server. The server decrypts the message with its secret key (Ks) and checks the contents. The contens contain the client's address, the valid time window (v), and the client/server session key (Kc, s), which wil now be used for communication between the client and server. The server also checks the authenticator, and if that timestamp is valid, it provides the requested service to the client. The client messages to the server are as follows:

    Ticket Tc = s, [c, a, v, Kc, s] Ks
    Authenticator = [c, t, key] Kc, s







    ...and Providing of Service...







    ... till the session time-out...








    [Source: The CISSP Prep Guide
    Ronald L. Krutz & Russell Dean Vines]

    Thank's to re2!