On Wed Oct 20 01:47:58 2010, Alex Milowski wrote:
On Sun, Oct 17, 2010 at 5:32 AM, Kurt Zeilenga <[email protected]> wrote:

> User provides hash:
>
> <presence
>    from='[email protected]/pda'
>    to='[email protected]/thirdwitch'>
>  <x xmlns='http://jabber.org/protocol/muc'>
>    <hash algorithm="sha2">hash</hash>
>  </x>
> </presence>
>
> where hash was the base64 encoded sha2 hash over the concat of subscribers' normalized bare jid, " ", the room's normalized bare jid, " ", and the shared password.


Yes, this is something like what I'm after. I'm not really looking to
have individual identities authenticate.  Instead, I'm looking for a
more secure way to send the shared credentials for the room.


At the risk of somewhat contradicting my colleague...

That's equally (in)secure, since the hash is a plaintext equivalent. That's protecting you from a different user joining, but someone able to spoof the user can just blindly resend the hash. If you sign stanzas, on the other hand, the hash is pointless.

I suppose there's three cases:

a) You trust the servers/administrators, and trust them to be doing TLS (to at least prevent eavesdropping, which requires endpoint authentication), such that MITMs are not practical. In this case, the current plaintext password seems OK.

b) You trust the servers/administrators, but you consider an MITM on S2S (or C2S, I suppose) to be a threat. In this case, a simple hash allows a replay, and offers little beyond the password, and signed stanzas are required. As noted above, if you already sign the stanzas, then any "password" is pointless.

c) You don't trust the servers/administrators. In principle, such a situation might well lead to the wrong certificate being provisioned, but either way, signing/encrypting stanzas is effectively your only way out now.

In order to provision a certificate, you could consider one of:

1) The MUC runs (or has access to ) a CA, and you sign a CSR provided during registration.

2) The MUC has shared Trust Anchors with the users.

3) The MUC is supplied with a certificate (possibly self-signed) during registration.

In either 1/3, then one assumes that you would need some other credential during registration - this is where I'd envision using SASL, to buy you reasonable password (or shared-secret) based protection without trying to hack it into the MUC join presence.

I suppose this should be shared on the muc list ([email protected]) but I
haven't heard much come across that yet.

There's also a security list, which might be more useful for this.

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