IETF-SSH archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
RE: gss userauth
Hi Jeff,
Okay, You reminded me of all the reasons why I don't like GSSAPI channel
bindings. My only issue with MIC is that it might add an extra round
trip. I think that this is outweighed by the fact that MIC would
probably lead to more consistent implementations.
In any case I agree that we do not want to bind addresses.
Joe
> -----Original Message-----
> From: ietf-ssh-owner%NetBSD.org@localhost
> [mailto:ietf-ssh-owner%NetBSD.org@localhost] On Behalf Of Jeffrey Hutzelman
> Sent: Friday, August 22, 2003 4:22 PM
> To: ietf-ssh%NetBSD.org@localhost
> Cc: 'Love'
> Subject: RE: gss userauth
>
>
> On Friday, August 22, 2003 14:41:38 -0700 Joseph Salowey
> <jsalowey%cisco.com@localhost> wrote:
>
> > I'm in favor of using channel bindings for this purpose.
> >
> > CCM could be one approach to do this.
> > http://www.ietf.org/internet-drafts/draft-ietf-nfsv4-ccm-01.txt
> >
> > At first glance it seems a little complex, but I need to
> actaully read
> > the spec.
>
> CCM actually isn't what we want. It's a way of taking an app
> that uses
> GSSAPI's integrity and/or encryption features, and a mechanism that
> provides them, and essentially ripping out the mechanism's
> authentication
> and encryption and replacing them with that provided by some
> lower-layer
> protocol such as IPsec, on the theory that hardware
> acceleration is more
> likely to be available there. We don't need that
> functionality -- we don't
> ever use GSSAPI encryption features, and we currently send
> exactly one
> integrity-protected message (during key exchange).
>
> What we need is a way to bind user authentication to our application
> protocol's existing cryptographic context, not to some lower-layer
> protocol. We don't need a special GSS mechanism for that --
> all we need to
> to require the client to send an integrity-protected copy (or
> checksum) of
> the exchange hash, just as we do in other user auth
> mechanisms, and as we
> do in the reverse direction during key exchange.
>
> I can think of two ways of doing this:
> (1) Use GSSAPI channel bindings. Unfortunately, some
> mechanisms require
> bindings to take a particular format, as described in RFC2744
> section 3.11.
> In our case, we would want to use address types of
> GSS_C_AF_NULLADDR, since
> we very much do _not_ want to bind this authentication to
> network protocol
> addresses (that would gain nothing, and make it not work
> through NAT's).
> We could then include the session ID as "application data".
>
> (2) Add an additional step in which the client is required to
> send a MIC of
> the session ID before authentication can succeed. This is
> essentially the
> same as what we do in key exchange, but in the reverse direction.
>
> I find myself preferring option (2) for several reasons:
> - By my reading, RFC2743 does not appear to actually require
> that GSSAPI
> mechanisms _do_ anything with channel bindings. A mechanism
> could just
> choose to ignore them.
> - RFC2743 _does_ allow mechanisms to require bindings to take
> a particular,
> mechanism-dependent form. It does not specify what the
> behaviour might be
> if the provided bindings are not in a format acceptable to
> the mechanism.
> - Some mechanism might be unable or unwilling to provide integrity
> protection for channel bindings, and there is no way for them
> to signal
> this to the application. While it may be the case that a
> mechanism cannot
> support gss_get_mic, at least there is a flag to indicate
> that, and we can
> write appropriate requirements.
> - Using a separate message means we can maintain some amount
> of backward
> compatibility for sites that have already deployed earlier
> versions of this
> draft. Particularly, it allows for situations in which the client
> implements the new message, but the server does not.
>
> -- Jeff
>
Home |
Main Index |
Thread Index |
Old Index