[11980] in Kerberos-V5-bugs
RE: [krbdev.mit.edu #6902] S4U impersonated credential
daemon@ATHENA.MIT.EDU (Arlene Berry" via RT)
Mon Apr 25 14:48:33 2011
Mail-followup-to: rt@krbdev.mit.edu
mail-copies-to: never
From: ""Arlene Berry" via RT" <rt-comment@krbdev.MIT.EDU>
In-Reply-To: <rt-6902@krbdev.mit.edu>
Message-ID: <rt-6902-34019.18.7337281747202@krbdev.mit.edu>
To: "'AdminCc of krbdev.mit.edu Ticket #6902'":;"'AdminCc of krbdev.mit.edu Ticket #6902'":;@MIT.EDU
Date: Mon, 25 Apr 2011 14:48:31 -0400 (EDT)
Reply-To: rt-comment@krbdev.MIT.EDU
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: krb5-bugs-bounces@mit.edu
When doing S4U2PROXY, first you get a TGT for yourself. Then you call
gss_acquire_cred_impersonate_name which gets you what it essentially a
TGT for the identity you're impersonating. It's this credential which
has an incorrect end time. Next you use this impersonated credential to
call gss_init_sec_context for the service you want to contact as the
impersonated identity and pass in the impersonated credential.
Gss_init_sec_context uses the impersonated credential to fetch a service
ticket for the service you're contacting. When it does that it has to
first find the impersonated credential in the credentials cache which
fails because the end time doesn't match. I reproduced this with some
enhanced GSS sample programs but you should be able to do it with kvno
also. I get three credentials in my cache, one which is my original
TGT, one for myself for the impersonated user, and one for the target
service for the impersonated user. Both of the credentials for the
impersonated user have the shorter lifetime and it's the second one, the
one for myself, which it fails to find in the credentials cache when
attempting to get the third one.
_______________________________________________
krb5-bugs mailing list
krb5-bugs@mit.edu
https://mailman.mit.edu/mailman/listinfo/krb5-bugs