Sunteți pe pagina 1din 29

Kerberos

Department of Computer Science

Mahatma Gandhi College of Engineering

Vandithadam, Thiruvananthapuram, India

Abstract - In an open network computing environment, a network monitoring tools and learning other users and root
workstation cannot be trusted to identify its users correctly to passwords. Another big problem was some PC/ATs which
network services. Kerberos provides an alternative approach were lacking even fundamental internal security. To protect
whereby a trusted third-party authentication service is used to
the users’ data in the network environment as it had been
verify users’ identities. This paper gives an overview of the
Kerberos authentication model as implemented for MIT’s
protected in the timesharing environment Kerberos was
Project Athena. It describes the protocols used by clients, invented. Kerberos is an authentication system that uses
servers, and Kerberos to achieve authentication. It also describes symmetric key cryptography to protect sensitive information
the management and replication of database required. Kerberos on an open network. It is a ticket based system that issues a
is a computer network authentication protocol, which allows ticket encrypted with the user’s password when he or she logs
nodes communicating over a non-secure network to provide their in. The user decrypts the ticket and uses it to obtain tickets for
identity to one another in a secure manner. Its designers aimed other network services he or she wants to use. Because all
primarily at a client-server model, and it provides mutual information in tickets is encrypted, it is not susceptible to
authentication – both the user and the server verify each other’s
eavesdropping or misappropriation.
identity. Kerberos protocol messages are protected against
eavesdropping and replay attacks. It is designed to provide
strong authentication for client-server applications by using MIT developed Kerberos to protect network services
secret-key cryptography. In summary, Kerberos is a solution to provided by Project Athena. The protocol was named after the
the network security problems. It provides the tools of Greek mythological character Kerberos (or Cerberus), known
authentication and strong cryptography over the network to help in Greek mythology as being the monstrous three-headed
user secure his information systems across the entire enterprise. guard dog of Hades.

I. INTRODUCTION
B. Motivation
Computer security has been a problem since the very
beginning. Proper authentication and protection using In a network of users requiring services from many
cryptographic methods is a must in today’s electronic separate computers, there are three approaches one can take to
communication. Kerberos provides an infrastructure to access control: One can do nothing, relying on the machine to
achieve this using symmetric cryptography. which the user is logged in to prevent unauthorized access;
one can require the host to prove its identity, but trust the
A. History host’s word as to who the user is; or one can require the user
to prove her/his identity for each required service.
Kerberos was developed at the Massachusetts Institute of
Technology (MIT) during a project intended to integrate In a closed environment where all the machines are under
computers into the university’s undergraduate curriculum. The strict control, one can use the first approach. When the
project, called Athena, started in 1983 with UNIX timesharing organization controls all the hosts communicating over the
computers, having several terminals connected to each one, network, this is a reasonable approach.
but without a network connection. If a student or staff member
wanted to use any of the computers, he or she sat down at one In a more open environment, one might selectively trust
of these terminals. As soon as the terminals and old computers only those hosts under organizational control. In this case,
were substituted by newer workstations with network each host must be required to prove its identity. In those
connection, the project’s goal was to allow any user to sit protocols, authentication is done by checking the Internet
down at the workstation of his or her choice accessing his data address from which a connection has been established.
over the network (which is a very common scenario for every
network today). The problem of network eavesdropping In the Athena environment, we must be able to honor
became apparent. Since the network has been accessible from requests from hosts that are not under organizational control.
all over the campus, nothing prevented students from running
Users have complete control of their workstations: they can Kerberos’ judgement as to the identity of each of its other
reboot them, bring them up standalone, or even boot off their clients to be accurate. Timestamps (large numbers
own tapes. As such, the third approach must be taken; the user representing the current date and time) have been added to the
must prove her/his identity for each desired service. The original model to aid in the detection of replay. Replay occurs
server must also prove its identity. It is not sufficient to when a message is stolen off the network and resent later.
physically secure the host running a network server; someone
elsewhere on the network may be masquerading as the given A.Protocol
server.
Kerberos uses as its basis the symmetric Needham-
The environment places several requirements on an Schroeder protocol.
identification mechanism. First, it must be secure.
Circumventing it must be difficult enough that a potential 1)Needham-Schroeder Authentication
attacker does not find the authentication mechanism to be the
weak link. Someone watching the network should not be able An approach to secure authentication is the Needham-
to obtain the information necessary to impersonate another Schroeder protocol. It defines a three-party authentication
user. Second, it must be reliable. Access to many services will service and five step message chain. In the very first step the
depend on the authentication service. If it is not reliable, the client requests a session key for communication with a certain
system of services as a whole will not be. Third, it should be service. The requested session key and a message encrypted
transparent. Ideally, the user should not be aware of for the service is send back to the client encrypted with the
authentication taking place. Finally, it should be scalable. client’s key to protect it in an open network. The client
Many systems can communicate with Athena hosts. Not all of forwards the part for the service (which is encrypted with the
these will support the mechanism, but software should not service key) to the desired service. After that the service
break if they did. generates a random message which is sent back to the client
encrypted with the session key. This random message is
Kerberos is the result of our work to satisfy the above transformed in a predefined way and sent back to the server
requirements. When a user walks up to a workstation she/he encrypted with the session key as well to prove that A was the
“logs in”. As far as the user can tell, this initial identification sender of message number three. After performing these five
is sufficient to prove her/his identity to all the required steps the service can be sure that the client has authenticated
network servers for the duration of the login session. The itself correctly, because only the client knows the key to
security of Kerberos relies on the security of several decrypt message two.
authentication servers, but not on the system from which users This protocol is no longer considered secure as B does not
log in, or on the security of the end servers that will be used. know if the key is fresh. If an attacker obtains an old key he or
The authentication server provides a properly authenticated she can perform a replay attack and convince B that the key
user with a way to prove her/his identity to servers scattered they hold is the current key of A.
across the network.
2) Needham-Schroeder in Kerberos

II. KERBEROS Kerberos uses a variant of Needham-Schroeder, which uses


timestamps on every message to avoid the problem mentioned
Kerberos is a computer network authentication protocol, above. Due to the fact that it is a problem to keep all clocks
which allows nodes communicating over a non-secure returning exact the same time in a network environment, every
network to prove their identity to one another in a secure message is valid in a time window from five minutes in the
manner. The Kerberos protocol is designed to provide reliable past to five minutes in the future. In a short time slot of ten
authentication over open and insecure networks where minutes length replay attacks are impeded by a replay cache
communications between the hosts belonging to it may be held by every service. Messages are cached as long as they are
intercepted. However, one should be aware that Kerberos does valid and authentication attempts using messages which are
not provide any guarantees if the computers being used are already held in cache can be refused.
vulnerable: the authentication servers, application servers and
clients must be kept constantly updated so that the authenticity III. TERMINOLOGY
of the requesting users and service providers can be
guaranteed. Thus we can say that: "Kerberos is an This section provides the definition of the objects and
authentication protocol for trusted hosts on untrusted terms, knowledge of which is essential for the subsequent
networks". description of the Kerberos protocol.

Kerberos is a trusted third-party authentication service A.Realm


based on the model presented by Needham and Schroeder. It
is trusted in the sense that each of its clients believes
The term realm indicates an authentication administrative A ticket is something a client presents to an application
domain. Its intention is to establish the boundaries within server to demonstrate the authenticity of its identity. Tickets
which an authentication server has the authority to are issued by the authentication server and are encrypted using
authenticate a user, host or service. This does not mean that the secret key of the service they are intended for. Since this
the authentication between a user and a service that they must key is a secret shared only between the authentication server
belong to the same realm: if the two objects are part of and the server providing the service, not even the client which
different realms and there is a trust relationship between them, requested the ticket can know it or change its contents. The
then the authentication can take place. This characteristic is main information contained in a ticket includes:
known as Cross-Authentication • The requesting user's principal (generally the
username);
Basically, a user/service belongs to a realm if and only if • The principal of the service it is intended for;
he/it shares a secret (password/key) with the authentication • The IP address of the client machine from which the
server of that realm. ticket can be used. In Kerberos 5 this field is optional
and may also be multiple in order to be able to run
The name of a realm is case sensitive, i.e. there is a clients under NAT or multihomed.
difference between upper and lower case letters, but normally • The date and time (in timestamp format) when the
realms always appear in upper case letters. It is also good tickets validity commences;
practice, in an organization, to make the realm name the same • The ticket's maximum lifetime
as the DNS domain (in upper case letters though). Following
• The session key (this has a fundamental role which is
these tips when selecting the realm name significantly
described below);
simplifies the configuration of Kerberos clients, above all
when it is desired to establish trust relationships with
Each ticket has expiration (generally 10 hours). This is
subdomains. By way of example, if an organization belongs to
essential since the authentication server no longer has any
the DNS domain example.com, it is appropriate that the
control over an already issued ticket. Even though the realm
related Kerberos realm is EXAMPLE.COM.
administrator can prevent the issuing of new tickets for a
certain user at any time, it cannot prevent users from using the
B.Principal
tickets they already possess. This is the reason for limiting the
lifetime of the tickets in order to limit any abuse over time.
A principal is the name used to refer to the entries in the
authentication server database. A principal is associated with
D. Encryption
each user, host or service of a given realm. A principal in
Kerberos 5 is of the following type:
Kerberos often needs to encrypt and decrypt the messages
(tickets and authenticators) passing between the various
component1/component2/.../componentN@REALM
participants in the authentication. It is important to note that
Kerberos uses only symmetrical key encryption (in other
However, in practice a maximum of two components are used.
words the same key is used to encrypt and decrypt).
For an entry referring to a user the principal is the following
type:
1) Encryption type
Name[/Instance]@REALM

The instance is optional and is normally used to better qualify Kerberos 4 implements a single type of encryption which
the type of user. For example administrator users normally is DES at 56 bits. The weakness of this encryption plus other
have the admin instance. The following are examples of protocol vulnerabilities has made Kerberos 4 obsolete.
principals referred to users: Version 5 of Kerberos, however, does not predetermine the
number or type of encryption methodologies supported. It is
mark@EXAMPLE.COM the task of each specific implementation to support and best
admin/admin@EXAMPLE.COM negotiate the various types of encryption. However, this
pluto/admin@EXAMPLE.COM flexibility and expandability of the protocol has accentuated
interoperability problems between the various
If, instead, the entries refer to services, the principals assume implementations of Kerberos 5. In order for clients and
the following form: application and authentication servers using different
implementations to interoperate, they must have at least one
Service/Hostname@REALM encryption type in common. The difficulty related to the
interoperability between UNIX implementations of Kerberos
C. Ticket 5 and the one present in the Active Directory of Windows is a
classic example of this. Indeed, Windows Active Directory
supports a limited number of encryptions and only had DES at If a user has two accounts in different realms, it is fairly
56 bits in common with UNIX. This required keeping the frequent that the unencrypted password is the same for both
latter enabled, despite the risks being well known, if realms: thanks to the presence of the salt, a possible
interoperability had to be guaranteed. The problem was compromise of an account in one realm will not automatically
subsequently solved with version 1.3 of MIT Kerberos 5. This cause the other to be compromised.
version introduced RC4-HMAC support, which is also present
in Windows and is more secure than DES. Among the A null salt can be configured for compatibility with
supported encryptions (but not by Windows) the triple DES Kerberos 4. Vice versa, for compatibility with AFS, it is
(3DES) and newer AES128 and AES256 are worth possible to configure a salt which is not the complete name of
mentioning. the principal, but simply the name of the cell.

4) Key Version Number (kvno)

2) Encryption key

When a user changes a password or an administrator


updates the secret key for an application server, this change is
As stated above, one of the aims of the Kerberos protocol logged by advancing a counter. The current value of the
is to prevent the user's password from being stored in its counter identifying the key version is known as the Key
unencrypted form, even in the authentication server database. Version Number or more briefly kvno.
Considering that each encryption algorithm uses its own key
length, it is clear that, if the user is not to be forced to use a
different password of a fixed size for each encryption method
supported, the encryption keys cannot be the passwords. For E. Key Distribution Center (KDC)
these reasons the string2key function has been introduced,
which transforms an unencrypted password into an encryption
key suitable for the type of encryption to be used. This
The authentication server in a Kerberos environment,
function is called each time a user changes password or enters
based on its ticket distribution function for access to the
it for authentication. The string2key is called a hash function,
services, is called Key Distribution Center or more briefly
meaning that it is irreversible: given that an encryption key
KDC. Since it resides entirely on a single physical server (it
cannot determine the password which generated it (unless by
often coincides with a single process) it can be logically
brute force). Famous hashing algorithms are MD5 and
considered divided into three parts: Database, Authentication
CRC32.
Server (AS) and Ticket Granting Server (TGS).
3) Salt

In Kerberos 5, unlike version 4, the concept of password


1) Database
salt has been introduced. This is a string to be concatenated to
the unencrypted password before applying the string2key
function to obtain the key. Kerberos 5 uses the same principal
of the user as salt: The database is the container for entries associated with
users and services. We refer to an entry by using the principal
Kmark = string2key (Pmark + "mark@EXAMPLE.COM") (i.e. the name of the entry) even if often the term principal is
used as a synonym for entry. Each entry contains the
Kmark is the encryption key of the user mark and P mark is the
following information:
unencrypted password of the user.

This type of salt has the following advantages:


•The principal to which the entry is associated;
Two principals belonging to the same realm and having the
same unencrypted password, still have different keys. For
•The encryption key and related kvno;
example, imagine an administrator having a principal for
everyday work (mark@EXAMPLE.COM) and one for
•The maximum validity duration for a ticket
administrative work (mark/admin@EXAMPLE.COM). It is
associated to the principal;
very likely that this user has set the same password for both
principals for reasons of convenience. The presence of the salt •The maximum time a ticket associated to the
guarantees that the related keys are different. principal may be renewed (only Kerberos 5);
•The attributes or flags characterizing the behavior of administrator). These keys are called long term, since they do
the tickets; not change when the work session changes.

•The password expiration date;

•The expiration date of the principal, after which no However, it is necessary that the user also shares a secret
tickets will be issued. with the service, at least for the time in which a client has a
work session open on a server: this key, generated by the
KDC when a ticket is issued, is called the Session Key. The
copy intended for the service is enveloped by the KDC in the
In order to make it more difficult to steal the keys present ticket (in any case their application server knows the long
in the database, the implementations encrypt the database term key and can decode it and extract the session key), while
using the master key, which is associated with the principal the copy intended for the user is encapsulated in an encrypted
K/M@REALM. Even any database dumps, used as backups packet with the user long term key. The session key plays a
or for propagation from the KDC master towards the slave, fundamental role in demonstrating the authenticity of the user.
are encrypted using this key, which it is necessary to know in
order to reload them.

G. Authenticator

2) Authentication Server (AS)

Even if the user principal is present in a ticket and only the


application server can extract and possibly manage such
The Authentication Server is the part of the KDC which information (since the ticket is encrypted with the secret key
replies to the initial authentication request from the client, of the service), this is not enough to guarantee the authenticity
when the user, not yet authenticated, must enter the password. of the client. An impostor could capture (remember the
In response to an authentication request, the AS issues a hypothesis of an open and insecure network) the ticket when it
special ticket known as the Ticket Granting Ticket, or more is sent by a legitimate client to the application server, and at
briefly TGT, the principal associated with which is an opportune time, send it to illegitimately obtain the service.
krbtgt/REALM@REALM. If the users are actually who they On the other hand, including the IP addresses of the machine
say they are they can use the TGT to obtain other service from where it is possible to use it is not very useful: it is
tickets, without having to re-enter their password. known that in an open and insecure network addresses are
easily falsified. To solve the problem, one has to exploit the
fact that the client and server, at least during a session have
the session key in common that only they know (also the KDC
3) Ticket Granting Server (TGS) knows it since it generated it, but it is trusted by definition!!!).
Thus the following strategy is applied: along with the request
containing the ticket, the client adds another packet (the
authenticator) where the user principal and time stamp (it’s at
The Ticket Granting Server is the KDC component which
that time) are included and encrypts it with the session key;
distributes service tickets to clients with a valid TGT,
the server which must offer the service, upon receiving this
guaranteeing the authenticity of the identity for obtaining the
request, unpacks the first ticket, extracts the session key and,
requested resource on the application servers. The TGS can be
if the user is actually who he/she says, the server is able to
considered as an application server (given that to access it, it
unencrypt the authenticator extracting the timestamp. If the
is necessary to present the TGT) which provides the issuing of
latter differs from the server time by less than 2 minutes (but
service tickets as a service. It is important not to confuse the
the tolerance can be configured) then the authentication is
abbreviations TGT and TGS: the first indicates a ticket and
successful. This underlines the criticality of synchronization
the second a service.
between machines belonging to the same realm.

Credential
F. Session Key
H. Replay Cache

As we have seen, the users and services share a secret with


The possibility exists for an impostor to simultaneously
the KDC. For users, this secret is the key derived from their
steal both the ticket and the authenticator and use them during
password, while for services, it is their secret key (set by the
the 2 minutes the authenticator is valid. This is very difficult
but not impossible. To solve this problem with Kerberos 5,
Replay Cache has been introduced. In application servers (but
also in TGS), there exists the capacity to remember
authenticators which have arrived within the last 2 minutes,
and to reject them if they are replicas. With this the problem is
resolved as long as the impostor is not smart enough to copy
the ticket and authenticator and make them arrive at the
application server before the legitimate request arrives. This
really would be a hoax, since the authentic user would be
rejected while the impostor would have access to the service.

Fig 1.Authentication service verifies the user ID.


I. Credential Cache

Step 2: Upon verification, a timestamp is created. This puts


The client never keeps the user's password, nor does it the current time in a user session, along with an expiration
memorize the secret key obtained by applying string2key: date. The default expiration date of a timestamp is 8 hours.
they are used to decrypt the replies from KDC and The encryption key is then created. The timestamp ensures
immediately discarded. However, on the other hand, to that when 8 hours is up, the encryption key is useless. (This is
implement the single sign-on (SSO) characteristic, where the used to make sure a hacker doesn’t intercept the data, and try
user is asked to enter the password just once per work session, to crack the key. Almost all keys are able to be cracked, but it
it is necessary to memorize the tickets and related session key. will take a lot longer than 8 hours to do so.)
The place where this data is stored is called the "Credential
Cache". Where this cache needs to be located does not depend Step 3: The key is sent back to the client in the form of a
on the protocol, but varies from one implementation to ticket-granting ticket, or TGT. This is a simple ticket that is
another. Often for portability purposes they are located in the issued by the authentication service. It is used for
file system (MIT and Heimdal). In other implementations authenticating the client for future reference. (Fig 2)
(AFS and Active Directory), in order to increase security in
the event of vulnerable clients, the credential cache is placed
in an area of the memory accessible only to kernels and not
swappable on the disk.

IV. WORKING

Kerberos operates by encrypting data with a symmetric key. Fig 2.Authentication service issues TGT.
A symmetric key is a type of authentication where both the
client and server agree to use a single encryption/decryption
key for sending or receiving data. When working with the
encryption key, the details are actually sent to a key Step 4: The client submits the ticket-granting ticket to the
distribution center, or KDC, instead of sending the details ticket-granting server, or TGS, to get authenticated. (Fig 3)
directly between each computer. The entire process takes a
total of eight steps:

Step 1: The authentication service, or AS, receives the request


by the client and verifies that the client is indeed the computer
it claims to be. This is usually just a simple database lookup of
the user’s ID. (Fig 1)
distribution center to receive a session that is returned to the
client. (Fig 5)

Step 8: The client decrypts the ticket. If the keys are still
valid, communication is initiated between client and server.
(Fig 6)

Fig 3.Client submits TGT to TGS.

Step 5: The TGS creates an encrypted key with a timestamp,


and grants the client a service ticket. (Fig 4)

Fig 5. Service server decrypts key and make sure timestamp is valid.

Fig 4.TGS grants client the service ticket.

Step 6: The client decrypts the ticket, tells the TGS it has Fig 6. For valid keys communication is initiated.

done so, and then sends its own encrypted key to the service.

Step 7: The service decrypts the key, and makes sure the
timestamp is still valid. If it is, the service contacts the key
After the communication is made between the client and stored on it. To assure that, physical access on logins should
server, no further need of transmitting logon information is only be allowed to trusted staff members and no other services
needed. The client is authenticated until the session expires. should be placed on that host. To secure the server, virus
scanners and intrusion detection systems can be set up on it.

Usually more than one Kerberos server are set up in a


A. The Mutual Authentication Process typical environment to provide an almost error-free Kerberos
service. This realm is the administrative domain. The realm is
The authentication method described above seems a little entitled after the Internet domain name of the network, using
one-sided. Kerberos provides support for mutual this naming scheme, every realm has a distinct name in a
authentication, for a more secure protection against man in the global name-space. Common environments use one realm per
middle attacks. This type of authentication is fairly easy to institution but dividing big institutions into several realms is
understand, since it only involves two systems. The Steps also possible. As one can see in Fig 7, clients that want to
involved in the mutual authentication process is as listed access the Kerberos servers of a domain need not to be
below: connected to the local network. With a proper configuration,
they can use Kerberos for their realm from everywhere on the
Step 1: The first system creates a challenge code made up of Internet.
random numbers.
One dedicated server per realm is holding the master copy
Step 2: This code is sent to the second system, which
of the Kerberos database. This server is called the master
generates a response to the received code. This response and a
server and any other Kerberos servers in the realm receive
challenge code of its own are then sent back to the first
their copies from this server. In case of a not responding
system.
server every client can contact the other servers in the realm to
Step 3: The first system verifies the response of the second obtain tickets. Unexpected interruptions as a result of
system, and then sends a response to the challenge code it hardware failures can be avoided this way. Every client can
received. connect to any Kerberos server he knows in one realm.

Step 4: When the second system receives the response, it is


verified. If all is well, it notifies the first system that they are
indeed mutually authenticated.

This type of authentication uses challenge codes to ensure


that both computers are who they claim to be. If someone tries
to intercept the data, they obviously will fail because they
can’t pretend to be one of the computers after they have been
authenticated with challenge codes.

V. KERBEROS ENVIRONMENT
A typical Kerberos environment can be divided into two
main parts. On the one hand there is the Kerberos Fig 7. A possible Kerberos environment
infrastructure containing at least one Kerberos server or so
B. Details of KDC
called Key Distribution Center (KDC). The KDC holds a
complete database of user and service keys. This is a serious
The Key Distribution Center is logically split into two
disadvantage, because if an attacker could gain access to a
services that reside on the same host. The authentication
Kerberos server he learns every single key of the realm, the
service (AS) that authenticates users and the ticket granting
server is in. On the other hand there are Kerberos-enabled
service (TGS) which takes tickets issued from the
clients and services called kerberized clients and services.
authentication service and issues tickets for services. This is
done because of a simple security reason. After authentication
A. A Typical Infrastructure
at the authentication service both KDC and client share a
secret symmetric key, which can be used to construct an
As the trusted part, a Kerberos server has to be secured
authenticator for the ticket granting service to obtain service
properly. This means, that an attacker should not be able to
tickets by the client. There is no need for the client to enter the
gain access on the machine to get or alter the key database
password a second time and the password has not been cached Slave Master
(which would be a security flaw). Both authentication service Fig 9. Administration Requests.
and ticket granting service revert to the same database of keys,
which resides on every Kerberos server. The database Note that, while authentication can still occur (on slaves),
contains every key, user keys, which are derived from the administration requests cannot be serviced if the master
users password using a hash algorithm and service keys that machine is down. In our experience, this has not presented a
are once generated by a random number generator and stored problem, as administration requests are infrequent.
on the servicing host as well. To improve security this service
keys should be changed regularly. The KDBM handles requests from users to change their
passwords. The client side of this program, which sends
C. Kerberized Services requests to the KDBM over the network, is the kpasswd
program. The KDBM also accepts requests from Kerberos
To take full advantage of a Kerberos infrastructure not only administrators, who may add principals to the database, as
authentication for local host access is done. An optimal well as change passwords for existing principals. The client
environment is made up of services which support Kerberos, side of the administration program, which also sends requests
so that the user has to give his password one time he logs in. to the KDBM over the network, is the kadmin program.
After that authentication the client can read his email, access
files on a file-server and log in on remote machines without A. The KDBM Server
giving his password a second time.
The KDBM server accepts requests to add principals to the
database or change the passwords for existing principals. This
service is unique in that the ticket-granting service will not
issue tickets for it. Instead, the authentication service itself
VI. KERBEROS DATABASE must be used (the same service that is used to get a ticket-
granting ticket). The purpose of this is to require the user to
Kerberos operations requiring both read-only and write access enter a password. If this were not so, then if a user left her/his
is done with the help of Kerberos database. Operations workstation unattended, a passerby could walk up and change
requiring read-only access to the Kerberos database are her/his password for them, something which should be
performed by the authentication service, which can run on prevented. Likewise, if an administrator left her/his
both master and slave machines. (Fig 8) workstation unguarded, a passerby could change any
password in the system.
WS WS WS
When the KDBM server receives a request, it authorizes it
by comparing the authenticated principal name of the
requester of the change to the principal name of the target of
the request. If they are the same, the request is permitted. If
they are not the same, the KDBM server consults an access
control list (stored in a file on the master Kerberos system). If
the requester’s principal name is found in this file, the request
Slave Master
is permitted, otherwise it is denied.
Fig 8. Authentication Requests.
By convention, names with a NULL instance (the default
These operations are performed by the administration instance) do not appear in the access control list file; instead,
service, called the Kerberos Database Management Service an admin instance is used. Therefore, for a user to become an
(KDBM). The current implementation stipulates that changes administrator of Kerberos an admin instance for that
may only be made to the master Kerberos database; slave username must be created, and added to the access control list.
copies are read-only. Therefore, the KDBM server may only This convention allows an administrator to use a different
run on the master Kerberos machine. (Fig 9) password for Kerberos administration then s/he would use for
normal login.
WS WS WS
All requests to the KDBM program, whether permitted or
denied, are logged.

B. Database Replication

Each Kerberos realm has a master Kerberos machine,


which houses the master copy of the authentication database.
It is possible (although not necessary) to have additional, read- • Passwords are never sent across the network
only copies of the database on slave machines elsewhere in unencrypted. This prevents those unscrupulous
the system. The advantages of having multiple copies of the people from being able to read the most important
database are those usually cited for replication: higher data sent over the network.
availability and better performance. If the master machine is
down, authentication can still be achieved on one of the slave • Clients and applications services mutually
machines. The ability to perform authentication on any one of authenticate. Mutual authentication allows for both
several machines reduces the probability of a bottleneck at the ends to know that they truly know whom they are
master machine. communicating with.

Keeping multiple copies of the database introduces the • Tickets have a limited lifetime, so if they are stolen,
problem of data consistency. We have found that very simple unauthorized use is limited to the time frame that the
methods suffice for dealing with inconsistency. The master ticket is valid.
database is dumped every hour. The database is sent, in its
entirety, to the slave machines, which then update their own • Authentication through the AS only has to happen
databases. once. This makes the security of Kerberos more
convenient.
All passwords in the Kerberos database are encrypted in • Shared secret keys between clients and services are
the master database key. Therefore, the information passed more efficient than public-keys.
from master to slave over the network is not useful to an • Many implementations of Kerberos have a large
eavesdropper. However, it is essential that only information support base and have been put through serious
from the master host be accepted by the slaves, and that testing.
tampering of data be detected, thus the checksum. • Authenticators, created by clients, can only be used
VII. KERBEROS ADMINISTRATOR once. This feature prevents the use of stolen
authenticators.
The Kerberos administrator’s job begins with running a
program to initialize the database. Another program must be
run to register essential principals in the database, such as the B. Disadvantages
Kerberos administrator’s name with an admin instance. The
Kerberos authentication server and the administration server o Kerberos only provides authentication for clients and
must be started up. If there are slave databases, the services.
administrator must arrange that the programs to propagate
database updates from master to slaves be kicked off o Kerberos 4 uses DES, which has been shown to be
periodically. After these initial steps have been taken, the
administrator manipulates the database over the network. vulnerable to brute-force-attacks with little
computing power.
In particular, when a new Kerberos application is added to
the system, the Kerberos administrator must take a few steps o Like any security tool, it is also vulnerable to users
to get it working. The server must be registered in the making poor password choices.
database, and assigned a private key (usually this is an
automatically generated random key). Then, some data o Because Kerberos uses a mutual authentication
(including the server’s key) must be extracted from the model, it is necessary for both client machines and
database and installed in a file on the server’s machine. The service providers (servers) to be designed with
server uses the information in that file to decrypt messages Kerberos authentication in mind.
sent encrypted in the server’s private key. The file
authenticates the server as a password typed at a terminal IX. PERSPECTIVE: PUBLIC KEY CRYPTOGRAPHY
authenticates the user.
A new direction for Kerberos is public key cryptography.
The Kerberos administrator must also ensure that Kerberos Public key cryptography eases key distribution a lot. Using
machines are physically secure, and would also be wise to only symmetric cryptography KDC and client must share a
maintain backups of the Master database. key; using asymmetric cryptography the client can present the
public key, which can be used to encrypt messages for it. This
VIII. ANALYSIS OF KERBEROS is used for email communication by the program Pretty Good
Privacy (PGP).
A. Advantages The big advantage for Kerberos is that the key distribution
center does not have to save the keys client keys in his
database any longer. To obtain a ticket granting ticket, the
client has to present his public key. The KDC uses this key to [4] http://www.cisco.com/en/US/tech/tk59/technologies_white_paper0
encrypt the ticket and session key. As everybody is able to 9186a00800941b2.shtml#intro
create a key pair for public key cryptography, additional [5] http://en.wikipedia.org/wiki/Kerberos_(protocol)
infrastructure is needed. A trusted certification authority (CA) [6] http://learn-networking.com/network-security/how-kerberos-
has to sign every valid public key. The client can present his authentication-works
key which is signed by the trusted authority. Integration in [7] http://www.networkcomputing.com/netdesign/kerb7.html
Kerberos is easy due to the fact that only interaction with the [8] http://www.cs.ucl.ac.uk/staff/B.Karp/gz03/f2008/kerberos.pdf
authentication service has to be changed to use asymmetric [9] http://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci21243
cryptography; everything else can remain as it is. If the client 7,00.html
presents his public key, the authentication service checks, [10] http://www.rsa.com/rsalabs/node.asp?id=2297
whether it has a valid signature from a trusted authority and [11] http://docs.sun.com/app/docs/doc/816-4557/intro-5?
return a session key afterwards. The client decrypts the a=view
session key with the private key of his key pair. Following [12] http://www.novell.com/documentation/suse91/suselinu
communication is handled like in Kerberos without public key x-adminguide/html/ch19s03.html
cryptography support. [13] http://w3.darkwhole.de/~tf/uni/kerberos_paper.pdf
[14] Distributed Systems-Concepts and Design by George Coulouris,
Jean Dollimore and Tim Kindberg, 4e,Person Education
X. CONCLUSION

Kerberos isn’t the only encryption protocol available. There


are multiple ways to encrypt data, and this holds true for many
types of different applications. Email encryption protocols, for
example, are a breed all of their own.

With a product that has been researched and developed for


over 8 years, it is generally expected that the product should
be well polished. Kerberos doesn’t fail to deliver, and this can
be seen by looking at all the vendors who use it. Cisco,
Microsoft, Apple, and many others rely on this faithful three-
headed dog for network security.

Authentication is critical for the security of computer


systems. Without knowledge of the identity of a principal
requesting an operation, it's difficult to decide whether the
operation should be allowed. Traditional authentication
methods are not suitable for use in computer networks where
attackers monitor network traffic to intercept passwords. The
use of strong authentication methods that do not disclose
passwords is imperative. The Kerberos authentication system
is well suited for authentication of users in such environments.

REFERENCES

[1] http://web.mit.edu/Kerberos/
[2] http://www.kerberos.org/software/tutorial.html
[3] http://www.zeroshell.net/eng/kerberos/Kerberos-aims/
MATERIALS

1.Kerberos

(http://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci212437,00.html)

By Steve Spence
Kerberos is a secure method for authenticating a request for a service in a computer network. Kerberos was developed
in the Athena Project at the Massachusetts Institute of Technology (MIT). The name is taken from Greek mythology; Kerberos
was a three-headed dog who guarded the gates of Hades. Kerberos lets a user request an encrypted "ticket" from an
authentication process that can then be used to request a particular service from a server. The user's password does not have to
pass through the network. A version of Kerberos (client and server) can be downloaded from MIT or you can buy a commercial
version.

1. Briefly and approximately, here's how Kerberos works:

Suppose you want to access a server on another computer (which you may get to by sending a Telnet or similar
login request). You know that this server requires a Kerberos "ticket" before it will honor your request.

2. To get your ticket, you first request authentication from the Authentication Server (AS). The Authentication
Server creates a "session key" (which is also an encryption key) basing it on your password (which it can get from
your user name) and a random value that represents the requested service. The session key is effectively a "ticket-
granting ticket."

3. You next send your ticket-granting ticket to a ticket-granting server (TGS). The TGS may be physically the same
server as the Authentication Server, but it's now performing a different service.The TGS returns the ticket that can
be sent to the server for the requested service.

4. The service either rejects the ticket or accepts it and performs the service.

5. Because the ticket you received from the TGS is time-stamped, it allows you to make additional requests using the
same ticket within a certain time period (typically, eight hours) without having to be reauthenticated. Making the
ticket valid for a limited time period make it less likely that someone else will be able to use it later.

The actual process is much more complicated than just described. The user procedure may vary somewhat according to
implementation.
2. The Kerberos Network Authentication Service V5

(http://www.rsa.com/rsalabs/node.asp?id=2297)

By J. Kohl and C. Neuman

Kerberos [KNT94] is an authentication service developed by the Project Athena team at MIT, based on a 1978 paper
by Needham and Schroeder [NS78]. The first general use version was version 4. Version 5, which addressed certain shortfalls in
version 4, was released in 1994. Kerberos uses secret-key ciphers (see Question 2.1.2) for encryption and authentication.
Version 4 could only use DES (see Section 3.2). Unlike a public-key authentication system, Kerberos does not produce digital
signatures (see Question 2.2.2). Instead Kerberos was designed to authenticate requests for network resources rather than to
authenticate authorship of documents. Thus, Kerberos does not provide for future third-party verification of documents.

In a Kerberos system, there is a designated site on each network, called the Kerberos server, which performs
centralized key management and administrative functions. The server maintains a database containing the secret keys of all
users, authenticates the identities of users, and distributes session keys to users and servers who wish to authenticate one
another. Kerberos requires trust in a third party (the Kerberos server). If the server is compromised, the integrity of the whole
system is lost. Public-key cryptography was designed precisely to avoid the necessity to trust third parties with secrets (see
Question 2.2.1). Kerberos is generally considered adequate within an administrative domain; however across domains the more
robust functions and properties of public-key systems are often preferred. There has been some developmental work in
incorporating public-key cryptography into Kerberos [Gan95].
3.Kerberos Service - System Administration Guide: Security Services

(http://docs.sun.com/app/docs/doc/816-4557/intro-5?a=view)

The Kerberos service is a client-server architecture that provides secure transactions over networks. The service offers
strong user authentication, as well as integrity and privacy. Authentication guarantees that the identities of both the sender and
the recipient of a network transaction are true. The service can also verify the validity of data being passed back and forth
(integrity) and encrypt the data during transmission (privacy). Using the Kerberos service, you can log in to other machines,
execute commands, exchange data, and transfer files securely. Additionally, the service provides authorization services, which
allows administrators to restrict access to services and machines. Moreover, as a Kerberos user, you can regulate other people's
access to your account.

The Kerberos service is a single-sign-on system, which means that you only need to authenticate yourself to the service
once per session, and all subsequent transactions during the session are automatically secured. After the service has
authenticated you, you do not need to authenticate yourself every time you use a Kerberos-based command such as ftp or rsh, or
to access data on an NFS file system. Thus, you do not have to send your password over the network, where it can be
intercepted, each time you use these services.

The Solaris Kerberos service is based on the Kerberos V5 network authentication protocol that was developed at the
Massachusetts Institute of Technology (MIT). People who have used Kerberos V5 product should therefore find the Solaris
version very familiar. Because the Kerberos V5 protocol is a de facto industry standard for network security, the Solaris version
promotes interoperability with other systems. In other words, because the Solaris Kerberos service works with systems that use
the Kerberos V5 protocol, the service allows for secure transactions even over heterogeneous networks. Moreover, the service
provides authentication and security both between domains and within a single domain.

The Kerberos service allows for flexibility in running Solaris applications. You can configure the service to allow both
Kerberos-based and non-Kerberos-based requests for network services such as the NFS service, telnet, and ftp. As a result,
current Solaris applications still work even if they are running on systems on which the Kerberos service is not enabled. Of
course, you can also configure the Kerberos service to allow only Kerberos-based network requests.

The Kerberos service provides a security mechanism which allows the use of Kerberos for authentication, integrity,
and privacy when using applications that use the Generic Security Service Application Programming Interface (GSS-API).
However, applications do not have to remain committed to the Kerberos service if other security mechanisms are developed.
Because the service is designed to integrate modularly into the GSS-API, applications that use the GSS-API can utilize
whichever security mechanism best suits their needs.
4.Kerberos Network Design Manual

(http://www.networkcomputing.com/netdesign/kerb1.html)

By Dan Backman

Kerberos, a network security protocol developed MIT for its Athena computing environment is now a well-known, yet
not well-understood technology. Named after the guardian of the underworld in Ancient Greek mythology, Kerberos (a.k.a.:
Cerberus) uses strong encryption and a complex ticket-granting algorithm to authenticate users on a network. Also of interest to
many of users, Kerberos has the ability to distribute "session keys" to allow encrypted data streams over an IP network. Used to
secure particularly vulnerable network communications like FTP, telnet and other Internet protocols, which often transmit user
IDs and passwords in clear text, Kerberos provides the backbone for secured communications in many large networks.

Kerberos is available in many forms. However, for many organizations, it is an attractive choice as its reference
platform (published and maintained by MIT), which includes full source code. Most Kerberos distributions also include APIs
for developing new Kerberos-enabled (Kerberized) applications. While Kerberized services are best supported under Unix,
clients are available for most major desktop operating systems like DOS, Windows95, Windows NT and MacOS.

In addition to its pure form, Kerberos provides the core authentication services for computing environments such as the
Open Group's (formerly, the Open Software Foundation) DCE (Distributed Computing Environment) as well as Microsoft
Corp.'s forthcoming ADS (Active Directory Service).

In this Network Design Manual, we relate our ongoing experiences with the Kerberos protocol in our Syracuse
University labs. Although some organizations still rely on Kerberos 4, all examples and notation in this manual refer to
Kerberos 5. This version includes several modifications, such as cross-realm authentication, forwardable tickets, and internal
security enhancements, that make it the best choice for new installations. Some references to Kerberos' implementation in DCE
are included, but this Network Design Manual is not intended to cover DCE.

Network Security: The Basics

The concepts behind network security break nicely into four categories: Authentication, Authorization (a.k.a. Access
Control), Accounting, and Secure Communications.
Authentication: This is simple verification of a user's identity. Always based on some form of trust, authentication relies on
something that the user has, which can be compared to a known constant (the trusted value). This can occur either in an
interaction with the user (a user ID and password are entered), or can range up to complex biometrics systems like fingerprint
identification, face recognition or retinal scans. Authentication also can occur by proxy, such as a stored authentication token
(kept in a workstation's memory while the user remains logged in, o r on a token such as a smartcard).

Authorization: Also known as access control, this form of security decides who is allowed where. File permissions are a good
example of access controls. Usually stored in resource-level ACLs (access control lists), these are simply lists of authenticated
users (or groups of users) who are allowed to access or are barred from accessing a given resource. This is usually the most
complex aspect of network security since it requires the secure, centralized storage and access of these ACLs. Authorization can
occur only once a user is authenticated, as authorization systems rely on lists of authenticated users.

Accounting: The basic task of recording who accessed what resource. Most network operating systems and services include
some form of logging. This can either be performed independently at each service, or through a centralized accounting server.
However, if performed centrally, all accounting information must be transferred securely, and can be affected by denial of
service attacks (for instance, a hacker wishing to cover his tracks could prevent logging messages from reaching the accounting
server).

Secure communications: The ability to protect network transmissions from both interception (where private information can be
compromised) as well as unauthorized transmission, where a hacker can masquerade as a secure host, or can insert data into an
established connection.

Kerberos is not a complete network security solution. While it does provide powerful tools to enable networkwide user
authentication and secure communications, it has no provisions for access control or accounting. The designers of Kerberos felt
that it should function as part of a larger network environment, where access control is best left up to individual applications or
a dedicated access control manager. Although the Kerberos server itself includes a minimal ACL to specify users authorized to
change the Kerberos database, no other authorization system is pr ovided. Likewise, as the actual authentication process occurs
on the workstation, the Kerberos server doesn't concern itself with who is successfully authenticated. While the KDC (Kerberos
server) does keep track of which tickets were issued, it provides more of a debugging function than an audit trail.
5.Kerberos configuration as an authentication system for single sign-on

(http://searchsecurity.techtarget.com/tip/0,289483,sid14_gci1353067,00.html)

By David Griffeth
Most of us have heard of the Kerberos network authentication protocol, but what is it? What is its roll in an identity
and access management (IAM) program, and how can it be leveraged for access control initiatives like single sign-on (SSO) and
custom application authentication?

Designed to provide strong authentication for client/server applications by using secret-key cryptography, Kerberos
defines a typical key-exchange mechanism; it's a way of proving an identity to a system (the Kerberos server) and having that
system then authenticate the identity to other systems for the duration of the session. It is well suited for authentication on
physically insecure networks.

Features of Kerberos

Kerberos offers several important features, such as providing a secure, reliable means of authentication, authenticating
to multiple applications in a way that is transparent to the user, and accommodating any organization by way of a scalability
model. It is a mature and industry-accepted protocol that can support cryptography as well.

These features entail more robust controls to prevent eavesdropping and malicious attacks on the network, a friendlier
end-user experience, and the ability to expand use of the protocol to a broad spectrum of applications. It also prevents
unauthorized reading of communications through encryption.

Each application that is setup to use Kerberos trusts the Kerberos server to authenticate the user, so the user isn't asked
for a username and password on each application. Kerberos provides secure communication between two parties by
manufacturing secret keys on an open network and providing a mechanism for those keys to be securely communicated to the
appropriate parties.

Because single sign-on relies on a centralized and trusted authentication mechanism, Kerberos is a natural fit. A well-
designed implementation should have a means of confidently authenticating users to the Kerberos server and communicating
those credentials securely to all applications participating in the Kerberos implementation.

Implementing single sign-on with Kerberos across core applications and intranet sites in an enterprise can also offer huge
cost savings in several ways:

• Custom applications can leverage the enterprise Kerberos single sign-on system to authenticate users, reducing
development time.

• Password-reset requests will drop dramatically if users are only required to remember one set of credentials.

• Access management is simplified by providing a single point to terminate access. (This means fewer hours required to
manage the account through its life cycle.)

• Kerberos is a non-proprietary technology, so it supports interoperability of multiple vendors' products, from Apple Inc.
to IBM.

Businesses tend to have several enterprise-wide applications that fulfill distinct business needs. With their own processes,
GUIs, databases, business abstraction layers, Web servers, etc., the structures of these applications may inhibit them from
leveraging existing authentication mechanisms like Active Directory or TopSecret. Implementing Kerberos single sign-on
across these various applications means that users who access more than one of them can now authenticate once and aren't
asked for separate credentials for each application.
Kerberos: Drawbacks and limitations

There are limitations to Kerberos that should be considered and understood before implementation. For instance,
Kerberos does not provide authorization or accounting, although it is possible for applications to use their secret keys to perform
those functions securely.

There are also concerns about centralizing all of the application passwords on one system. If an attacker gains root
access to a Kerberos server, he or she will have access to the database of encrypted passwords of the applications leveraging
Kerberos. If the Kerberos server is compromised, the attacker could also modify the Kerberos software and configuration files
to make the system perform authentications that should not otherwise be successful.

There are also two different distributions and versions of Kerberos available: Versions 4 and 5. Version 5 (v5) is the
newest, introduced in 1995. There are several distributions of it, including a freeware version from MIT as well as a
commercially available distribution from the Open Group called OSF DCE (Distributed Computing Environment) Security.

Be aware that v4 and v5 are completely different protocols and are not compatible. Different distributions don't always
implement together well either. There may be tweaks and customization required if the company chooses to run multiple
distributions in the same organization. I strongly recommend against this because the support issues involved may be
problematic.

Where to use Kerberos

Kerberos should be considered if an organization is looking for a mature means of authenticating users to multiple
applications across a variety of technologies.

It is also worth considering if a company has a Web presence that directs end users to a portal with several different
applications providing underlying functionality. A bank is a great example of this: users could have a combination of a checking
account, a savings account, an IRA or a mortgage from the same bank. It would be a much better user experience to have a
single set of credentials for conducting business than to log in to each of these accounts separately.

Kerberos is intended to help enable centralized authentication to simplify the user experience and the system
administrators' account management process. It can be a useful technology and is worth examining by any organization
exploring single sign-on systems.

6.Network Authentication — Kerberos

(http://www.novell.com/documentation/suse91/suselinux-adminguide/html/ch19s03.html)
An open network provides no means to ensure that a workstation can identify its users properly except the usual
password mechanisms. In common installations, the user must enter the password each time a service inside the network is
accessed. Kerberos provides an authentication method with which a user must register once and is then trusted in the complete
network for the rest of the session. To have a secure network, the following requirements must be met:

• Have all users prove their identity for each desired service and make sure no one can take the identity of someone else.

• Make sure each network server also proves its identity. If you do not, an attacker might be able to impersonate the
server and obtain sensitive information transmitted to the server. This concept is called mutual authentication, because
the client authenticates to the server and vice versa.

Kerberos helps you meet the above requirements by providing strongly encrypted authentication. The following shows
how this is achieved. Only the basic principles of Kerberos are discussed here. For detailed technical instruction, refer to the
documentation provided with your implementation of Kerberos.

Kerberos Terminology

The following glossary defines some Kerberos terminology.

1. Credential

Users or clients need to present some kind of credentials that authorize them to request services. Kerberos knows two
kinds of credentials — tickets and authenticators.

2. Ticket

A ticket is a per-server credential used by a client to authenticate at a server from which it is requesting a service. It
contains the name of the server, the client's name, the client's Internet address, a time stamp, a lifetime, and a random session
key. All this data is encrypted using the server's key.

3. Authenticator

Combined with the ticket, an authenticator is used to prove that the client presenting a ticket is really the one it claims
to be. An authenticator is built of the client's name, the workstation's IP address, and the current workstation's time all encrypted
with the session key only known to the client and the server from which it is requesting a service. An authenticator can only be
used once, unlike a ticket. A client can build an authenticator itself.

4. Principal

A Kerberos principal is a unique entity (a user or service) to which it can assign a ticket. A principal consists of the
following components:

primary — the first part of the principal, which can be the same as your user name in the case of a user.

instance — some optional information characterizing the primary. This string is separated from the primary by a /.

realm — this specifies your Kerberos realm. Normally, your realm is your domain name in uppercase letters.

5. Mutual authentication
Kerberos ensures that both client and server can be sure of each others identity. They share a (session) key, which they
can use to communicate securely.

6. Session key

Session keys are temporary private keys generated by Kerberos. They are known to the client and used to encrypt the
communication between the client and the server for which it requested and received a ticket.

7. Replay

Almost all messages sent in a network can be eavesdropped, stolen, and resent. In the Kerberos context, this would be
most dangerous if an attacker manages to obtain your request for a service containing your ticket and authenticator. He could
then try to resend it (replay) to impersonate you. However, Kerberos implements several mechanisms to deal with that problem.

8. Server or Service

Service is used to refer to a specific action to perform. The process behind this action is referred to as a server.

How Kerberos Works

Kerberos is often called a third party trusted authentication service, which means all its clients trust Kerberos's
judgment of another client's identity. Kerberos keeps a database of all its users and their private keys.

To ensure Kerberos is worth all the trust put in it, run both the authentication and ticket-granting server on a dedicated
machine. Make sure only the administrator can access this machine physically and over the network. Reduce the (networking)
services run on it to the absolute minimum — do not even run sshd.

First contact

Your first contact with Kerberos is quite similar to any login procedure at a normal networking system. Enter your user
name. This piece of information and the name of the ticket-granting service are sent to the authentication server (Kerberos). If
the authentication server knows about your existence, it will generate a (random) session key for further use between your client
and the ticket-granting server. Now the authentication server prepares a ticket for the ticket-granting server. The ticket contains
the following information — all encrypted with a session key only the authentication server and the ticket-granting server know:

• the names both of the client and the ticket-granting server

• the current time

• a lifetime assigned to this ticket

• the client's IP address

• the newly-generated session key

This ticket is then sent back to the client together with the session key, again in encrypted form, but this time the
private key of the client is used. This private key is only known to Kerberos and the client, because it is derived from your user
password. Now that the client has received this response, you are prompted for your password. This password is converted into
the key that can decrypt the package sent by the authentication server. The package is “unwrapped” and password and key are
erased from the workstation's memory. As long as the lifetime given to the ticket used to obtain other tickets does not expire,
your workstation can prove your identity.

Requesting a service
To request a service from any server in the network, the client application needs to prove its identity to the server.
Therefore, the application generates an authenticator. An authenticator consists of the following components:

• the client's principal

• the client's IP address

• the current time

• a checksum (chosen by the client)

All this information is encrypted using the session key that the client has already received for this special server. The
authenticator and the ticket for the server are sent to the server. The server uses its copy of the session key to decrypt the
authenticator, which gives him all information needed about the client requesting its service to compare it to that contained in
the ticket. The server checks if the ticket and the authenticator originate from the same client.

Without any security measures implemented on the server side, this stage of the process would be an ideal target
forreplay attacks. Someone could try to resend a request stolen off the net some time before. To prevent this, the server will not
accept any request with a time stamp and ticket received previously. In addition to that, a request with a time stamp differing too
much from the time the request is received can be ignored.

Mutual authentication

Kerberos authentication can be used in both directions. It is not only a question of the client being the one it claims to
be. The server should also be able to authenticate itself to the client requesting its service. Therefore, it sends some kind of
authenticator itself. It adds one to the checksum it received in the client's authenticator and encrypts it with the session key,
which is shared between it and the client. The client takes this response as a proof of the server's authenticity and they both start
cooperating.

Ticket-granting — getting into contact with all servers

Tickets are designed to be used for one server at a time. This implies that you have to get a new ticket each time you
request another service. Kerberos implements a mechanism to obtain tickets for individual servers. This service is called the
“ticket-granting service”. The ticket-granting service is a service just like any other service mentioned before, so uses the same
access protocols that have already been outlined. Any time an application needs a ticket that has not already been requested, it
contacts the ticket-granting server. This request consists of the following components:

• the requested principal

• the ticket-granting ticket

• an authenticator

Like any other server, the ticket-granting server now checks the ticket-granting ticket and the authenticator. If they are
considered valid, the ticket-granting server builds a new session key to be used between the original client and the new server.
Then the ticket for the new server is built, containing the following information:

• the client's principal

• the server's principal

• the current time


• the client's IP address

• the newly-generated session key

The new ticket is assigned a lifetime, which is the lesser of the remaining lifetime of the ticket-granting ticket and the
default for the service. The client receives this ticket and the session key, which are sent by the ticket-granting service, but this
time the answer is encrypted with the session key that came with the original ticket-granting ticket. The client can decrypt the
response without requiring the user's password when a new service is contacted. Kerberos can thus acquire ticket after ticket for
the client without bothering the user more than once at login time.

7.How Kerberos Authentication Works

(http://learn-networking.com/network-security/how-kerberos-authentication-works)

You may not know it, but your network is probably unsecured right now. Anyone with the right tools could capture,
manipulate, and add data between the connections you maintain with the internet. The security cat and mouse game isn’t one
sided, however. Network administrators are currently taking advantage of Kerberos to help combat security concerns.

Project Athena

Project Athena was initiated in 1983, when it was decided by the Massachusetts Institute of Technology that security in
the TCP/IP model just wasn’t good enough. A total of 8 long years of research passed before Kerberos, named after the three-
headed Greek mythological dog known as Cerberus, was officially complete.

The result of MIT’s famous research became widely used as default authentication methods in popular operating
systems. If you are running Windows 2000 or later, you are indeed running Kerberos by default. Other operating systems such
as the Mac OS X also carry the Kerberos protocol. Kerberos isn’t just limited to operating systems, however, since it is
employed by many of Cisco’s routers and switches.

What Does It Protect Against, Anyways?

If you have ever used an FTP program over a network, you are at risk. If you have ever used a Telnet program over a
network, you are again at risk. These are just two examples of how little security some applications allow. FTP and Telnet use
what are called plaintext passwords, or otherwise known as cleartext passwords. These passwords are ridiculously easy to
intercept with the right tools.

Anyone with a simple packet sniffer and packet analyzer can obtain an FTP or telnet logon with ease. With that kind of
sensitive information being transmitted, the need for Kerberos is obvious. This need doesn’t stop there, however. Sure FTP and
Telnet related logons are easy to intercept, but then again so is every other connection any of your applications has to the
internet.

Through a process of man in the middle attacks, any hacker can get most logon information for just about anything.
From online bank passwords to private passwords on your computer, they are all generally vulnerable to this attack. A man in
the middle attack generally occurs when the hacker acts as the “man in the middle” between two computers. The hacker
attempts to pretend to each computer that it is in fact, the computer they have connected to. In reality, all the data is being routed
to the hacker, who can then modify or add instructions to the data.

Okay, This Sounds Useful…But How Does It Work?

Kerberos operates by encrypting data with a symmetric key. A symmetric key is a type of authentication where both
the client and server agree to use a single encryption/decryption key for sending or receiving data. When working with the
encryption key, the details are actually sent to a key distribution center, or KDC, instead of sending the details directly between
each computer. The entire process takes a total of eight steps, as shown below.

1. – The authentication service, or AS, receives the request by the client and verifies that the client is indeed the computer it
claims to be. This is usually just a simple database lookup of the user’s ID.

2. – Upon verification, a timestamp is created. This puts the current time in a user session, along with an expiration date. The
default expiration date of a timestamp is 8 hours. The encryption key is then created. The timestamp ensures that when 8 hours
is up, the encryption key is useless. (This is used to make sure a hacker doesn’t intercept the data, and try to crack the key.
Almost all keys are able to be cracked, but it will take a lot longer than 8 hours to do so)

3. – The key is sent back to the client in the form of a ticket-granting ticket, or TGT. This is a simple ticket that is issued by
the authentication service. It is used for authenticating the client for future reference.
4. – The client submits the ticket-granting ticket to the ticket-granting server, or TGS, to get authenticated.

5. – The TGS creates an encrypted key with a timestamp, and grants the client a service ticket.

6. – The client decrypts the ticket, tells the TGS it has done so, and then sends its own encrypted key to the service.
7. – The service decrypts the key, and makes sure the timestamp is still valid. If it is, the service contacts the key distribution
center to receive a session that is returned to the client.

8. – The client decrypts the ticket. If the keys are still valid, communication is initiated between client and server.

Is all that back-and-forth communication really necessary? When concerning speed and reliability, it is entirely
necessary. After the communication is made between the client and server, no further need of transmitting logon information is
needed. The client is authenticated until the session expires.

Yet More Authentication


The authentication method described above seems a little one-sided. Kerberos provides support for mutual
authentication, for a more secure protection against man in the middle attacks. Remember how the client no longer needs to
send logon information after the authentication takes place? Well it sure would ruin everything if a hacker just intercepted our
communication to the server and pretended to be us!

This type of authentication is fairly easy to understand, since it only involves two systems.

The Mutual Authentication Process

1. The first system creates a challenge code made up of random numbers.

2. This code is sent to the second system, which generates a response to the received code. This response and a challenge code
of its own are then sent back to the first system.

3. The first system verifies the response of the second system, and then sends a response to the challenge code it received.

4. When the second system receives the response, it is verified. If all is well, it notifies the first system that they are indeed
mutually authenticated.

This type of authentication uses challenge codes to ensure that both computers are who they claim to be. If someone
tries to intercept the data, they obviously will fail because they can’t pretend to be one of the computers after they have been
authenticated with challenge codes.

Sounds Great! Any Drawbacks I Should Know About?

Of course, nothing is perfect. Kerberos has a couple of main flaws that system administrators need to take into
account.First and foremost is the need of the Kerberos server. This server will handle all the functions required for
authentication. If this server goes down, no one can get authenticated, and thus- the network is down. A total network crash can
be prevented by using more than one Kerberos server, but that is more costly than some people would like to think.

Next, we have the issue of clock synchronization. Since Kerberos uses timestamps to handle all activity, the clocks on
all host machines must be within 10 minutes of the Kerberos server’s clock. Since not all clocks are perfect, the host clock and
server clock will eventually be misaligned enough to cause a failure. This can usually be remedied by keep clocks up to date, or
use a Network Time Protocol, or NTP.

Closing Comments

Kerberos isn’t the only encryption protocol available. There are multiple ways to encrypt data, and this holds true for
many types of different applications. Email encryption protocols, for example, are a breed all of their own.

With a product that has been researched and developed for over 8 years, it is generally expected that the product should
be well polished. Kerberos doesn’t fail to deliver, and this can be seen by looking at all the vendors who use it. Cisco,
Microsoft, Apple, and many others rely on this faithful three-headed dog for network security.
Other References

1. http://sawaal.ibibo.com/computers-and-technology/what-kerberos-authentication-protocol-240180.html

2. http://www.ibm.com/developerworks/ibm/library/it-kerbero.html

3. http://en.wikipedia.org/wiki/Kerberos_(protocol)

4. http://www.google.co.in

5. http://www.mit.edu

S-ar putea să vă placă și