Re: [sasl] Mechanism Negotiation and Channel Binding with SCRAM

Nicolas Williams <Nicolas.Williams@sun.com> Wed, 03 March 2010 17:29 UTC

Return-Path: <Nicolas.Williams@sun.com>
X-Original-To: sasl@core3.amsl.com
Delivered-To: sasl@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 30E7028C14A for <sasl@core3.amsl.com>; Wed, 3 Mar 2010 09:29:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.046
X-Spam-Level:
X-Spam-Status: No, score=-6.046 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_MISMATCH_COM=0.553, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cyOQA7X7abg9 for <sasl@core3.amsl.com>; Wed, 3 Mar 2010 09:29:05 -0800 (PST)
Received: from brmea-mail-1.sun.com (brmea-mail-1.Sun.COM [192.18.98.31]) by core3.amsl.com (Postfix) with ESMTP id 32DB53A87DF for <sasl@ietf.org>; Wed, 3 Mar 2010 09:29:05 -0800 (PST)
Received: from dm-central-02.central.sun.com ([129.147.62.5]) by brmea-mail-1.sun.com (8.13.6+Sun/8.12.9) with ESMTP id o23HT6IK011496 for <sasl@ietf.org>; Wed, 3 Mar 2010 17:29:06 GMT
Received: from binky.Central.Sun.COM (binky.Central.Sun.COM [129.153.128.104]) by dm-central-02.central.sun.com (8.13.8+Sun/8.13.8/ENSMAIL, v2.2) with ESMTP id o23HT6cs045081 for <sasl@ietf.org>; Wed, 3 Mar 2010 10:29:06 -0700 (MST)
Received: from binky.Central.Sun.COM (localhost [127.0.0.1]) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3) with ESMTP id o23HLaiO013835; Wed, 3 Mar 2010 11:21:36 -0600 (CST)
Received: (from nw141292@localhost) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3/Submit) id o23HLaqx013834; Wed, 3 Mar 2010 11:21:36 -0600 (CST)
X-Authentication-Warning: binky.Central.Sun.COM: nw141292 set sender to Nicolas.Williams@sun.com using -f
Date: Wed, 03 Mar 2010 11:21:36 -0600
From: Nicolas Williams <Nicolas.Williams@sun.com>
To: Simon Josefsson <simon@josefsson.org>
Message-ID: <20100303172135.GB1061@Sun.COM>
References: <87k4tww57r.fsf@mocca.josefsson.org> <20100301173017.GF1061@Sun.COM> <87k4tvk7ew.fsf@mocca.josefsson.org> <20100301224424.GN1061@Sun.COM> <87d3znr62u.fsf@mocca.josefsson.org> <20100301231900.GO1061@Sun.COM> <87fx4jng8y.fsf@mocca.josefsson.org> <4B8D043E.6070804@isode.com> <20100302193722.GT1061@Sun.COM> <874okxfick.fsf@mocca.josefsson.org>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <874okxfick.fsf@mocca.josefsson.org>
User-Agent: Mutt/1.5.7i
Cc: Alexey Melnikov <alexey.melnikov@isode.com>, sasl@ietf.org
Subject: Re: [sasl] Mechanism Negotiation and Channel Binding with SCRAM
X-BeenThere: sasl@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SASL Working Group <sasl.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/sasl>, <mailto:sasl-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/sasl>
List-Post: <mailto:sasl@ietf.org>
List-Help: <mailto:sasl-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sasl>, <mailto:sasl-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Mar 2010 17:29:06 -0000

On Wed, Mar 03, 2010 at 06:03:23PM +0100, Simon Josefsson wrote:
> Nicolas Williams <Nicolas.Williams@sun.com> writes:
> 
> > On Tue, Mar 02, 2010 at 12:27:42PM +0000, Alexey Melnikov wrote:
> >> I can be easily confused by declarative language, so I would prefer c). 
> >> But I can live with b).
> >
> > Ok.  For GS2 then I propose the following changes (if you agree I'll
> > make the same changes for SCRAM and post them):
> >
> > -   o  If the client negotiates mechanisms, then clients MUST select the
> > -      PLUS-variant if offered by the server.  Otherwise (the client does
> > -      not negotiate mechanisms), if the client has no prior knowledge
> > -      about mechanisms supported by the server and wasn't explicitly
> > -      configured to use a particular variant of the GS2 mechanism, then
> > -      it MUST select only non-PLUS version of the GS2 mechanism.
> > +   o  Clients that support mechanism negotiation and channel binding
> > +      MUST use a "p" gs2-cb-flag when the server offers the PLUS-variant
> > +      of the desired GS2 mechanism.
> 
> Fine.
> 
> > +   o  Clients that do not support mechanism negotiation but do support
> > +      channel binding MUST use a "p" gs2-cb-flag and SHOULD use the non-
> > +      PLUS variant of the desired GS2 mechanism.
> 
> This is an unrelated change, and I don't like it -- why should, for
> example, clients that _requires_ channel bindings have to select the
> non-PLUS name?
> 
> This change actually _introduce_ the same kind of problem that we wanted
> to fix!  Now the problem is the reverse -- with the above text, clients
> that ONLY support channel binding-enabled GS2/SCRAM will need logic to
> deal with the non-PLUS name.  This is the reverse problem as Tobias
> noticed: clients that DO NOT support channel bindings shouldn't have to
> worry about the PLUS name.

OK.

> >     o  If the client does not support channel binding, then it MUST use a
> >        "n" gs2-cb-flag.
> >
> >     o  If the client supports channel binding and the server does not
> >        appear to (i.e., the client did not see the -PLUS name), then the
> > -      client MUST either fail authentication or it MUST chose the non-
> > -      PLUS mechanism name and use a "y" gs2-cb-flag.
> > +      client SHOULD either fail authentication immediately or choose
> > +      the non-PLUS mechanism name and use a "y" gs2-cb-flag.
> 
> Why SHOULD here?

Because the client could also continue and use a "p" gs2-cb-flag.  Ah!
What we must say is that the client MUST NOT use a "n" gs2-cb-flag --
the other options are all equally reasonable.

Nico
--