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

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




--On July 27, 2009 10:48:46 -0400 Jeffrey Hutzelman <jhutz@xxxxxxx> wrote:
I am unsure how difficult it will be to add channel binding
support to NSS. In the event I succeed with channel bindings, but
subsequently experience interoperability problems with channel bindings,
I will remove all channel binding support from my implementation.

What this tells me is that you don't consider this an important feature.
That's unfortunate, because I consider security to be a very important
feature, and if implementors won't commit to implementing a security
feature, we have no chance of getting operators and users to actually use
it.

I consider TLS channel bindings very important, so much so I'm willing to invest significant effort attempting an implementation. But there are three directions typical deployments could go here: 1. most people use "PLAIN+TLS", 2. SCRAM+TLS-no-channel-bindings gets deployed, 3. SCRAM+TLS-with-channel-bindings gets deployed. If the attempt at 3 is non-interoperable, then 1 will be the result as people will associate "SCRAM" with "doesn't work". I strongly prefer option 2 to 1 and will act accordingly. All this talk of channel binding negotiation is leading in the direction of non-interoperability and is risking the possibility of success with option 3. I am stating up front that I'll fight for option 2 if option 3 looks like it will fail. It's exactly because I care about actually getting security deployed that I'm willing to lose the channel binding feature if necessary to get an incremental improvement.

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.

		- Chris