On Oct 17, 2010, at 5:06 AM, Kurt Zeilenga wrote:

> 
> On Oct 13, 2010, at 4:23 PM, Alex Milowski wrote:
> 
>> I've been playing around with Multi-user Chat and I'm wondering if anyone 
>> has experience with extending the protocol to include alternate room 
>> password mechanisms?  Specifically, I'm interest in using something like 
>> digest authentication in conjunction with signed stanzas.  I'd like to have 
>> better guarantees on who is actually in the room.
> 
> While one has to demonstrate they know the MUC room password to join, this 
> demonstration does not authenticate who they are.  Presently, the MUC service 
> relies on the subscriber's server to authenticate the subscriber's identity 
> in processing of identity-based access controls.
> 
> Today's XMPP services places a fair amount of trust in the subscriber's 
> server.  If we want not to trust the subscriber's server as much as we today, 
> protecting the MUC password is the least of our worries.  So I'm going to 
> assume there are other risks that one desires to mitigate here by using a 
> 'digest' method for proving one knows the room's password.
> 
> For instance, there is the risk that the password could be sniffed off the 
> unencrypted passwords and be used to gain access to rooms not protected by 
> identity-based access controls.
> 
> So one could extend the MUC specification to allow assertion of a hash over 
> the password and subscribingJID.  This would effectively block eavesdroppers 
> from gaining access to the plain text password, and replay risk is limited to 
> entities we already trust (namely the subscriber's server).
> 
> One could extend the MUC service to support such hashes fairly easy.

This would look something like:

<iq from='ha...@shakespeare.lit/pda'
    id='disco3'
    to='darkc...@chat.shakespeare.lit'
    type='get'>
  <query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>

<iq from='darkc...@chat.shakespeare.lit'
    id='disco3'
    to='ha...@shakespeare.lit/pda'
    type='result'>
  <query xmlns='http://jabber.org/protocol/disco#info'>
    <identity
        category='conference'
        name='A Dark Cave'
        type='text'/>
    <feature var='http://jabber.org/protocol/muc'/>
    <feature var='muc_sha2_protected'/>
  </query>
</iq>

No hash provided:

<presence
    from='darkc...@chat.shakespeare.lit'
    to='ha...@shakespeare.lit/pda'
    type='error'>
  <x xmlns='http://jabber.org/protocol/muc'/>
  <error type='auth'>
    <not-authorized xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
  </error>
</presence>

User provides hash:

<presence
    from='ha...@shakespeare.lit/pda'
    to='darkc...@chat.shakespeare.lit/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.


> 
> I note that SASL is about identity proof.  Since the room password is not 
> about identity proof, SASL itself doesn't seem applicable here, though I 
> guess one could (ab)use it here if they like.
> 
> -- Kurt
> 
>> 
>> --Alex Milowski
>> 
>> _______________________________________________
>> JDev mailing list
>> Forum: http://www.jabberforum.org/forumdisplay.php?f=20
>> Info: http://mail.jabber.org/mailman/listinfo/jdev
>> Unsubscribe: jdev-unsubscr...@jabber.org
>> _______________________________________________
> 
> _______________________________________________
> JDev mailing list
> Forum: http://www.jabberforum.org/forumdisplay.php?f=20
> Info: http://mail.jabber.org/mailman/listinfo/jdev
> Unsubscribe: jdev-unsubscr...@jabber.org
> _______________________________________________

_______________________________________________
JDev mailing list
Forum: http://www.jabberforum.org/forumdisplay.php?f=20
Info: http://mail.jabber.org/mailman/listinfo/jdev
Unsubscribe: jdev-unsubscr...@jabber.org
_______________________________________________

Reply via email to