Kerberos is a network authentication protocol designed to provide strong authentication for client-server applications. Kerberos has the following characteristics:
Secure. Kerberos achieves security through its use of tickets. Tickets are time-limited cryptographic messages that provide a user’s identity to a given server without either sending the password over the network or caching the password on the local user’s hard drive.
Single Sign On. Once a user is Kerberos authenticated, the user’s credentials are transparently passed to every other requested resource. This means that the user only needs to log in once to access all Kerberos-aware network resources.
Trusted Third Party. All Kerberos authentication requests are routed through a centralised server that all servers inside the network inherently trust.
Mutual Authentication. Kerberos protects the confidentiality of sensitive information by ensuring that the server being contacted is genuine. Mutual authentication ensures that not only the user is who he claims to be, but also proves that the server being contacted is who it claims to be.
Goals
Kerberos attempts to improve security and convenience at the same time.
Centralize Authentication into one or a set of servers.
Kerberos operates through a set of centralized Key Distribution Centers (KDCs). Each KDC on the network contains a database of usernames and passwords for all users and Kerberos-enabled services. Centralizing this information eases the burden on administrators as they now only need to maintain this single database.
Provide a secure means of authentication over insecure networks.
Instead of sending plaintext passwords over the network, Kerberos uses encrypted tickets to prove the identity of both parties. Tickets are generated by the Key Distribution Centers on behalf of the user wishing to authenticate.
Evolution
The Kerberos protocol has gone through several major revisions since it’s inception as part of Project Athena. Each revision have had major improvements in the protocol’s usability, extensibility, and security.
Early Kerberos. Kerberos versions 1-3
Kerberos versions 1 through 3 were only used internally at MIT. Early Kerberos implementations had significant limitations and were only used for examining new ideas and observe the practical issues that arose during development and testing.
Kerberos 4
Released in January 1989, Kerberos 4 was adopted by several Operating System vendors. Other large distributed projects such as the Andrew File System, adopted the concepts behind Kerberos 4 for their own authentication mechanisms.
Due to export control restrictions in the United States, Kerberos 4 could not be exported. Kerberos 4 uses DES encryption which made it illegal for organizations outside of the US to download the software as-is from MIT. To overcome this restriction, the MIT development team created a specialized, exportable version of Kerberos which does not include encryption. This version was later modified by the University of Australia to again include the DES encryption.
The original Kerberos 4 implementation is no longer developed and is considered obsolete. The Swedish-developed kth-krb distribution, is still actively developed but it is highly recommended that new installations use the superior, Kerberos 5 instead.
Kerberos 5
Kerberos 5 is the latest version of the Kerberos protocol. It is documented in RFC 1510. Several new features were added to correct the deficiencies in previous versions:
- Credential forwarding and delegation
- Replay cache
- A more flexible cross-realm authentication
- Extensible encryption types
- Pre-authentication
Many Kerberos 5 implementations are available including ones from MIT, Heimdal, Microsoft, and Apple. As with Kerberos 4, the MIT distribution is only available to US residents however, a group in Sweden is developing and distributing the Heimdal Kerberos 5 distribution, which is unencumbered by any export laws.
The Kerberos Clarification Document being written by the IETF Kerberos working group, includes several new features that will further extend the Kerberos protocol and provide for future growth and interoperability with the current Kerberos 5 implementations.