En el mes de agosto del año 1988 un finlandés profesional de las Tecnologías de la Información de la Universidad de Oulu llamado Jarkko Oikarinen codificó lo que fue durante mucho tiempo y hasta la actualidad uno de los medios de comunicación instantánea más estables en la historia del Internet, el IRC (Internet Relay Chat), como un reemplazo al programa MUT (MultiUser Talk) en el BBS (Bulletin Board System) de OuluBox.
IRC ofrece comunicaciones rápidas, accesibles y sencillas permitiendo interactuar con otrxs usuarixs tanto por salas grupales como privadas en una red centralizada. Los años pasaron y el IRC creció a una velocidad vertiginosa expandiéndose por todo Internet, alcanzando ciudades de todos los países del mundo, colonizando todo tipo de comunidades y siendo utilizado por muchas agrupaciones en múltiples contextos, circunstancias y ambientes diferentes, pero muy pronto los problemas no tardaron en aparecer llegando a una falencia crucial en su estructura y modo de funcionamiento de IRC: la seguridad. La primera dificultad de IRC fue cómo cifrar y proteger las comunicaciones y mensajes enviados contra ciberataques y, aunque toda la red sea pirateada, la confidencialidad y seguridad de la información no se vean comprometidas o vulneradas de ninguna forma.
Con el tiempo muchos clientes propusieron soluciones en forma de complementos o extensiones que se instalaban, habilitaban o activaban para cifrar los mensajes de extremo a extremo utilizando múltiples algoritmos, mientras que se desarrollaban mejoras al protocolo que eventualmente en teoría permitirían gestionar identidades como en PGP/GnuPG mediante el uso de llaves RSA para verificar la autenticidad de los mensajes, pero esto solamente funcionaba en conversaciones privadas, porque en las grupales, debido al protocolo mismo de IRC, era absolutamente ilógico e irracional conseguir tal cosa y aún no existía una manera viable de asegurar la confidencialidad y seguridad de la información y mensajes enviados en caso de que los servidores IRC que gestionaban y alojaban la red así como también los ordenadores y clientes de lxs usuarixs fuesen comprometidos. Por otro lado se encontraba el problema de que dichos servidores IRC necesitaban registrar datos de la conexión y el equipo de cada usuarix para permitir muchas funcionalidades que se incorporaban y añadían a medida que avanzaba y se mejoraba el protocolo, entonces tanto administradorxs y operadorxs de la red como lxs programadorxs de cada cliente y desarrolladorxs del protocolo mismo debían pensar y trabajar mucho para conseguir que esta información se encuentre cifrada o protegida de alguna forma evitando que caiga en manos equivocadas de desconocidxs o personajes malintencionadxs. Y todo esto es porque IRC se diseñó para comunicar personas en Internet, no para ser seguro.
En 1998, 10 años después, un programador llamado Jeremie Miller comenzó el proyecto Jabber, que fue liberado de manera estable en el 2000 y más tarde cambió de nombre a XMPP llegando a ser la respuesta «segura» a IRC. XMPP es un protocolo de comunicaciones y mensajería instantánea abierto, libre, transparente y descentralizado que permite el empoderamiento y autonomía digital comunicando personas desde múltiples nodos con E2EE utilizando OTR (Off The Record) (NO RECOMENDADO, SE ENCUENTRA OBSOLETO Y FUERA DE TODO USO) u OMEMO, ambos reconocidos algoritmos de cifrado en mensajería instantánea.
Ventajas de XMPP
- Descentralización: La arquitectura de las redes XMPP es similar a la del correo electrónico; cualquiera puede poner en marcha su propio servidor XMPP, sin que haya ningún servidor central.
- Estándares abiertos: La Internet Engineering Task Force ha formalizado el protocolo XMPP como una tecnología de mensajería instantánea estándar, y sus especificaciones han sido publicadas como los RFC 3920 y RFC 3921. El desarrollo de esta tecnología no está ligado a ninguna empresa en concreto y no requiere el pago de regalías.
- Seguridad: Los servidores XMPP pueden estar aislados de la red pública XMPP, y poseen robustos sistemas de seguridad (como SASL y TLS). Para apoyar la utilización de los sistemas de cifrado, la Jabber/XMPP Software & Standards Foundation pone a disposición de los administradores de servidores XMPP Autoridad de certificación en el Observatorio de Mensajería Instantánea ofreciendo certificados digitales gratis.
- Flexibilidad: Se pueden hacer funcionalidades a medida sobre XMPP; para mantener la interoperabilidad, las extensiones más comunes son gestionadas por la XMPP Software Foundation.
De esta forma, cada usuario, canal o sala en la red XMPP tienen un único identificador (Jabber ID, normalmente abreviado como JID). Para evitar la necesidad de un servidor central con una lista exhaustiva de identificadores, el Jabber ID está estructurado como una dirección de correo electrónico, con un nombre de usuario, canal o sala y una dirección DNS para el servidor en el que reside el mentado usuario, canal o sala en disputa, separado por un signo @. Un identificador Jabber sería algo como nombredeusuario@dominio.com.
Como un usuario puede querer identificarse desde distintos lugares, el servidor permite al cliente especificar una cadena de referencia conocida como recurso, que identifica el cliente que está utilizando el usuario (por ejemplo: casa, trabajo, portátil, etc.), lo cual NO aplica para canales o salas. Esto será incluido en el JID añadiendo un carácter / seguido del nombre del recurso. Cada recurso debe tener especificado un valor numérico de prioridad. Por ejemplo el JID completo de la cuenta del trabajo del usuario sería: nombredeusuario@dominio.com/trabajo. De esta forma, los mensajes de la forma nombredeusuario@dominio.com serán dirigidos al cliente con mayor prioridad, y los de la forma nombredeusuario@dominio.com/trabajo serán dirigidos al cliente del trabajo. Los JID sin la parte del nombre de usuario también son válidos y se utilizan para enviar mensajes de sistema y control.
Poniendo todo esto en un sencillo ejemplo, supongamos que alice@hackers.com desea chatear con bob@anonymous.net. Alice y Bob tienen sus respectivas cuentas en los servidores hackers.com y anonymous.net. Cuando Alice escribe y envía su mensaje, entra en acción la siguiente secuencia de eventos:
- El cliente de Alice envía su mensaje al servidor hackers.com, pero si el servidor de Alice y/o el de Bob no se encuentran disponibles, el mensaje es desechado.
- El servidor hackers.com abre una conexión con el servidor anonymous.net.
- El servidor anonymous.net entrega el mensaje a Bob, pero si Bob no se encuentra disponible, el mensaje es guardado para su posterior entrega.
Entonces ahora, para ingresar a las redes XMPP primero se debe buscar un cliente compatible con OMEMO según el sistema operativo del equipo o máquina a utilizar. Para saber qué clientes XMPP soportan OMEMO, debe dirigirse a la página web «Are we OMEMO yet?» y para encontrar una red XMPP viable debe dirigirse al sitio web «XMPP Servers» en donde hallará servidores para todos los gustos, ubicados en todo el mundo y con múltiples medidas de seguridad intentando proteger la privacidad de sus usuarixs y los mensajes transferidos. No obstante, se debe recordar que no importa donde se registre la cuenta JID, debido a la naturaleza descentralizada y federada de XMPP siempre podremos contactar con cualquier otrx(s) usuarix(s) o canal(es) ubicadx(s) en cualquier otra red, servidor o nodo federado de XMPP.
Una vez instalado un cliente a su gusto, medida y preferencia, puede utilizar el mismo para registrarse ya que algunas redes solamente permiten el registro de nuevas cuentas o direcciones jabber (JID) mediante algun cliente, así como otras solamente permiten el acceso mediante la web mientras las demás exigen el uso de determinados clientes o restringen el acceso desde determinadas redes de Internet, pero por lo general cada nodo XMPP debería federar con todos los demás sin problemas y de no ser así puede contactar a su administrador para consultar al respecto.
Para el uso de OMEMO en su cliente, asumiendo que utiliza alguno que lo soporte, intente buscarlo entre las extensiones o configuraciones del mismo, de lo contrario busque en su respectiva página web cómo instalarlo. Aunque usualmente debería venir integrado y habilitado por defecto, siempre es bueno y mejor asegurarse y verificar de que se encuentre activado, adecuadamente configurado y en uso.
Finalmente luego de conectarse a su cuenta XMPP con el cliente de su preferencia, OMEMO habilitado, activado y configurado, estará listx para comenzar a integrarse en los canales y salas de las múltiples redes disponibles o contactar a sus amistades y familiares que también utilicen XMPP. Puede buscar salas o canales entre los diferentes nodos y servidores XMPP; muchos proyectos soportan este medio de mensajería instantánea y sin importar donde se encuentre registradx y conectadx usted, podrá ingresar sin dificultades.