[27] in GSSAPI Development

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

Re: Towards a compromise on addresses in channel bindings

daemon@ATHENA.MIT.EDU (Theodore Ts'o)
Tue Apr 30 22:40:28 1991

Date: Tue, 30 Apr 91 18:05:16 -0400
From: tytso@ATHENA.MIT.EDU (Theodore Ts'o)
To: "John Wray, Secure Systems Development, DTN 226-6106 30-Apr-1991
Cc: gssapi-dev@ATHENA.MIT.EDU
In-Reply-To: John Wray, Secure Systems Development, DTN 226-6106  30-Apr-1991 1658's message of Tue, 30 Apr 91 14:09:28 PDT,
Reply-To: tytso@ATHENA.MIT.EDU

   Date: Tue, 30 Apr 91 14:09:28 PDT

   I guess we need a convention to mean "indefinite".  How about
   returning -1 in this case?

Well, time_rec is specified as OM_uint32, which means that it's an
unsigned integer of at least 32 bits.  So how about (2**32-1) meaning
"indefinite"?

   Really, though, no context should be considered valid after the credentials
   with which it is established have expired.  This should put an upper
   limit on the context lifetime.  The system/security manager may also
   be able to configure the mechanism to impose a lower lifetime on
   contexts.  Finally, the time_req input parameter allows the
   application to request a shorter period.

   This only really makes sense if the authentication mechanism enforces
   the lifetime (by refusing to perform sign/seal operations on an
   expired context).  If a given mechanism doesn't support this, then I
   guess it should return "indefinite" for the time_rec parameter.

This is the heart of the matter.  Is the GSS API layer required to keep
track of how many seconds are remaining before a context expires and
refuse to pass a request down to the mechanism layer?  As far as
Kerberos is concerned, once a context has been established, all
krb5_{mk,rd}_safe care about is the session key; they don't even look at
the credentials information.  It is the application may want to
terminate a connection after the credentials have expired, although no
Kerberos application which I am aware of does so.  (I can imagine an
rlogin session closing with no saving throw, just because 8 hours have
passed and your tickets have expired, so you get to lose all of your
work.  No thanks!  I'd call that a bug, not a feature!)  My
understanding is that SPX does not implement anything like this either.
Is this correct?

If we say that time_rec can return "indefinite", it means that the GSS
API layer is not responsible for inforcing a timeout period for the
context, even if one is requested using time_req.  This to me seems to
be the right answer.  Are we all agreed on this?

						- Ted


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