[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Poll: use of TLS channel bindings in SCRAM
On Fri, May 29, 2009 at 08:29:42PM +0200, Simon Josefsson wrote:
> Nicolas Williams <Nicolas.Williams@xxxxxxx> writes:
>
> > After much discussion with Jeff H. and, separately, Sam H., I think the
> > following proposal is likely to be simple enough to garner consensus and
> > yet flexible enough to let us adapt to future conditions. The proposal:
>
> Nico convinced me about this proposal in jabber, and we fleshed out the
> changes that will be needed in GS2 to implement this. This has to be
> reflected in SCRAM as well. The changes can be summarized into:
>
> 1) Add text to say that with 'p' one cb type name is included (normally
> tls-unique)
>
> 2) Add text to say that with 'y' a list of cb type names supported by
> the client is included
Both, 1 and 2 refer to that new GS2 header field that I mentioned. And
both 1 and 2 are there to:
a) facilitate the future addition of channel binding type negotiation
using any one of the three sketches so far (Jeff's pseudo-mech,
Simon/Kurt's N*M mech names, or my N+M mech names),
and
b) provide for downgrade detection should we ever add channel binding
type negotiation.
> 3) Add text to say that if a server doesn't understand the cb type,
> authentication fails.
That's not strictly needed: whatever the server does at that point
authentication necessarily must fail :)
> 4) The text from Nico's e-mail (clients and servers MUST support
> tls-unique, clients SHOULD choose tls-unique, ...)
Yup, as modified by Jeff's reply to my post.
> I have converted the above into text changes for GS2, and you can review
> the result in:
>
> http://josefsson.org/sasl-gs2/draft-ietf-sasl-gs2.txt
> http://josefsson.org/sasl-gs2/draft-ietf-sasl-gs2.html
>
> The diff against -13 is in:
>
> http://josefsson.org/sasl-gs2/draft-ietf-sasl-gs2-from--13.diff.html
The main comment I have is that section 5.1 needs to claim the default
channel binding type agreement as being the default for _SASL application
protocols_, and explicitly allow SASL app protocols to specify a
different agreement.
Also, I like your ABNF. I had in mind using something like t=<type> and
t=<type>[:<type>[:...]], but your approach strikes me as better.
Finally, you need to add references to the channel binding type
registrations.
> Check the examples, they are updated and hopefully give you a quick idea
> of how the protocol will look like.
>
> Thoughts?
Awesome. Thanks!
Alexey, can you adapt Simon's changes to GS2 to SCRAM?
Nico
--