On Thu Oct 21 23:58:22 2010, Alex Milowski wrote:
I don't see how having a non-cleartext authentication mechanism for
MUC rooms changes any security issues that might already be present
via a MUC room service.

Well, I think that's really my point, right there.

Given an attacker who is in a position to hijack C2S or S2S streams and inject stanzas, mere replacement of a plaintext method with even a challenge/response-based hash method doesn't appear to change the security issues of MUC all that much at all.

All, in fact, it protects against (that a plaintext password doesn't) is that a purely passive easvesdropper cannot acquire the password. But if that's your sole threat, then Kurt's original salted hash is fine, sans timestamp.

On the other hand, if you're concerned about tampering with the stanzas between the client and the service to any degree, then of course you note Kurt's hash replays. But, equally, so does all the other traffic, allowing someone to hijack a stream and inject any other traffic they choose the moment their victim has joined, leaving all the traffic in the MUC - that presumably you're trying to establish trust for - vulnerable to a wide range of attacks.

To put it another way, even if you proof the join request against replay and spoofing, such that it becomes a (mythical) perfectly secure operation, it'll still be rather like having a six-inch thick steel front door but leaving all your windows open.

Therefore, in order to minimize round-trips and provide security, you need to:

1) Sign all the stanzas with a certificate trusted by the MUC service.

2) Arrange some mechanism for provisioning that certificate. (Which might be a prearranged common trust anchor, or some mechanism whereby the client authenticates in a more complex manner with the MUC service as a one-off to agree on, or sign, a certificate.)

It's this latter case where I propose using SASL, not in the MUC join.

I'm not saying, by the way, that I feel this model is at all sensible. I think it's a fantastic overkill. But it's a sensible option *if* you think the threat model includes a likely injection attack, including replay.

This is why I've been trying to figure out exactly what your threat model is - that is, what potential attacks you're attempting to protect against - in order to figure out how far we need to go to mitigate those attacks.

Dave.
--
Dave Cridland - mailto:[email protected] - xmpp:[email protected]
 - acap://acap.dave.cridland.net/byowner/user/dwd/bookmarks/
 - http://dave.cridland.net/
Infotrope Polymer - ACAP, IMAP, ESMTP, and Lemonade
_______________________________________________
JDev mailing list
Forum: http://www.jabberforum.org/forumdisplay.php?f=20
Info: http://mail.jabber.org/mailman/listinfo/jdev
Unsubscribe: [email protected]
_______________________________________________

Reply via email to