[4547] in Kerberos

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

Interoperability questions regarding the Kerberos GSS-API Mechanism

daemon@ATHENA.MIT.EDU (Clifford Neuman)
Thu Feb 2 05:57:06 1995

Date: Wed, 1 Feb 1995 08:57:09 -0800
From: Clifford Neuman <bcn@ISI.EDU>
To: Danny.Nessett@eng.sun.com
Cc: dpg@ocsg.com, wray@tuxedo.enet.dec.com, kerberos@MIT.EDU

   Date: Wed, 1 Feb 1995 08:14:35 -0800
   From: Danny.Nessett@eng.sun.com (Dan Nessett)

   Perhaps an example will clarify things. Thread A makes a GSSAPI call
   (say init_sec_context() or seal()), receiving in return a token or
   output message buffer containing protected timestamp information.
   Thread B does the same thing.  However, due to concurrency between A
   and B, B actually sends its token/data first. Thus, if the packets
   arrive at the destination in the order in which they were sent, the
   packet with the youngest timestamp will be processed first.  When the
   packet sent by A arrives, its timestamp will be "older" than the last
   received and be rejected. This sort of reordering can also happen if
   A's packet leaves the source machine first, but the packets get
   reordered by the network.

   Similarly, on the receive side, even if thread A's packet arrives
   first, it is possible with multi-threaded servers that B's packet will
   be processed first, leading to the same erroneous rejection of A's
   packet.

   Actually, this is not a GSSAPI problem (as I stated in my previous
   message), but rather a problem with the underlying mechanism.
   Consequently, I am copying this message to the kerberos discussion
   list and would recommend we move any further exploration to that list.

Please note that the Kerberos spec DOES NOT say that replay detection
may require monotonically increasing timestamps.  It says that
timestamps seen within the allowable window must be remembered and
checked against.    Since the verifier determines the size of that
window, the size of the required replay cache can be traded off
against the window size (allowable clock skew).  Implementations that
choose to require a monotonically increasing clock are in error.
However, an implementation that adjusted the size of the window based
on knowledge of the last timestamp seen from a particular host, would
be fine. 

	~ Cliff

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