Justin Karneges wrote:
On Tuesday 25 March 2008 7:23 pm, Joe Hildebrand wrote:
Questions for the security folks:
- Does this lead to a potential downgrade attack?
Yes, an attacker could spoof an error reply by the server, so the client
chooses a different mechanism. For example, it could cause errors to occur
for all mechanisms except PLAIN. However, even without the mechanism
fallback feature we are discussing, clients are still susceptible to a
downgrade attack since the attacker can simply change the mechanism list
offered by the server. This is an even easier and more effective attack,
since the attacker can add the PLAIN mechanism to the list if it is not
present.
Indeed.
Clients using SASL libraries should be insulated from all downgrade attacks.
Cyrus SASL, for example, will only ever choose mechanisms that match the
selected security settings, so there's really nothing the client developer
can do to screw this up.
Right.
- Does this require the use of a secure channel like TLS to prevent
downgrade attacks?
This is one way to solve it, although it does sort of pass the buck since TLS
itself is vulnerable to very similar downgrade attacks
(s/mechanisms/ciphersuites). In the end, you need a minimum security level,
whether it is at the TLS or SASL layer.
Very well said.
- If not, and we can use a negotiated security layer, what happens
when you try to switch to a SASL mechanism that doesn't support that
security layer?
If the client's minimum security level requires a security layer, then the
client should never pick a mechanism that does not have one.
Exactly. The client should require some minimal security layer from TLS
and/or SASL.