Not logged in. · Lost password · Register
Forum: MatriX and XmppDotNet RSS
Avatar
cvoluter #1
Member since Jan 2015 · 14 posts
Group memberships: Members
Show profile · Link to this post
Subject: Support for XEP 114 and XEP 225
I,

For performance reason, the best choice to our developement is to design its as a Jabber component. It is like a subdomain and decrease the XMPP server load.

However, there are a number of perceived limitations with that protocol:

· It does not support Transport Layer Security (TLS; see RFC 5246 [2]) for channel encryption.
· It does not support the Simple Authentication and Security Layer (SASL; see RFC 4422 [3]) for authentication.

To add the TLs and SASL authentication another XEP is existing: XEP-0225  - Component Connections: http://xmpp.org/extensions/xep-0225.html TLS and SASL are supported for XEP-0225.


Is Matrix compatible with the XEP 0225 , for the transport and authentication ?

Thks,
Avatar
Alex #2
Member since Feb 2003 · 4447 posts · Location: Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Hello,

no XEP-0225 is not supported. This XEP is also in a Deferred state. No customers asked for it yet.
Are there any existing XMPP servers supporting it?

Alex
Avatar
cvoluter #3
Member since Jan 2015 · 14 posts
Group memberships: Members
Show profile · Link to this post
Hello,
Thanks for your answer,
It seems to Tigase Server support both XEP 114 and XEP 225.

Is there an alternative to forcing connection with SASL over TLS between server and Jabber component?

Thanks,
Avatar
Alex #4
Member since Feb 2003 · 4447 posts · Location: Germany
Group memberships: Administrators, Members
Show profile · Link to this post
right now there is nothing in MatriX like that.

The code of the Component connection for MatriX is pretty simple. So when you want to write your own Xmpp component connection class supporting SSL, TLS or SASL this would be pretty simple.

Most users run components on the same server or an internal network or secure VPN. This may be the reason why nobody ask for such a feature for now,

Alex
Avatar
cvoluter #5
Member since Jan 2015 · 14 posts
Group memberships: Members
Show profile · Link to this post
Thanks for your answers,

How can i develop component witch contain self connection procedure (by inheritance with XmppClient or Component) ? 

Connection stream will average look like this:

  1.  C: <stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' from='component.domain.com' to='domain.com' version='1.0'>
  2.    
  3.  S: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version ='1.0' xml:lang='en' from='domain.com' to='component.domain.com' id='25b96931-ce76-4691-b706-d45433dd96e8'>
  4.        <stream:features>
  5.               <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls">
  6.                   <required/>
  7.               </starttls>
  8.                <mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
  9.                    <mechanism>PLAIN</mechanism>
  10.                </mechanisms>
  11.                <bind xmlns="urn:xmpp:component:0"/>
  12.            </stream:features>
  13.            
  14.       C: <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
  15.      
  16.       S: <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
  17.      
  18.       C: <stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' from='component.domain.com' to='domain.com' version='1.0'>
  19.      
  20.       S: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' version ='1.0' xml:lang='en' from='domain.com' to='component.domain.com' id='25b96931-ce76-4691-b706-d45433ddsd8'>
  21.      
  22.       C: <iq id='25b96931-ce76-4691-b706-d45433ddfrf' type='set'>
  23.            <bind xmlns='urn:xmpp:component:0'>
  24.                <hostname>component.domain.com</hostname>
  25.            </bind>
  26.          </iq>
  27.      
  28.       S: <iq id='25b96931-ce76-4691-b706-d45433ddfrf' type='result'>
  29.            <bind xmlns='urn:xmpp:component:0'>
  30.                <hostname>component.domain.com</hostname>
  31.            </bind>
  32.          </iq>

Regards,
This post was edited on 2015-07-29, 18:06 by Alex.
Avatar
Alex #6
Member since Feb 2003 · 4447 posts · Location: Germany
Group memberships: Administrators, Members
Show profile · Link to this post
you cannot reuse XmppClient or XmppComponent for this.

I think you could inherit from XmppStream, or write smth which is based on the XmppStreamParser like in the server example here:
https://gitlab.com/matrix-xmpp/samples/blob/master/csharp/…

Alex
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters: