Here is a really brief explanation of what channel bindings are about.

A client, on behalf a user, wants to establish a secure channel with their server.

The client establishes a TCP channel with that server.
The client then establishes a TLS channel over the TCP channel.
The client then establishes an XEP channel over the TLS channel and
  within that channel performs DIGEST-MD5 authentication.

While the DIGEST-MD5 provides for a (limited) form of mutual authentication, DIGEST-MD5 offers no assurance to either the client or the party that the end points of the DIGEST-MD5 exchange are the same as the end-points of the TLS exchange. This lack of this assurance leaves open various avenues of attack.

Channeling bindings are about providing assurances that the end-points in two more channels (or layers) are the same.

The IETF is developing mechanisms such as SASL/SCRAM that providing channeling bind support. When used, the client can confirm that the SCRAM end-point and the TLS end-point its talking to are in-fact the same end-point. Likewise, the server can confirm the SCRAM and TLS end-points its talking to are in-fact the same.

-- Kurt

Reply via email to