Email This Page
Kerberos: Network Authentication Protocol
Kerberos is a network authentication protocol. Kerberos is designed to provide strong authentication for client/server applications by using secret-key cryptography. This is accomplished without relying on authentication by the host operating system, without basing trust on host addresses, without requiring physical security of all the hosts on the network, and under the assumption that packets traveling along the network can be read, modified, and inserted at will. Kerberos performs authentication under these conditions as a trusted third-party authentication service by using conventional cryptography, i.e., shared secret key.
The authentication process proceeds as follows: A client sends a request to the authentication server (AS) requesting "credentials" for a given server. The AS responds with these credentials, encrypted in the client's key. The credentials consist of 1) a "ticket" for the server and 2) a temporary encryption key (often called a "session key"). The client transmits the ticket (which contains the client's identity and a copy of the session key, all encrypted in the server's key) to the server. The session key (now shared by the client and server) is used to authenticate the client, and may optionally be used to authenticate the server. It may also be used to encrypt further communication between the two parties or to exchange a separate sub-session key to be used to encrypt further communication.
The authentication exchanges mentioned above require read-only access to the Kerberos database. Sometimes, however, the entries in the database must be modified, such as when adding new principals or changing a principal's key. This is done using a protocol between a client and a third Kerberos server, the Kerberos Administration Server (KADM). The administration protocol is not described in this document. There is also a protocol for maintaining multiple copies of the Kerberos database, but this can be considered an implementation detail and may vary to support different database technologies.
Protocol Structure - Kerberos: Network Authentication Protocol
|
8 |
16 |
32 |
Variable |
|
Version |
Reserved |
Packet Length |
TPDU |
|
Message Length |
Kerberos messages:
The Client/Server Authentication Exchange
Message directionMessage type
1. Client to Kerberos KRB_AS_REQ
2. Kerberos to client KRB_AS_REP or KRB_ERROR
The Client/Server Authentication Exchange
Message directionMessage type
Client to Application server KRB_AP_REQ
Application server to client KRB_AP_REP or KRB_ERROR
The Ticket-Granting Service (TGS) Exchange
Message direction Message type
1. Client to Kerberos KRB_TGS_REQ
2. Kerberos to client KRB_TGS_REP or KRB_ERROR
The KRB_SAFE Exchange
The KRB_PRIV Exchange
The KRB_CRED Exchange
Related Protocols
RADIUS , TACACS+
Sponsor Source
Kerberos is defined by MIT.
Reference
http://www.javvin.com/protocol/rfc1510.pdf : The Kerberos Network Authentication Service (V5)
http://www.javvin.com/protocol/rfc1964.pdf : The Kerberos Version 5 GSS-API Mechanism
http://web.mit.edu/kerberos/www/ : Kerberos: The Network Authentication Protocol |