[7826] in Kerberos

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

Re: destruction of Kerberos credentials upon logout

daemon@ATHENA.MIT.EDU (Sam Hartman)
Wed Aug 21 19:29:33 1996

To: wolfgang@wsrcc.com (Wolfgang Rupprecht)
Cc: kerberos@MIT.EDU
From: Sam Hartman <hartmans@MIT.EDU>
Date: 21 Aug 1996 19:18:46 -0400
In-Reply-To: wolfgang@wsrcc.com's message of 20 Aug 1996 23:46:26 -0700

>>>>> "Wolfgang" == Wolfgang Rupprecht <wolfgang@wsrcc.com> writes:

    Wolfgang> hartmans@MIT.EDU (Sam Hartman) writes:

    Wolfgang> I tend to think that its almost always a mistake to
    Wolfgang> embedd policy in hardwired code.


	I would agree that it is sub-optimal at least.  Honestly, I
don't think we have the resources to implement the solution you
propose at the current time.  If it were a user-by-user configuration
choice, and if the defaults were reasonably secure, it would be very
useful.  

	Even then, I think it is reasonable to make it harder to make
policy decisions that tend to lead to insecure situations.  For
example, I think I would object to a policy mechanism that allowed
per-tty caches with manual destruction  for the reasons I stated in my
message to Ken.


    Wolfgang> In the case of credential caches, its a shame that the
    Wolfgang> user that creates the credentials doesn't have more
    Wolfgang> control of the nameing, merging and destruction
    Wolfgang> policies.

    Wolfgang> For example, I can see several desirable scenarios:

    Wolfgang> Then there is the the orthogonal overwrite/merge choice:

    Wolfgang>     Each new kinit/login clears the old cache by the
    Wolfgang> same name and creates a new cache from scratch.

    Wolfgang>     Ech new kinit/login merges its credentials with ones
    Wolfgang> already there.

	I'm not convinced merging credentials actually ends up being
useful.  The problem is that the ccache has a default principal which
is used as the client in almost all circumstances.  I thought it would
be kind of useful to have tickets for several realms in my ccache at
once, so I hacked a kinit to produce the situation by merging the
caches.  It turns out that it really doesn't help, because when I
authenticate to a system not in the Athena realm, it still tries to
authenticate hartmans@ATHENA.MIT.EDU to that realm, even though I had
a TGT for user@remote-realm.  Fixing the library to choose  principals
based on what tickets in the cache would add significant complexity.
Honestly, I'd rather see libkrb5.a grow smaller not larger, and I
don't see that the benefits in this case justify the costs.  If you
have applications that can effectively use merged credentials, submit
a patch to kinit.

    Wolfgang> Then there is the destruction issue:

    Wolfgang>     Destroy all of the cache.

    Wolfgang>     Destroy only the tickets this kinit/login created
    Wolfgang> directly or indirectly.

	The ccache API doesn't allow for either tracking who created
what, nor for partial destruction of a ccache.  Again, since merged
ccaches aren't that useful, I don't see a strong reason to rewrite the
API in this regard.

    Wolfgang>     Destroy the cache by reference count.  The last guy
    Wolfgang> out turns off the lights.

	This would be reasonable and probably required if you had a
per-uid ccache.  

    Wolfgang> It would be good to see an easy way for the user to be
    Wolfgang> able to configure these policy issues via a .krbrc file.

	Agreed.  If you happen to get around to writing this, I would
certainly be interested in your results.  (I'm not implying it is
unreasonable to propose ideas if you don't have time to implement
them, simply that I too would like to see an implementation.  Also,
you could set options like default forwarding, default encryption,
default renewable lifetime, etc.


    Wolfgang> Just trying to thow up some ideas.

    Wolfgang> -wolfgang -- Wolfgang Rupprecht <wolfgang@wsrcc.com>
    Wolfgang> <http://www.wsrcc.com/> PGP key available via finger,
    Wolfgang> keyservers, and WWW

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