IETF-SSH archive

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

Re: Ambiguities in section 3.1 of the keyboard-interactive draft



Damien Miller <djm%mindrot.org@localhost> writes:

> This isn't entirely true: you can specify "method1,method2,method3" and
> sshd will allow authentication using method3 if the method1 and method2
> don't exist.
> 
> I'm not sure what you would have us do: kbdint doesn't seem to provide a
> way for a server to report supported methods to a client and I don't
> think it is correct to just ignore what a client has specified and
> continue with a random method that the server picks.

I think the following three steps would improve the situation:

1. Require the names listed in the submethods field to be proper ssh
   names. I.e. standardized names without @, local/vendor stuff with
   @domain attached. Encourage documentation of the @domain things
   that implementations support.

2. Allow the server to use methods not on the client's list, in case
   none of the listed methods is implemented or configured for use by
   the server. (For methods that are implemented and acceptable for
   the server, the server should respect the client preferences).

3. Use the name field in the SSH_MSG_USERAUTH_INFO_REQUEST (or
   introduce a new field, if the "name" field is intended for the UI)
   to tell the client which method the server has selected. This way,
   the client can know if the server is about to ignore its submethods
   preferences, and can abort the keyboard-interactive if it so
   wishes.

I'm not sure how well [1] fits with PAM, but I think the easiest way
out for a PAM backend is to always ignore the submethods list. That is
natural, since PAM, by design, refuses to expose any information
whatsoever about the selection of underlying mechanisms. In step [3],
the PAM backend could send the empty string as the method name, to
indicate that it has no clue about which mechanism is actually used.

(If it turns out that the above, which seems like a perfectly
 reasonable protocol design to me, is for some reason impossible to do
 with a PAM backend, and that is considered a show stopper, then I
 think I'd prefer to have two distinct methods, pam-over-ssh and
 keyboard-interactive, which each does its respective job well, than
 to have a compromise that sucks for all uses).

Regards,
/Niels



Home | Main Index | Thread Index | Old Index