En ocasiones puedo ser un poco incendiario y lo reconozco ja ja. Hace un día hice una publicación en Mastodon acerca de XMPP y un problema que afectaba a dos servidores de dicha red, en el que escribía lo siguiente:
“¿Dónde están los que apoyaban a XMPP? Siempre consideré que era un protocolo viejo que jamás evolucionó y mis razones tenía.
Edit: Aunque el fallo no es directamente del protocolo, anexo mi desacuerdo en el respaldo que ha mantenido este protocolo heredado, mi mayor razón es la de incompatibilidad entre sí en clientes y protocolos de cifrado, siendo también un riesgo latente”.
No anexo fuente porque pasado 7 días automáticamente se borrara la publicación, así prefiero mantener mi Mastodon.
Y sí… el edit me toco colocarlo minutos después debido a las discusiones que se tornaron conforme a la publicación y bueno, acá vengo a escribir un artículo serio y a explicar por qué no uso XMPP y de cierta forma por qué no lo respaldo, con fuentes e información que se puede verificar.
Recapitulemos
El 28 de Octubre de 2023 fue publicado un artículo en The Hackers News qué decía lo siguiente:
“Investigadores descubren espionaje en servicio de mensajería instantánea basado en XMPP.
Se interceptó tráfico desde jabber[.]ru, un servicio de mensajería instantánea basado en XMPP, a través de servidores alojados en Hetzner y Linode en Alemania. El ataque se descubrió debido a la expiración de un certificado MiTM, y se estima que duró seis meses. Los usuarios del servicio deben asumir que sus comunicaciones de los últimos 90 días están comprometidas y cambiar sus contraseñas (…)”. Fuente.
PD: Gracias a mi amigo Cristian, quien fue el que me dio a conocer la nota.
Debido a ese artículo, hice tal publicación en Mastodon. Qué bueno, admito que no es correcto generalizar una falla en dos servidores para todo un servicio descentralizado. Aunque deja en evidencia un cuestionamiento que se ha sabido siempre sobre XMPP y qué me permito resaltar a continuación debido a que por mucho tiempo se recomienda cómo un ‘protocolo seguro’ o un lugar para realizar comunicaciones seguras. Pero hay un pequeño inconveniente de por medio, lo cual genera una mera sensación de seguridad.
XMPP es un protocolo de mensajería instantánea que puede presentar varias fallas debido a las incompatibilidades entre los diferentes protocolos de cifrado y los diferentes clientes. Estas incompatibilidades pueden generar desacuerdo para la correcta utilización de la criptografía y asegurar los chats, siendo más precisos:
- Incompatibilidad de protocolos de cifrado: XMPP soporta varios protocolos de cifrado, y la elección de uno sobre otro puede generar incompatibilidades. Por ejemplo, OpenPGP para XMPP (OX) es un protocolo de cifrado que ha sido criticado por sus problemas de diseño de seguridad y se recomienda no implementarlo.
- Incompatibilidad entre clientes (referente a la aceptación e integración de los protocolos mencionados): Los diferentes clientes de XMPP pueden no ser compatibles entre sí, lo que puede generar problemas de seguridad. Por ejemplo, OTR (Off-the-record Messaging) es un protocolo de cifrado diseñado para proteger las conversaciones de mensajería instantánea. Sin embargo, su uso en XMPP no está estandarizado y se recomienda no implementarlo a menos que sea necesario para la compatibilidad con clientes heredados.
- Configuraciones de seguridad: La seguridad de XMPP depende en gran medida de las configuraciones del servidor. Por ejemplo, un servidor XMPP se considera seguro cuando está configurado para no permitir ninguna comunicación en texto plano entre servidores y conexiones de clientes. Sin embargo, si estas configuraciones no se realizan correctamente, puede haber problemas de seguridad.
- Atacantes aprovechando la superficie de ataque de XMPP: Los atacantes pueden aprovechar las características de XMPP para recuperar datos sensibles. Por ejemplo, XEP-0055: Jabber Search puede proporcionar información valiosa para los atacantes sobre una organización (Quizás en la actualidad haya muchos menos servicios vulnerables a esto debido a que se descubrió y se difundió el problema en el año 2021).
En realidad, todos estos problemas tienen una solución: que todos los clientes de XMPP sean compatibles entre sí, elegir un protocolo de cifrado compatible y configurar correctamente el servidor XMPP. Pero, de la teoría a la práctica, es muy complicado. En mis tiempos que tuve cuenta en XMPP, siempre tuve fallas con esta situación. Todavía hay un usuario que usan clientes y protocolos heredados por amor y así se les recomienda migrar, no lo hacen porque son reacios al cambio. Además, todas las salas públicas estaban sin cifrado, lo que por supuesto abre una brecha de seguridad más. Es cuando cobra sentido el artículo de la vulnerabilidad expuesta más arriba y con la que le argumentaba a quienes aportaron conocimiento en Mastodon: si no hay seguridad en el transporte y mucho menos en los datos, ¿dime cómo quedas? Tal cual y cómo viniste al mundo, ese fue mi ejemplo frente a dicha situación.
A pesar de que solo fueron dos servidores los afectados, no significa que sea exclusivo de ellos. También puede suceder en otros servidores. Al tener la mala costumbre de emplear el cifrado como segunda opción, al darse este tipo de vulnerabilidades, como la MiTM, por supuesto, quedarás totalmente expuesto. En ese caso, colocaría como ejemplo a Telegram. Es que al dejar el cifrado de forma opcional, produce en masa una sensación de seguridad que se ha evidenciado por mucho tiempo. Gente y medios han recomendado Telegram como una ‘mensajería segura’, cuando fuera de sus chats secretos podría quedar casi igual a Messenger de Facebook. Agrego el ‘casi igual’ porque Telegram implementó su propio cifrado para asegurar la información en la nube, qué bueno… tampoco convence a la mayoría de criptógrafos.
El caso de Tor Messenger
Este caso en particular fue uno que me hizo cambiar la perspectiva que tenía hacia XMPP y es que, durante el 2015 el proyecto Tor había anunciado su programa multiplataforma que pretendía ser seguro de forma predeterminada enviando todo su tráfico a través de Tor y aplicando conversaciones individuales cifradas mediante la agrupación y el uso de OTR (Off-the-Record) en XMPP, por supuesto ¿qué paso? Tiempo después hicieron un artículo titulado “Puesta de sol en Tor Messenger” en el que anunciaban la detención del desarrollo de Tor Messenger dando varias razones, entre ellas la detección del proyecto Instantbird en el cual se basaban, también comentaban acerca de los escasos recursos con los que contaban para continuar desarrollando el mismo y eso no es todo, una de las razones que quiero destacar textualmente:
“El problema de los metadatos
Como se describió anteriormente, una arquitectura cliente-servidor centralizada sufre fugas de metadatos y Tor Messenger hereda esos problemas sin poder mitigarlos. Los metadatos filtran información sobre los participantes y sus gráficos sociales, y aunque no revelan los datos reales, pueden revelar patrones sobre tu comunicación: quiénes son tus amigos, cuándo hablas con ellos, cuánto hablas con ellos, etc”.
De ahí a que pasaron a recomendar otras mensajerías… eso ya deja mucho que decir y no me voy a extender más en ello, cada quien debería sacar su conclusión.
Posible solución
No quiero que malinterpreten, no quiero que esto parezca un artículo desprestigiando al proyecto XMPP y a sus desarrolladores, para nada, creó que ellos y su comunidad han sabido resistir los años y han estado siempre muy unidos. Además, que aún siguen manteniendo ese espíritu comunitario que después de tantos años se hace difícil mantener para algunos.
Es muy importante destacar el modelo de amenaza, si tu nivel de amenaza no es alto, no deberías porque preocuparte y salir corriendo de XMPP, no para nada, ¿qué hay alternativas mejores? Sí, SimpleX Chat parece ser la gran promesa de toda la red, pero XMPP aún hoy en día sigue siendo una alternativa, a pesar de todo y casi parecer un protocolo heredado, pues se ha sabido mantener. De hecho, han estado organizando eventos oficiales en los que planean discutir tal situación e incluso un talentoso desarrollador, el Sr. Stephen P. Weber (singpolyma) publicó un sitio para verificar el monitoreo de Machine-in-the-middle lo cual servirá de gran ayuda para mitigar ese tipo de ataques.
En fin… no hay una verdad absoluta y si tienes un aporte mejor, adelante, ¡hazlo! Se agradece cualquier corrección y aporte al mismo.
Mis mayores agradecimientos a Aperales, C3po, Cristian, Niko quienes se unieron a la discusión y aportaron información relevante al tema.
No sé otras personas, pero:
– Suelo quedar con otras personas y lo primero que les digo es que activen “omemo”. Si no lo tienen soy reacio a hablar y les animo a instalar otra app o programa y que lo activen.
– Las identidades de xmpp son todo lo secretas que tu quieras. Y la de tus amigos también. Por lo que si queréis podeis hablar sin que nadie sepa quienes sois. Aparte, es muy sencillo y rápido crear una nueva identidad anónima, o incluso desde Tor. Luego los metadatos no cobran tanta importancia.
– Los grupos pequeños mejor cifrados siempre. No son anónimos pero sí ocultos y nadie puede entrar sin ser autorizado antes. Y aún así no pueden leer lo ya escrito antes, y para leer lo nuevo de los demás hay que aceptar las claves de los demás miembros del grupo. Grupos grandes cifrados daban problemas hace años, no probé ahora.
– No he tenido incompatibilidad con nadie, tan solo con alquien que usa Apple y solo con las notificaciones, pero tampoco ha intentado instalar otra app para probar.
– Uso xmpp hasta con mi mujer y algunas personas del trabajo. Y para llamar por teléfono a mi mujer lo hago con Conversations, que tiene ya omemo activado por defecto.
– XMPP tiene muchos años y sí que añade funcionalidades nuevas. Estuvo, está y estará.
– De acuerdo en que mucha gente puede empezar y hacerlo mal: no activar cifrado, etc. Los grupos sin cifrar debe quedar claro que no importa a los de ese grupo lo que quieran poner ni que se capturen sus mensajes por terceras partes. Si se quiere algo privado que se usen chats individuales con omemo. Esto yo siempre lo dejé claro en los grupos que tuve. Es como en Mastodon y los mensajes directos, también sin cifrar. En esto gana SimpleX porque ya de por sí todo está “hecho y preparado”.
– Echo de menos en SimpleX que no haya tamaño de fuente. En Conversations sí lo hay, y para los que tenemos ya una edad nos viene bien ja ja.
SimpleX está muy bien, aunque es pronto para decirlo. Hay muchas apps nuevas que salen y al poco desaparecen, espero que no le pase igual.
La auditoría de seguridad mostró fallos que corrigieron, lo que me parece genial.
Sinceramente: amo XMPP, lo uso adecuadamente y sin problemas. y animo a otros a usarlo igual. Y por supuesto lo seguiré usando como mi principal medio de mensajería.
Gracias por compartir tus pensamientos y experiencias con XMPP y SimpleX Chat. Tu aporte es muy valioso y mejora nuestra comprensión de estas plataformas. Es cierto que XMPP tiene una larga historia y ha añadido funcionalidades nuevas a lo largo de los años. Sin embargo, también es importante considerar las ventajas de SimpleX Chat, que se centra en la privacidad y seguridad, y ofrece características como el cifrado de extremo a extremo y la capacidad de crear identidades anónimas.
Además, SimpleX Chat ha hecho cambios en su auditoría de seguridad para corregir fallos, lo cual es una buena noticia. Como mencionaste, es importante que las aplicaciones de mensajería se mantengan seguras y protejan la privacidad de sus usuarios.
Hola, aquí queriendo compartir con ustedes un poco, yo he buscado una app segura y privada, me encontre estas 2 plataforma XMPP y SimplexChat, del primero desconozco leí comentarios confusos y no decidí por el otro lado Simplex me llamo la atención por ser código abierto y todas las bondades que ofrece en tan poco tiempo, entonces encontré el punto clave , que es el financiamiento, pues lo hace una empresa de grandes élites Village Global, esto me dio desconfianza, y busque sobre la verdadera seguridad y la necesidad de que el código abierto sea reproducible y este es el que debe ser auditado, porque así si es veraz que no hay puertas traseras, hay muchas app con código abierto pero no da la certeza que realmente sea como dicen y lo único que queda es confiar, por usar apple se me hace complicado cualquier aplicación decidí probar Session, aunq igual su código no es reproducible y sus servidores están en Australia, pero igual Signal esta en USA y dicen que es super seguro, la única app que tiene el código libre y reproducible es Threema, pero nadie quiere pasarse allí porq es de pago , entonces como tener una app de mensajería segura , privada y que se pueda usar en android y apple?
Me llama la atención que todos recomienden las mismas aplicaciones y entonces da mas desconfianza porque es marketing y pues uno con poco conomiento solo confía en lo que otros dicen. He leìdo que Conversations es excelente , pero solo esta en android. seguiré investigando a ver por cual me decido
Hola, comprendo tu desconfianza, en el caso de SimpleX Chat en el propio artículo que le dedique y hago referencia en este, se anexa la fuente del por qué tiene sentido la financiación de riesgo. Además, puedes ejecutar tus propios relés, sistema encargado de entregar la información para ambos individuos, cuestión que suma seguridad a la hora de qué no se depende de los servidores oficiales, o en caso de que se caigan o sean capturados se pueden tomar rutas alternas.