[4227] in Kerberos

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

Proxy tickets...

daemon@ATHENA.MIT.EDU (Clifford Neuman)
Sun Nov 20 15:28:04 1994

Date: Sun, 20 Nov 1994 12:14:53 -0800
From: Clifford Neuman <bcn@ISI.EDU>
To: mellon@ipd.wellsfargo.com
Cc: kerberos@MIT.EDU
In-Reply-To: Ted Lemon's message of Fri, 18 Nov 1994 15:15:20 -0800 <199411182315.PAA00416@rurapenthe.ipd.wellsfargo.com>

   Date: Fri, 18 Nov 1994 15:15:20 -0800
   From: Ted Lemon <mellon@ipd.wellsfargo.com>

   We have an application here at Wells Fargo which doesn't appear to be
   addressed by the current PROXIABLE/PROXY ticket flags, and I'm
   wondering if anybody is thinking about solving this problem, or if
   it's considered not to be worth solving.

   First, let me describe how I think RFC 1510 currently describes
   proxying.  Let us say that Principal X wants to use Service A, which
   will also need to access Service B on behalf of the user in order to
   complete its request.

   Principal X presents its TGT to the TGS and requests a normal ticket
   for Service A, and authenticates itself with Service A using that
   ticket.  It also presents its TGT to the TGS a second time, requesting
   a TGT with the PROXIABLE flag set.  The address for which the new TGT
   will be valid is set to that of Service A.

   It then authenticates itself to Service A and hands Service A the
   proxiable TGT, which is used to get a ticket for Service B, which
   can't be the TGS.  That ticket has the PROXY flag set.  Service A then
   uses that ticket to access Service B, which knows from the PROXY flag
   in its ticket that it might be worthwhile to insist that Service A
   provide its own ticket, possibly for access control and also to
   maintain a more complete audit trail.

Actually, unless Principal X trusts the service A not to exceed
specific authority, the way things work is that X requests a proxied
ticket from the TGS for the service A needs to use on X's behalf, and
forwards that proxy to A following X's authentication to A.  If X
doesn't know what services A will require, then X must forward
credentials (a TGT) to A that allow A to do anything that X could do.
A should not do this unless it trusts X, but if it does, and if the
forwarded credentials are themselves forwardable (A decides this when
it obtains the credentials for forwarding to X), then X can further
forward the credentials or grant proxies (actually the latter requires
the the forwarded credentials be proxiable too).

   Unfortunately, this model only works if the services that Service A
   needs to access don't themselves need to access other services in
   Principal X's name.   If Service A is a CORBA server which may access
   another CORBA server (Service B) which finally accesses a database
   engine (Service C), there's no way to use a proxy ticket, because
   there's no way for Service B to get a ticket in Principal X's name for
   Service C.

   Principal X could pass a forwardable TGT to Service A, which could
   then get its own forwardable TGT in Principal X's name and pass that
   along to Service B, which would do the same for Service C.   However,
   in that case each service has a TGT which is not labeled as being in
   any way different from the user's actual credentials.

This is exactly what would happen above.  Note that the credentials
obtained will be labeled as "forwarded", which are different from the
user's actual credentials.

   I think that what's needed is a ticket that has the same semantics as
   the forwardable TGT, but which has a flag set indicating that the
   ticket is being used as a proxy.  As this ticket was passed down the
   chain of servers, it would always have a flag on it indicating that it
   should be treated as a proxy.   It might be worthwhile to require that
   in order to use the forwardable proxy TGT, a server would also have to
   supply its own TGT.

It is the "forwarded" flag.  Actually, the distinction between
forwardable and proxiable is minor, and if I had it to do again, I
would probably roll them into a single flag.  More constrained limits
on the use of proxies or forwarded credentials may be placed in the
authorization data field. See:

ftp://prospero.isi.edu/pub/papers/security/pbaa.ps.Z 

Clifford Neuman

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