[717] in Kerberos

home help back first fref pref prev next nref lref last post

some comments on Kerberos

daemon@TELECOM.MIT.EDU (NESSETT%CCC.MFECC.LLNL.GOV@.MIT.EDU)
Tue May 9 21:18:33 1989

From: NESSETT%CCC.MFECC.LLNL.GOV@.MIT.EDU
To: KERBEROS@ATHENA.MIT.EDU

On the 3rd of May at the Symposium on Security and Privacy in 
Oakland, I pointed out several problems with Kerberos that, I 
believe, require attention.  I was somewhat surprised at the level of 
interest these comments received.  So that my criticisms can be 
scrutinized by those directly involved with the ongoing Kerberos 
design, I summarize them below.  Included are two other points, 
which I did not make at Oakland, related to the "realms" concept of 
Kerberos.

Several of the comments made below are applications of work 
described in a technical report written several years ago by Dick 
Watson, Art Sorkin and me entitled, "Connection Management and 
Key Distribution Protocols."  This report examines the design issues 
associated with the management of secure connections and critiques 
several key distribution protocols, such as Needham and Schroeder 
as well as Denning and Sacco according to how well they address 
these issues.  I would be happy to send a copy of this report to 
anyone interested.

As a final preliminary remark, let me point out that I have only been 
on the Kerberos mailing list since 9 May, 1989.  If any of the 
criticisms given below are "old hat", I apologize.

I believe Kerberos to be deficient in the following ways :

o  Kerberos keeps its encryption keys in application process space.  
While several Kerberos defenders have attempted to deflect this 
criticism with the observation that only  short-term keys are so kept, 
in fact the long-term key derived by transforming the user's 
password also appears, however briefly, in application process space 
as well.  That it is used quickly and then obliterated is of little 
comfort after one realizes that : a) computer programs installed on a 
host by an intruder with the specific intention of capturing the user's 
password need little time to do so, and b) copies of the password 
may exits in disk swapping space and terminal input buffers far 
longer than one might expect.  The environment for which Kerberos 
was engineered (i.e., an "open" environment with little physical 
security) admits a rich assortment of intruder attacks that can take 
advantage of these properties.

o  Kerberos (as described in the Winter '88 USENIX paper) seals the 
client's IP address within ticket's and authenticators, yet these 
addresses cannot be guaranteed correct.  I am told that the current 
version of the Kerberos protocol does not seal IP addresses in tickets 
and authenticators, since the Kerberos designers now understand 
that this affords no protection against message replay.  Regrettably, 
the removal of these addresses does not fix the problem, since 
ticket/authenticator pairs captured by an intruder by observing the 
traffic passing over an Ethernet or through an intermediate node can 
be replayed.  The window of opportunity for replay is on the order of 
minutes, well within the capacity of programs written by an intruder 
to capture such information and replay it.  

o  The security properties of Kerberos rest to a large extent on the 
timestamp and lifetime information carried by tickets and 
authenticators.  Since this information must be compared by servers 
against the value of some clock, its security properties also rests on 
the mechanism by which clocks are kept synchronized.  Attacks 
against servers are possible by attacking the clock synchronization 
protocol/mechanism.  This threat is not adequately met by the 
Kerberos architecture described in the public literature.

o  One major advantage of central authentication (which is the basic 
service that Kerberos offers) is the ability to revoke someone's access 
to distributed system resources quickly and atomically (i.e., by 
means of a single operation).  At first sight, one might believe this 
possible with Kerberos by invalidating a user's long-term key in the 
Kerberos database.  However, there is an attack against this strategy.  
If an intruder can isolate one of the slave Kerberos servers (perhaps 
by congesting an appropriate part of the network), thereby 
preventing the arrival of update messages, he can continue to 
operate even when his key has been invalidated in the master 
database.

o  While it is strenuously asserted that Kerberos only supports an 
authentication service, the mechanisms by which this service is 
provided strongly favors one type of authorization, namely, the use 
of access control lists.  Authenticating a user's identity or 
identity.instance to individual servers for the purpose of access 
control (as distinct from accountability purposes) is of little value 
unless authorization is also based on identity.  This introduces a 
transitivity problem (acknowledged in the USENIX paper) whereby 
servers accessing the resources of other servers on behalf of clients 
must pose as those clients.  But this action violates the principle of 
least privilege, since servers posing as clients gain potential access to 
all of the client's resources, not just to those necessary to carry out 
their function.

o  There are occasions when it is desirable for administrators to shut 
down remote access to servers of given class (e.g., remote logon), 
while allowing remote access to other servers (e.g., E-mail).  For 
example, if a worm is loose in a distributed system and you 
determine it is attacking the remote logon and file transfer services, 
you would like to shut down access to these services from outside 
your administrative domain (for the purposes of this discussion, 
administrative domain is used synonymously with realm) without 
affecting the inter-administrative-domain E-mail service.  The realm 
mechanism supported by Kerberos is not well-suited to this 
requirement.  First of all, to quickly revoke the privileges of a user 
from one realm to resources in another requires contacting the ticket 
granting server in the latter realm and "black-listing" that user.  I 
have seen no mechanism described for doing this.  Secondly, in the 
short-term (since tickets issued by the ticket granting server may be 
good for several hours), all servers of the target classes must be 
contacted and directed not to accept service requests from user's of 
other realms.  Simply locating all servers of a given class is an 
arduous task, not helped by the fact that Kerberos keeps no record of 
the type of service offered by a particular server.  In addition, a 
secure administration protocol is necessary to direct the involved 
servers to take the appropriate action.  I have seen no description of 
such a protocol in the Kerberos literature.

o  Kerberos is designed to work in an environment in which all 
administrative domains use the same communications protocol (e.g., 
TCP/IP).  In addition, all servers of all realms must support the 
Kerberos protocol in order to interoperate.  These requirements are 
impractical.  If there is one characteristic of large distributed 
systems it is that they are heterogeneous.  Administrative domains 
in practical distributed systems will support different 
communications protocols and will not, in general support common 
mechanisms such as those of Kerberos.  Schemes that require the 
existence of common mechanisms throughout the distributed system 
will have only limited applicability in the distributed systems of the 
future.



home help back first fref pref prev next nref lref last post