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

Re: WG Last Call: draft-ietf-sasl-scram-02



Nicolas Williams <Nicolas.Williams@xxxxxxx> writes:

> On Tue, Jul 28, 2009 at 02:30:39PM +0200, Simon Josefsson wrote:
>> Chris Newman <Chris.Newman@xxxxxxx> writes:
>> > Now that you've goaded me to explain my concern.  I'll make a concrete
>> > suggestion to improve the SCRAM channel bindings section.  I suggest
>> > we replace this text:
>> >
>> >   Clients SHOULD choose the tls-unique channel binding type.
>> >   Conversely, clients MAY choose a different channel binding type based
>> >   on user input, configuration, or a future, as-yet undefined channel
>> >   binding type negotiation protocol.  Servers MUST choose the channel
>> >   binding type indicated by the client, if they support it.
>> >
>> > with:
>> >
>> >   Clients MUST use the tls-unique channel binding type if a TLS channel is
>> >   active when SCRAM is used.  Clients MAY use a different channel
>> > binding type if
>> >   an as-yet undefined channel binding type negotiation has confirmed
>> > the server
>> >   supports the channel-binding type the client selects.
>> >
>> > This way, SCRAM+TLS-channel-bindings will interoperate.  With the
>> > current vague text, it's possible for a compliant client's SCRAM
>> > implementation to fail to interoperate when communicating with a
>> > compliant server's SCRAM + TLS-channel-bindings implementation.
>> 
>> I'm not sure this change is good -- first, the MUST is clearly violated
>> when the MAY-path is exercised, so it is not internally consistent.
>
> We do this all the time in IETF protocols, where we say that one MUST
> send 0 in some field that's reserved for future extensions, and we state
> how one must react to non-zero values in that field, then later we relax
> that and say what values may be sent.  What should happen here is that
> the second sentence in Chris' proposed text should just be removed -- a
> future update will not be bound to keep the MUST in the first sentence.

Right.

>> This was one of the motivations for SHOULD, IIRC, although I agree that
>> it wasn't completely clear before either.  Also you dropped the last
>> sentence which is necessary to get interoperability.  How about:
>
> No, _my_ motivation for that SHOULD was to allow clients and servers to
> agree a priori and out of band to use some other CB type than
> tls-unique.

That is what I meant too.

> I'll be happy to see this SHOULD turn into a MUST.

The last sentence still seems necessary though.  So the paragraph
becomes:

  Clients MUST choose the tls-unique channel binding type.  Servers MUST
  choose the channel binding type indicated by the client, if they
  support it.

I suspect we want SCRAM and GS2 to be consistent on this, right?  So
both documents needs this change.

/Simon