Chapter 1. Introduction
Who are you? It's a question with an obvious
response, at least for people. Humans have the ability to distinguish
one another through several senses; most commonly, we use our sense
of vision to recognize people we have met before. We also can tell
one another apart through other means, such as body language, speech
patterns and accents, and shared secrets between people. It has even
been shown that newborn babies can discern between their mother and
other females solely through their scent. Our ability to recognize
patterns in our surroundings provides us with this ability to
determine the identity of, or
authenticate,
people we know.
However, when you bring a computer into the picture, the situation
changes dramatically. Computers (at least today's
computers) don't have eyes, ears, or noses. Even if
they did, the current state-of-the-art in pattern recognition is
still woefully inaccurate for widespread use. While there is a lot of
research in this area, the most common method by far for
authenticating people to computers is through
passwords. A
password, also known as a shared
secret, is the one critical piece of
information that determines whether the person behind the keyboard
really is whom they claim to be. While humans sometimes use this
shared secret method—for example, a secret handshake, or
perhaps the knowledge of obscure trivia—computers almost
exclusively use shared secrets to authenticate people.
There are two issues with passwords as used today for authentication.
The first is a human problem. We don't like to
remember a long, complex string of numbers, letters, and maybe even
symbols that make up a secure password. If left to our own devices,
we use simple dictionary words or maybe even our
spouses' name or birthdate as passwords.
Unfortunately, a "shared secret"
that really isn't a secret (such as your
spouse's name) is easily guessable by an attacker
who wishes to impersonate you to the computer. This problem is
exacerbated by the fact that, even within a company network, there
are literally dozens of machines a person has access to, each of
which requires its own password. As a general rule, as the number of
passwords goes up, the quality of each password decreases.
The second issue is a technical problem. While the computer gives you
the illusion of security by printing stars, or nothing at all, on the
screen while you type your password, somehow that information must
travel some communications network to a computer on the other end.
The most common method that computers use to send passwords over the
network is by sending the password in
"clear text," that is,
unmodified. While this wouldn't be a problem if each
computer had a completely separate, dedicated connection to every
other computer it wishes to communicate with, in reality, computer
networks are a shared resource. Sending passwords over the network in
the clear is analogous to standing in a crowded room shouting across
the room to a friend standing on the other side.
Kerberos is a
network authentication system that can
help solve those two issues. It reduces the number of passwords each
user has to memorize to use an entire network to one—the
Kerberos password. In addition, Kerberos incorporates encryption and
message integrity to solve the second issue, ensuring that sensitive
authentication data is never sent over the network in the clear. By
providing a secure authentication mechanism, Kerberos is an essential
part of a total network security plan, providing clear benefits for
both end users and administrators.
But before we go further, let's take a step back and
explore the history of Kerberos.
|