[krbdev.mit.edu #8203] Name handling does not conform to RFC2744

Simo Sorce via RT rt-comment at krbdev.mit.edu
Fri Jun 19 16:19:27 EDT 2015


In RFC2744 3.10 it says:
     "A single gss_name_t object may contain
      multiple names from different namespaces, but all names should
      refer to the same entity.  An example of such an internal name
      would be the name returned from a call to the gss_inquire_cred
      routine, when applied to a credential containing credential
      elements for multiple authentication mechanisms employing
      different namespaces."

I found myself in exactly this situation (using gss_inquire_cred) and currently
libgssapi fails to handle the request appropriately.

In my code I am using gss_acquire_cred() with usage GSS_C_ACCEPT in order to
get a "server" name to be used. In my configuration I have 2 mechanism that have
valid server credentials, however only the first mechanism name is returned when
I call gss_inquire_cred().

Later on I use this "server" name as input for gss_init_sec_context() which is
used in a loop with gss_accept_sec_context() in order to validate user credentials
obtained via gss_acquire_cred_with_password()

If the credentials being tested are valid only for the second mechanism (using SPNEGO
to negotiate a valid mechanism for example) then the second mechanism fail to work, as
the name used is valid only for the first mechanism.

A gss_union_name_t will need to be introduced to fix this problem.

Simo.

-- 
Simo Sorce * Red Hat, Inc * New York




More information about the krb5-bugs mailing list