
386 CHAPTER 10 NETWORK SECURITY
10.7 INSIDE KERBEROS
TECHNICAL
FOCUS
Kerberos, the most commonly used central authenti-
cation protocol, uses symmetric encryption (usually
DES). Kerberos is used by a variety of central authen-
tication services, including Windows active directory
services. When you log-in to a Kerberos-based sys-
tem, you provide your user id and password to
the Kerberos software on your computer. This soft-
ware sends a request containing the user id but
not
the password to the Kerberos authentication server
(called the Key Distribution Center [KDC]).
The KDC checks its database for the user id and if it
finds it, then it accepts the log-in and does two things.
First, it generates a service ticket (ST) for the KDC
which contains information about the KDC, a time
stamp, and, most importantly, a unique session key
(SK1), which will be used to encrypt all further com-
munication between the client computer and the KDC
until the user logs off. SK1 is generated separately for
each user and is different every time the user logs-in.
Now, here’s the clever part: The ST is encrypted using
a key based on the password that matches the user
id. The client computer can only decrypt the ST if it
knows the password that matches the user id used
to log-in. If the user enters an incorrect password,
the Kerberos software on the client can’t decrypt the
ST and asks the user to enter a new password. This
way, the password is never sent over the network.
Second, the KDC creates a Ticket-Granting Ticket
(TGT). The TGT includes information about the client
computer and a time stamp that is encrypted using
a secret key known only to the KDC and other vali-
dated servers. The KDC sends the TGT to the client
computer encrypted with SK1, because all com-
munications between the client and the server are
encrypted with SK1 (so no one else can read the
TGT). The client decrypts the transmission to receive
the TGT, but because the client does not know the
KDC’s secret key, it cannot decrypt the contents of
the TGT. From now until the user logs-off, the user
does not need to provide his or her password again;
the Kerberos client software will use the TGT to gain
access to all servers that require a password.
The first time a user attempts to use a server that
requires a password, that server directs the user’s
Kerberos software to obtain a service ticket (ST) for
it from the KDC. The user’s Kerberos software sends
the TGT to the KDC along with information about
which server the user wants to access (remember
that all communications between the client and the
KDC are encrypted with SK1). The KDC checks to
make sure that the user has not logged off and if
the TGT is validated, the KDC sends the client an ST
for the desired server and a new session key (SK2)
that the client will use to communicate with that
server, both of which have been encrypted using
SK1. The ST contains authentication information and
SK2, both of which have been encrypted using the
secret key known only to the KDC and the server.
The client presents a log-in request (that specifies
the user id, a time and date stamp, and other
information) that has been encrypted with SK2 and
the ST to the server. The server decrypts the ST
using the KDC’s secret key to find the authentication
information and SK2. It uses the SK2 to decrypt
the log-in request. If the log-in request is valid
after decrypting with SK2, the server accepts the
log-in and sends the client a packet that contains
information about the server that has been encrypted
with SK2. This process authenticates the client to
the server, and also authenticates the server to the
client. Both now communicate using SK2. Notice
that the server never learns the user’s password.
Most security experts no longer test for social engineering attacks; they know
from experience that social engineering will eventually succeed in any organization and
therefore assume that attackers can gain access at will to normal user accounts. Training
end users not to divulge passwords may not eliminate social engineering attacks, but it
may reduce their effectiveness so that hackers give up and move on to easier targets. Act-
ing out social engineering skits in front of users often works very well; when employees
see how they can be manipulated into giving out private information, it becomes more
memorable and they tend to become much more careful.