Friday, August 8, 2014

Jabsimul with SASL Integration is a benchmarking tool for Jabber/XMPP Servers which have SASL authentication

jabsimul-with-sasl
===========

Jabsimul with SASL Integration is a benchmarking tool for Jabber/XMPP Servers which have SASL authentication.
It also has the support for *starttls*.

Special Note:
---------------------

The SASL and starttls implementation is mine. Other than this project is not mine.

Implementation:
-------------------------

I have implemented the protocol named XEP-0034: SASL Integration.

Extra Feature:
-----------------------

Other then jabsimul benchmark feature it has the extra feature of XMPP SASL authentication. I have enabled the SASL plain mechanism of authentication for xmpp login.

With that now you can have the benchmark of jabsimul with SASL authentication.


As list:

1. Implemented “XMPP TLS” from http://xmpp.org/rfcs/rfc3920.html
2. Implemented “SASL AUTH” from  http://xmpp.org/rfcs/rfc3920.html

Source code is available in here .


Procedure:
-----------------

First start a TCP connection to the XMPP server. Then convert this TCP connection to TLS with *starttls* schema request.
Then select the *SASL* auth mechanism and start the the XMPP communication with TLS. The TLS connection holds when the SASL mechanism complete a successful handshake.


1. Protocol Messaging Details with sequence -


Client:
----------

<stream:stream to="intel.com" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams">

Server:
------------

<stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' id='ojTsAaoSvVKdKfmW' from='intel.com'  version='1.0'>
<stream:features>
  <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"><required/></starttls>
  <mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
    <mechanism>PLAIN</mechanism><mechanism>X-OAUTH2</mechanism>
  </mechanisms>
 
</stream:features>

Client:
-------
<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>



Server:
-------
<proceed xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>

Implementation details are available [here](https://developers.google.com/cloud-print/docs/rawxmpp)

How To's:
--------

cd jabsimul/jab_simul/
vi jab_simul.xml


Change *<server>jabber.localhost</server>* to your XMPP server address. Fill the xml file with you necessary configuration.

Compile it:

./configure
make

Now you can execute it:

./jab_simul

No comments:

Post a Comment

How to Generate and use the ssh key on Gerrit, github.io, gitlab, and bitbucket.

 Details can be found here -