[jdev] Re: [Psi-devel] Some login/sasl questions for 0.11
Dave Cridland
dave at cridland.net
Mon Feb 5 12:24:45 CST 2007
On Mon Feb 5 14:46:01 2007, Matthias Wimmer wrote:
> Dave Cridland schrieb:
>>> Concerning the question if establishing a SASL encryption layer
>>> should be supported inside a connection, that is already
>>> protected by a TLS layer:
>>
>> This interested me, so I discussed this with the SASL guys in the
>> office, and the result, as I understand it is as follows.
>>
>> Basically, what you're discussing is related to Channel Binding -
>> there's a lot of work going on in that area in the IETF at the
>> moment, including an updated DIGEST-MD5 which does channel
>> binding. There's other mechanisms under development which will
>> also use channel binding. This basically ensures that both ends of
>> the authentication have the same idea of the encrypted channel
>> used.
>
> Right.
>
>> Now, if you use SASL security layers in addition to TLS, then this
>> does negate the need for channel binding, but it also negates the
>> need for TLS to a large degree. So for a server, you want SASL
>> security layers, and ignore TLS.
>>
>> Since SASL security layers are weaker, often, and also have
>> certain undesirable properties, such as transmitting the userid
>> and authid in the clear, though, you want to be using TLS as a
>> client.
>
> On the server side I also cannot just not offer TLS and only offer
> a security layer in SASL. If I would do so, I would not allow the
> client to authenticate using TLS - which is the probably strongest
> way we currently have for client authentication and ensuring an
> encrypting layer.
>
>
For some values of strongest, yes. Kerberos is also a possibility,
though, as is SRP.
> I think if a server does not care that there is a security layer to
> the client (current standard case), the connection should not use a
> SASL security layer inside the TLS layer. But this shouldn't be the
> client that decides that this SASL layer is not established, but
> the server.
> Therefore I think that Psi should establish the auth-conf layer of
> DIGEST-MD5 if that is offered by the server - but servers typically
> should not offer this layer if TLS has already been established -
> as it is the server for which it matters if that second security
> layer exists or not.
Or, as a short-term possibility, you could run auth-int inside TLS,
and then exchange XMPP-level channel binding messages, perhaps via a
simple IQ. That'll have much the same effect as channel binding. (Of
course, without the auth-int, it's meaningless).
That's got to be a lot cheaper than encrypting twice, and should work
find in the normal case of there being no MITM. It's also much easier
to code.
Dave.
--
Dave Cridland - mailto:dave at cridland.net - xmpp:dwd at jabber.org
- acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
- http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade
More information about the JDev
mailing list