IETF-SSH archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: empty user name in gsskeyex



On Sat, Apr 08, 2006 at 10:38:53PM +1000, David Leonard wrote:
> I have some concerns with this under-discussed paragraph in gsskeyex-10
> 
>  The user name may be an empty string if it can be deduced from the
>  results of the GSSAPI authentication. If the user name is not empty,
>  and the requested user does not exist, the server MAY disconnect, or
>  MAY send a bogus list of acceptable authentications but never accept
>  any.  This makes it possible for the server to avoid disclosing
>  information about which accounts exist.  In any case, if the user
>  does not exist, the authentication request MUST NOT be accepted.
> 
> 
> The first sentence mentions a server capability (deducing user names 
> when passed as blank) the status of which isn't clearly described. If 
> the feature isn't useful enough to be included properly, then that 
> sentence should just be deleted.
> 
> I think that deducing user names /is/ a convenient feature, so I instead 
> suggest that the first sentence be replaced with:
> 
>  If the user name is an empty string, the server MAY deduce the user
>  name from the results of the GSSAPI authentication.

OK, so you want RFC2119 language.  I think that's reasonable, if a bit
late.

> And a corresponding provision should also be added to the gssapi-keyex 
> method section (i.e. repeat the above sentence for keyex)

Sure.

> This is a pretty useful feature for users in my view. But I am worried 
> that it has too many problems. The current GSSAPI does not provide a way 
> to portably deduce an account name from credentials. (I'm thinking about 

I doesn't have to.  This can be a local matter.  And in at least one
implementation it is.

> querying credentials to get a GSS_C_NT_USER_NAME name). Maybe one day it 
> will? But for now, a server must talk magic to its favourite mechanisms. 

Not so.

Things one can do: maintain a database of exported name token to
username mappings.  Nothing mechanism-specific there.  Other portable
alternatives exist also, but I don't think this RFC should mandate or
even recommend any of them.

> In short, the feature encourages non-standard implementation. That 
> sounds bad to me.

Local matter.

> I also noticed an interoperability problem. A good client, not provided 
> with a username, will try the empty-username first, and if it fails, 
> assume the server is old and try to deduce a username itself.

Really?  For what definition of good?  Some clients simply default to
whatever the username is on the client side, or in a configuration file.

>                                                               However, 
> openssh servers prohibit a client from changing the username during 
> authentication. The server immediately disconnects. Is that cause for 
> concern?

I don't think it is much of a concern because I think clients should
require that the user explicitly choose to assert the empty username.

Besides, servers could allow switching from the empty username to one
non-empty username.

> In short, I don't know if permitting user name deduction is such a great 
> idea with the problems it may cause. But, it would certainly be nice to 
> have.

I think it's a great idea and it does work.

Nico
-- 



Home | Main Index | Thread Index | Old Index