Re: The usability of service ticket lifetimes

Nico Williams <[email protected]> Tue, 21 Aug 2012 16:57:09 -0500
Newsgroups gmane.ietf.krb-wg
Message-ID <CAK3OfOiN2EOK09pMqwPOAGdr8bd3iJ=75wzkXMgbFp8wtE3jsQ@mail.gmail.com>
On Tue, Aug 21, 2012 at 3:40 PM, Jeffrey Altman
<[email protected]> wrote:
> The Kerberos community has years of experience with enforcement of
> expiration times on application protocols such as those protected by
> GSS-API and the conclusion has been that expiration enforcement on
> connections is a bad idea because of the usability problems that are caused.

I am and have been of two minds about this.

I'm not happy with apps that allow connections to stay up forever
without further efforts to handle revocation.  And we have no standard
revocation protocol.  Oof.

But at the same time expiring connections when the tickets used to
authenticate expire has been disastrous for usability.  All sorts of
things go wrong within clock skew of ticket expiration.  Two types of
problems arise:

 - bugs around clock skew of ticket expiration, of which there have
been too many, sadly

 - application protocols that can't re-authenticate without reconnecting.

Of the latter IMAP has been used as an example before.  But IMAP
clients can typically recover state quickly enough that reconnection
should just be a hiccup (as long as there are no transfers that
require so long that the connection always expires first).  The
filesystem protocols can handle re-authentication.  LDAP is pretty
much stateless (but don't expire a connection in the middle of a write
operation!).   ...

The former are all just depressing.  We had such a bug in the Solaris
NFS/RPC stack where every RPC resulted in a new security context when
within clock skew of ticket expiration due to a client-side bug.  I'm
quite sure there have been others.

What to do?

Some possibilities:

 - expire contexts sometime *after* ticket expiration -- unlikely to
make us happy in general, but at least this should steer clear of the
bugs I mentioned above

 - add a protocol for checking the status of a client principal (but
this won't work with asymmetric x-realm trusts)

 - add a revocation protocol (but how to scale to large networks?!)

 - ???

Of these I prefer the first, but I think we could/should add the
second (the service would talk to the client princ's realm using the
client's ticket as a second ticket for the TGS-REQ and get an answer
indicating whether the client is still live) (but there are privacy
issues involved).

Nico
--
_______________________________________________
ietf-krb-wg mailing list
[email protected]
https://lists.anl.gov/mailman/listinfo/ietf-krb-wg