<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Implementing a Signing Forms mechanism in an open XMPP Server to reduce successful network attacks</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Marcelo Aros</string-name>
          <email>marcelo.aros@unab.cl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Romina Torres</string-name>
          <email>romina.torres@unab.cl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Copyright c by the paper's authors. Copying permitted for</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Facultad de Ingenier a, Universidad Andres Bello</institution>
          ,
          <addr-line>Vin~a del Mar</addr-line>
          ,
          <country country="CL">Chile</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>private and academic purposes., IN: Proceedings of the IV School of Systems and Networks</institution>
          ,
          <addr-line>(SSN 2018), Valdivia, Chile, October 29-31, 2018. Published, at http://ceur-ws.org</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Servers implementing the eXtensible Messaging and Presence Protocol (XMPP) enable the near-real-time exchange of structured yet extensible data between any two or more network entities. In this paper we propose to address network attacks, a security issue, by implementing signing forms over an inband registration mechanism. We validate our proposal implementing this mechanism over OpenFire, which is a free, communitysupported and open source XMPP server. Our experiments showed that the number of successful attacks was reduced to 0 when our proposal is implemented.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        XMPP es un protocolo abierto para la comunicacion
en tiempo real. Existen multiples ejemplos de
aplicaciones que utilizan este protocolo, incluyendo
mensajer a instantanea, presencia y colaboracion [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ][
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
Las especi caciones centrales fueron desarrolladas por
la Internet Engineering Task Force (IETF) pero es
extensible por la XMPP Standards Foundation, quienes
estandarizan protocolos publicando XEPs [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], los
cuales extienden la funcionalidad de XMPP.
      </p>
      <p>Ahora bien, las redes de Internet de las cosas (IoT)
pueden ser implementadas utilizando diversos
protocolos de comunicaciones. Aunque a nivel de usuario,
una caracter stica relevante es la facilidad que provee el
servidor para adicionar nuevas \cosas" (tipo Plug and
Play), tales como sensores, controladores, actuadores
o concentradores, tal como se aprecia en la Tabla 1,
diversas caracter sticas tecnicas de los protocolos
utilizados para IoT deben ser considerados al momento
de realizar una eleccion para implementar una red IoT.</p>
      <p>
        HTTP
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
3
      </p>
      <p>
        CoAP
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
3
      </p>
      <p>
        MQTT
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
7
      </p>
      <p>
        XMPP
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ][
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
3
7
      </p>
      <p>
        Lamentablemente, a nivel de seguridad, aun
existen desaf os importantes. CoAP, por ejemplo, es
un protocolo de transferencia RESTful para nodos
y redes con restricciones, el cual tiene una pobre
capa de seguridad con un Bypass de Firewall
limitado [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. MQTT tiene serias vulnerabilidades
conocidas, tanto as que incluso gobiernos han prohibido su
uso [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Tal como se aprecia en la Tabla 1, XMPP es
mas robusto en terminos de seguridad. Permite
delegar automaticamente y de manera segura permisos
a los clientes - cosas - para registrar una identidad
en la red XMPP-IoT dado que utiliza OAuth 1.0
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] con dos XEPs espec cas. La XEP-0077 (https:
//xmpp.org/extensions/xep-0077.html) [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] que
describe el mecanismo para registrarse en banda
en un servidor XMPP. La XEP-00348 (https:
//xmpp.org/extensions/xep-0348.html)[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] que lo
hace tanto para clientes como para el servidor.
Ahora bien, dado que esto le da proteccion a la
red IoT contra bots maliciosos mediante resolucion
de CAPTCHAS (https://xmpp.org/extensions/
xep-0158.html) [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ][
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], (opcion que puede ser
habilitada o no), lamentablemente, las \cosas" no pueden
registrarse de forma automatizada en la red IoT.
Lamentablemente, si el registro en banda es activado
pero sin habilitar la validacion por CAPTCHAS, se
abre una brecha en la seguridad de la red XMPP-IoT.
Debido a esto, es habitual que se deje la red
XMPPIoT con el XEP-0077 activado pero con el XEP-0158
deshabilitado, es decir, que cualquiera que pueda
visualizar a nivel de red el servidor puede registrar
identidades en el servidor. Esto abre una brecha en la
seguridad de la misma red XMPP-IoT.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Propuesta</title>
      <p>Existe una serie de servidores que implementan
XMPP. Existen de uso libre o de pago, de codigo
abierto y desarrollado en diversos lenguajes de
programacion, documentacion, con una comunidad
existente en torno al servidor, que corren sobre diferentes
sistemas operativos y con diversas XEPs
implementadas. IoT Broker (https://waher.se/Broker.md),
servidor XMPP de uso no libre, no es open-source y
no hay una comunidad incipiente en torno al proyecto.
AstraChat Isode M-Link, su uso es de pago. ejabberd,
Tigase y Open re son de uso libre. Los primeros dos
poseen una comunidad tambien incipiente en torno al
desarrollo de nuevas caracter sticas. Open re, por otro
lado es de uso libre, open-source, esta codi cado en
Java, funciona bajo los Sistemas Operativos Linux,
macOS, Solaris y Windows y tiene una gran
comunidad activa. La misma organizacion ofrece SMACK,
el cliente.</p>
      <p>En este trabajo proponemos desarrollar e
implementar el mecanismo descrito en la especi cacion
XEP-0348: Signing Forms sobre la XEP-0077:
In-band Registration, tanto en el servidor como en
el cliente, para que, de este modo, se pueda asignar
el permiso de crear identidades en la red XMPP-IoT
solo a ciertos clientes. Con esto proponemos reducir a
cero la creacion de identidades por usuarios o bot
maliciosos. En particular para la validacion realizada
mediante experimentos implementaremos nuestra
propuesta en el cliente SMACK y en el servidor Open re
tal como se aprecia en las Figuras 1 y 2.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Validacion</title>
      <p>Tal como se ve en la Figura 1 el experimento
consta un servidor XMPP Open re modi cado con varios
clientes XMPP SMACK modi cados, los cuales son:
un Cliente XMPP Thing-Sensor (TS{1) que posee
un sensor de humedad y temperatura
un Cliente XMPP Thing-Sensor (TS{2) que posee
un sensor de gas,
un Cliente XMPP Thing-Controlador (TC{1)
Ya realizada las modi caciones, el procedimiento es
el siguiente:
1. Ingresar a la consola de administracion web de</p>
      <p>Open re.
2. Ingresar a la seccion de registro.</p>
      <p>
        Para los clientes ingresamos el ConsumerKey y el
ConsumerSecret, para que de este modo, se realice la
conexion con el servidor y exista el intercambio de
Stanzas con dataforms [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] siendo exitosa la veri cacion
de Signatures, y de este modo, se le delegue al cliente
la facultad de crear identidades en el servidor XMPP
Open re. As , pudimos realizar consultas de
temperatura y humedad al cliente TS{1 y de gas al TS{2.
Realizado esto, se creo y ejecuto el Bot malicioso en
ambos servidores (el modi cado con nuestra propuesta
y el sin modi car). Los resultados se pueden apreciar
en las siguientes Tablas:
4
      </p>
      <p>Conclusiones y Trabajos Futuros
Este trabajo brinda un aporte a la comunidad de
Internet de las Cosas dado que extiende un servidor libre,
de codigo abierto y apoyado por una comunidad que
lo extiende en el tiempo. Tal como se vio en el
experimento, dada nuestra implementacion es posible reducir
el numero de ataques de red en el servidor XMPP
OpenFire que podr a sufrir dada la implementacion
del Inband registration de la XEP-0077 sin la
implementacion de signing forms.</p>
      <p>Si bien, la brecha de seguridad presente en el
XEP0077 es abordada con la implementacion del
XEP0348, quedan varios desaf os, uno de ellos es
implementar un Plugin en Open re para aprovisionamiento.
Ademas, un Registro de Cosas que registre que
permisos tiene una \cosa{cosa" y \humano-cosa".</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Banks</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>Gupta</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          (
          <year>2014</year>
          ).
          <source>Mqtt version 3.1. 1. OASIS standard</source>
          ,
          <volume>29</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Eatmon</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hildebrand</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Muldowney</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Saint-Andre</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2006</year>
          ). Jep-
          <volume>0004</volume>
          :
          <article-title>Data forms</article-title>
          .
          <source>online] Jan</source>
          ,
          <fpage>5</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Fielding</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gettys</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mogul</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Frystyk</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Masinter</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leach</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          (
          <year>1999</year>
          ).
          <article-title>Hypertext transfer protocol{http/1.1</article-title>
          .
          <source>Technical report.</source>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Hammer-Lahav</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          (
          <year>2010</year>
          ).
          <article-title>The oauth 1.0 protocol (</article-title>
          <year>2010</year>
          ). URL https://tools.ietf.org/pdf/rfc5849.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Internet</given-names>
            <surname>Engineering Task Force (IETF)</surname>
            , P. S.- A.
          </string-name>
          (
          <year>2011</year>
          ).
          <article-title>Rfc6120 extensible messaging and presence protocol (xmpp): Core.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Lundgren</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          (
          <year>2016</year>
          ). LightWeight Protocol! Serious Equipment! Critical Implications! [Online; accessed 19-July-2018].
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>P.</given-names>
            <surname>Saint-Andre D. Cridland</surname>
          </string-name>
          (
          <year>2015</year>
          ). XEP-0001
          <source>: XMPP Extension Protocols. [Online; accessed 20- July-2018].</source>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Paterson</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>Saint-Andre</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2008</year>
          ).
          <article-title>Captcha forms</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Saint-Andre</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2004</year>
          ).
          <article-title>Xep-0077: in-band registration</article-title>
          .
          <source>Jabber Software Foundation.</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Saint-Andre</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2011</year>
          ).
          <article-title>Extensible messaging and presence protocol (xmpp): Core.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Shelby</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hartke</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Bormann</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          (
          <year>2014</year>
          ).
          <article-title>The constrained application protocol (coap).</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Waher</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2017</year>
          ). Xep-
          <volume>0348</volume>
          : Signing forms.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>