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

Re: Poll: use of TLS channel bindings in SCRAM




My current view is that channel binding type (tls-unique v. tls-server- end-point v. other types (whether other TLS types or non-TLS types) for SCRAM be accomplished through SASL mechanism negotiation. Specifically, I prefer the I-D to define a set of mechanism variants, possibly open ended to allow for future channel binding types, that allow, in addition to hash function, the channel binding type to be advertise by the server (in supporting application protocols) and selected by the client. Specifically, I recommend names such as:
	SCRAM-SHA-1  (no channel binding)
	SCRAM-SHA-1-TLS-UNIQUE
	SCRAM-SHA-1-TLS-SERVER-END-POINT

I do not support advertisement of pseudo mechanism names as this presumes the security applicability of all present and future channel binding types when used in all present and future SASL mechanisms with all present and future application problems is the same. I argue that the security characteristics of each channel binding types, mechanisms, and protocol differ significantly enough that it reasonable that application protocol server implementor or deployer might reasonable want to place restrictions on which channel binding types are available on a per mechanism basis.

I do not support in SCRAM exchange negotiation as this tends to lead to interoperability problems (client asks to SCRAM, server offers a channel binding types the client is not willing to use, must abort the exchange, possibly having to reconnect, to try some other mechanisms).

That is, while I favor 3 but only if a negotiation is via names of the variants of the SCRAM mechanism. So I guess I rather call this 5 as I rather my comments be take as supporting the other forms of negotiation.

The only other option I think I could support is defining only:
	SCRAM-SHA-1  (no channel binding)
	SCRAM-SHA-1-TLS-UNIQUE

Under this option (basically 1a), I would not use the PLUS name for SCRAM-SHA-1-TLS-UNIQUE (or SCRAM-SHA-1-TLS-SERVER-END-POINT or other name restricted to a specific channel binding type) to encourage "meaningful" names of additional variants that could be subsequently introduced. That is, I think the PLUS name in more suitable for the two options above that I do not support.

-- Kurt, as a WG participant


On May 28, 2009, at 2:49 PM, Alexey Melnikov wrote:


I've discussed channel bindings with Nico in jabber and we agreed that we need to get WG consensus on how TLS channel bindings should be used with SCRAM. Please provide an orded list of alternatives you find acceptable from the choices listed below. (Please restrict discussions of variants of these choices at the moment. I will do another poll on such choices later, depending on the outcome of this poll. Also, please read notes for the choices before answering). Please answer the poll by the end of June 7th.

1). SCRAM should just use a single allowed TLS channel binding and don't have any negotiation of other TLS channel bindings (*) (**)
a). the default is tls-unique
b). the default is tls-server-end-point
2). SCRAM should just use tls-server-end-point, fallback to tls- unique, no negotiation of other TLS channel bindings (*)
3). SCRAM should always use channel binding negotiation (*)
4). SCRAM should have a default TLS channel binding with optional negotiation of TLS channel bindings (*)
a). the default is tls-unique
b). the default is
5). I have another opinion [this is for the case when there is some valid choice which you think should be considered by the WG]

Notes:
(*) - whether such negotiation happens inside or outside of SCRAM
(**) - channel binding negotiation can be added later on