Kerberos

Overview [1]#

Kerberos is a computer network authentication protocol, in other words, which allows nodes communicating over a non-Transport-layer Security Mechanism to prove their identity to one another in a secure manner.

Kerberos designers aimed primarily at a client-server model, and it provides mutual Authentication.

Kerberos protocol messages replay attacks.

Kerberos uses Symmetric Key Cryptography and requires a trusted third party. Extensions to Kerberos can provide for the use of Public Key cryptography during certain phases of authentication.

Standards#

The Kerberos Network Authentication Service (V5) was defined within RFC 1510

Kerberos Authentication and Access to a Resource#

Kerberos Authentication and Access to a Resource is performed in various Exchanges:

Software#

Kerberos is also a "free" and Open Source software published by Massachusetts Institute of Technology (MIT) that implements this protocol.

Kerberos is used within Microsoft Active Directory as the preferred Authentication Protocol.

Kerberos is Legacy Protocol#

Kerberos was created to accomplish authorization when no-one used a secure network connections. Today, everyone should be using a secure connections.

Kerberos was created to keep from passing username and clear-text passwords over the network. Today, everyone should be using a secure connection.

Kerberos is complex to set-up and maintain.

Kerberos cannot be used in scenarios where users want to connect to services from unknown/untrusted clients as in a typical Internet or cloud computer scenario, where the authentication provider typically does not have knowledge about the users client system. This implies Kerberos does not work well with Modern REST applicaitons and Authentication Methods:

Advantages and Disadvantages of Kerberos#

Advantages of Kerberos#

Most conventional network services use password-based authentication schemes. Such schemes require a user to authenticate to a given network server by supplying their username and password. Unfortunately, the transmission of authentication information for many services is un-encrypted. For such a scheme to be secure, the network has to be inaccessible to outsiders, and all computers and users on the network must be trusted and trustworthy.

Any attacker who gains access to the network can use a simple packet analyzer, also known as a packet sniffer, to intercept usernames and passwords sent in this manner, compromising user accounts and the integrity of the entire security infrastructure.

The primary design goal of Kerberos is to eliminate the transmission of un-encrypted passwords across the network. If used properly, Kerberos effectively eliminates the threat packet sniffers would otherwise pose on a network.

Disadvantages of Kerberos#

Currently, kerberized services do not make use of Pluggable Authentication Modules (PAM) ? kerberized servers bypass PAM completely.

However, applications that use PAM can make use of Kerberos for authentication if the pam_krb5 module is installed. The pam_krb5 package contains sample configuration files that allow services like login and gdm to authenticate users as well as obtain initial credentials using their passwords. If access to network servers is always performed using kerberized services or services that use GSSAPI, such as IMAP, the network can be considered reasonably safe.

Some other known Disadvantages of Kerberos:

Kerberos Information#

Network Security#

Kerberos generally distrusts the security of the underlying network. Kerberos does, however, assume that application hosts and especially hosts used in the operation of the Kerberos Key Distribution Center (KDC) are secure. Specifically Kerberos:

Kerberos Security Advisories#

The list of Kerberos Security Advisories

Kerberos Principal#

Kerberos defines two different types of accounts (or Principals). The two different names given to these types of accounts are UserPrincipalName (UPN), and Service Principal Name SPN. We would typically relate these two types of principals to Active Directory users and computers.

Identity Provider (IDP)#

The Kerberos 5 authentication back end does not contain a Kerberos Database (Identity Provider (IDP)) and MUST be paired with one in order to function properly.

Some information required by the Kerberos authentication back end must be supplied by the Kerberos Database, such as the user's UserPrincipalName (UPN), and Service Principal Name (SPN) for each entity to work in Kerberos.

Kerberos Anomalies #

Kerberos CANNOT distinguish between 'Account Disabled', 'Account Locked out' and 'Account Expired'. They share the same Kerberos error code 18. LDAP can distinguish them by providing multiple return codes.

Kerberos vs LDAP#

LDAP was designed as a directory access protocol. Kerberos was designed as an authentication protocol.

LDAP has multiple authentication mechanisms including:

Kerberos with extensions can provide some limited additional information.

Microsoft Active Directory supports:

Thus, if the client understands any of those SASL Mechanisms, it can actually use that for the authentication. As such, Kerberos may be used by an application during an LDAP Bind Request if the client understands this.

Troubleshooting Kerberos#

Some tips on Troubleshooting Kerberos.

More Information#

There might be more information for this subject on one of the following: