El equipo de CoyIM se prepara para lanzar la versión 0.4 de CoyIM. Este es nuestro lanzamiento más grande y estamos muy orgullosos de eso. Hemos trabajado mucho para mejorar y pulir este programa. Nuestra esperanza es que mucha gente nueva se entere sobre CoyIM y estén interesados en probarlo. Pero una pregunta normal como parte de todo esto es: ¿En qué se diferencia CoyIM de otros clientes de chat existentes? En este artículo queremos proporcionar algunas diferencias breves y específicas entre CoyIM y algunas de las alternativas más conocidas. Por supuesto, hay cientos de clientes de chat por ahí, y nunca seremos capaces de cubrirlos a todos. La mayoría de los clientes tienen una gran cantidad de diferencias entre sí, y no sería realmente útil para nadie si tratáramos de escribir todas estas diferencias. Así que en lugar de eso, intentaremos cubrir sólo las diferencias más importantes de acuerdo a los aspectos que nosotros, como desarrolladores de CoyIM, encontremos más importantes. Mientras lees esto, es importante recordarte que CoyIM no fue creado para ser un cliente de mensajería de propósito general que puede hacer todo tipo de cosas. Queremos que CoyIM sea ante todo un cliente de mensajería seguro. Así que la mayor diferencia en comparación con las alternativas en esta lista está basada en características y filosofía. Todos estos clientes tienen más características que CoyIM y todos ellos están enfocados en ganar más usuarios, agregando más funciones. Entonces, si sólo buscas la diferencia más grande, esa es esta. Si no es así, empecemos y veamos algunos ejemplos específicos. Estos vienen sin ningún orden en particular.
A primera vista, la diferencia más importante entre CoyIM y WhatsApp es que WhatsApp es principalmente para teléfonos móviles, mientras que CoyIM sólo se ejecuta en computadoras de escritorio. WhatsApp sí tiene soporte para un cliente de escritorio que usa tu cuenta de teléfono móvil. La tecnología utilizada para esta versión de escritorio utiliza tecnologías de navegador que facilitan la creación de una experiencia atractiva, pero asimismo conduce a una gran superficie de ataque. CoyIM está escrito sin el uso de estas tecnologías para reducir el riesgo. Además de esto, hay algunas diferencias importantes entre CoyIM y WhatsApp que impactan radicalmente en la seguridad. Primero, WhatsApp es propietario. Esto significa que no podemos inspeccionar su código fuente y no tenemos forma de saber realmente qué está haciendo. No sabemos si implementa sus funcionalidades correctamente, si tiene puertas traseras u otros problemas de seguridad y no sabemos qué más puede hacer. WhatsApp es propiedad de Meta (la empresa antes conocida como Facebook) por lo que la naturaleza cerrada del producto hace que sea difícil confiar en la aplicación para cualquier cosa sensible.
WhatsApp sí implementa el cifrado de extremo a extremo para todos los mensajes. O dice hacerlo. En realidad no lo sabemos, porque no podemos ver su código fuente. Pueden haber formas en la aplicación para desactivar o debilitar este cifrado, pero no lo podemos saber. El cifrado de extremo a extremo que utiliza WhatsApp se basa en el protocolo que utiliza Signal, que en general es muy bueno. Han habido algunos problemas menores relacionados con la denegabilidad, pero nada importante. Los algoritmos criptográficos utilizados en este protocolo son en realidad más fuertes que los que se usan en la versión de OTR que usa CoyIM. WhatsApp también permite a los usuarios verificar sus contactos, si así lo desean. Todo esto es bueno. Lamentablemente, todo este trabajo se ve disminuido por el hecho de que WhatsApp guardará registros de todos tus mensajes y, a menudo, insistirá en que actives las copias de seguridad de estos registros. Estas copias de seguridad no están encriptadas, lo que significa que WhatsApp seguirá teniendo acceso a todos tus mensajes si activas esta opción.
WhatsApp es un sistema centralizado que se basa en números de teléfono para sus cuentas. En comparación, CoyIM usa cuentas donde el nombre puede ser casi cualquier cosa. Puedes crear cuentas en diferentes servidores y seguir manteniendo la comunicación entre ellos. Además tú puedes tener más de una cuenta en la misma máquina. Lo que esto significa es que para poder hablar con alguien por WhatsApp tienes que revelar tu número de teléfono. También significa que los servidores de WhatsApp son un único punto en el que se pueden presentar errores. En comparación con CoyIM, donde puedes crear una cuenta completamente anónima para hablar con alguien y no tendrás que revelar ninguna información personal con esta cuenta. Y dado que XMPP es federado, incluso si algunos servidores se caen, seguirás siendo capaz de chatear usando CoyIM, suponiendo que tu propio servidor y el servidor de tu contacto todavía estén disponibles. CoyIM y XMPP no tienen un solo punto de falla. Finalmente, en relación con el anonimato, usar Tor en un teléfono móvil no es muy fácil, y no está claro si es posible ejecutar WhatsApp sobre Tor. Eso significa que los servidores de WhatsApp siempre sabrán tu dirección IP y tu número de teléfono.
En resumen, aunque WhatsApp tiene encriptación de extremo a extremo, los otros aspectos del cliente de chat implican que WhatsApp no te protege de manera significativa, mientras que CoyIM hace lo contrario.
Signal
De todas las aplicaciones de mensajería móviles, Signal es la que te recomendamos si tienes que utilizar un teléfono. Al igual que WhatsApp, utiliza el protocolo Signal para el cifrado de extremo a extremo, pero en comparación con este, es de código abierto, lo que significa que podemos estar razonablemente seguros de que el cifrado hace lo que creemos que debería hacer. En Signal, no hay forma de enviar mensajes sin protección, lo cual es genial. Por otro lado, al igual que sucede con WhatsApp, Signal requiere un número de teléfono para tener una cuenta, y la infraestructura de Signal también está centralizada. Esto lleva a los mismos problemas como con WhatsApp, que CoyIM, en comparación, no tiene.
Signal comenzó muy enfocado en la seguridad, pero con el tiempo se han ido incorporando más y más funciones que, a veces, nos hacen sentir incómodos. La última gran adición fue el soporte para una criptomoneda dentro de la aplicación. Si bien esto puede ser útil en algunas situaciones, agregar este tipo de complejidad al cliente de chat significa que usar la aplicación se vuelve cada vez más riesgoso.
En comparación con CoyIM, las diferencias más importantes tienen que ver con que Signal es una aplicación móvil, mientras que CoyIM es para escritorio. En segundo lugar, Signal usa números de teléfono para las cuentas, mientras que CoyIM admite cualquier tipo de cuenta XMPP, y puedes usar tantas cuentas como desees dentro de la aplicación. Y finalmente, Signal está centralizado mientras que CoyIM es federado, lo que significa que Signal tiene un único punto donde se pueden presentar fallas que CoyIM no tiene.
Telegram
Cuando hablamos de aplicaciones móviles de las que hay que tener cuidado, Telegram está en los primeros lugares de la lista. Comparte muchos problemas fundamentales con WhatsApp y Signal, lo más importante es que está centralizado y que requiere un número de teléfono como identificador de la cuenta. Y aunque la aplicación móvil en sí es de código abierto, la infraestructura, del lado del servidor, no lo es. Y si bien todo esto es problemático, el mayor problema con Telegram es que no está encriptado de extremo a extremo por defecto. Esto es bastante sorprendente para muchas personas. Por alguna razón, la idea de que Telegram está encriptado es un concepto erróneo muy común. Telegram tiene soporte para el cifrado de extremo a extremo con tus contactos, pero no está activado. Tienes que activarlo manualmente para cada persona con la que quieras hablar de forma segura. Y lo que es peor, Telegram no usa un protocolo establecido para este cifrado. En su lugar, los desarrolladores idearon su propio protocolo. Si bien el protocolo no tiene problemas obvios, su diseño es extraño, de tal manera que hace que los criptógrafos se sientan algo incómodos.
Entonces, mientras que CoyIM es completamente de código abierto, sólo ciertas partes de Telegram lo son. CoyIM te permite crear cualquier tipo de cuenta XMPP y usar más de una, mientras que Telegram está restringido a una sola cuenta según el número de teléfono. Como se mencionó anteriormente, CoyIM es federado y no tiene un único punto de posibles fallas, mientras que Telegram es completamente centralizado. Finalmente, CoyIM utiliza un protocolo bien establecido para el cifrado de extremo a extremo, que se activa para cada conversación de forma predeterminada, mientras que Telegram usa un extraño protocolo de creación propia, sólo cuando lo activas explícitamente, de lo contrario, el contenido está completamente desprotegido.
Pidgin
De todas las opciones en esta comparación, Pidgin es probablemente una de las opciones más cercanas a CoyIM. De hecho, como describimos en otro artículo, los problemas con Pidgin fueron exactamente lo que condujo a la creación de CoyIM. Pidgin es un programa de escritorio con soporte para todas las plataformas principales. Y al igual que CoyIM, Pidgin te permite usar XMPP para tus cuentas. Puedes instalar un plugin para admitir OTR para el cifrado de extremo a extremo. También puedes configurar Pidgin para ejecutarse a través de Tor. Y finalmente, Pidgin es de código abierto, al igual que CoyIM. Desde estas perspectivas, podría parecer que Pidgin y CoyIM son muy similares. Pero existen algunas diferencias importantes. Todas las diferentes medidas de seguridad que acabamos de mencionar, CoyIM las proporciona por defecto, pero en el caso de Pidgin, son cosas que tendrás que instalar y configurar tú mismo. Esto significa que, de forma predeterminada, los usuarios tendrán una seguridad muy baja, a menos que ellos mismos manejen esta situación.
La otra gran diferencia está en las opciones de implementación. Pidgin es un programa bastante grande creado con el lenguaje de programación C. Tiene soporte para una gran cantidad de funcionalidades, y tiene un sistema de plugins. Esto conduce a una gran cantidad de complejidad y también a una mayor superficie de ataque. Esta fue realmente la razón principal por la que CoyIM tuvo que ser escrito desde cero, en lugar de sólo cambiar Pidgin un poco.
En resumen, Pidgin tiene muchas similitudes con CoyIM tras llevar a cabo todas las configuraciones e instalaciones adicionales, pero la diferencia aquí es que tendrás que hacer todo esto tú mismo. E incluso si tomas las decisiones correctas en todos los lugares posibles, Pidgin está escrito en un entorno fundamentalmente inseguro y con una filosofía que conduce a una gran superficie de ataque.
Gajim
En muchos sentidos, Gajim es similar tanto a CoyIM como a Pidgin. Se ejecuta en todas las plataformas principales. Es de código abierto y te permite usar XMPP. Hace varios años, Gajim tenía soporte para el cifrado de extremo a extremo mediante OTR, pero este soporte ahora ha sido eliminado. En cambio, Gajim admite otras dos tecnologías para el cifrado de extremo a extremo. Una de estas es openpgp, que reutiliza protocolos para el cifrado de correo electrónico en un entorno de chat. Y aunque esto podría funcionar, también tiene algunos inconvenientes. En la práctica, no es utilizado por una gran cantidad de personas. La otra alternativa se llama OMEMO, que se basa en el protocolo Signal. El cifrado en este protocolo es más fuerte, pero una vez más, el protocolo tiene algunos problemas de diseño que a los desarrolladores de CoyIM les parece cuestionable. Por este motivo, elegimos OTR en lugar de OMEMO.
Gajim está escrito en Python, que es un lenguaje con protección de memoria, al igual que Golang (que es el lenguaje en el que está escrito CoyIM). Eso significa que ciertamente es una aplicación más segura que Pidgin, ya que muchos de los problemas de seguridad simplemente no son posibles. Por otro lado, Gajim tiene una filosofía similar a Pidgin en términos de funcionalidad. Gajim tiene soporte para varios diferentes protocolos de comunicación, y muchas otras características. Es un cliente de mensajería de propósito general y no tiene un enfoque específico en seguridad. Y es posible que te preguntes acerca de la compatibilidad con varios protocolos de cifrado de extremo a extremo diferentes. Esto es gestionado utilizando un sistema de plugins. Lo que una vez más significa que el usuario tiene que elegir y configurar las cosas antes de tener una configuración segura.
Al igual que en la comparación con Pidgin, esta falta de seguridad por defecto y enfoque en agregar más funcionalidades, son las dos grandes diferencias en comparación con CoyIM. Además de eso, la elección de los sistemas de encriptación también es diferente. Al igual que con Pidgin, puedes configurar Gajim para usar Tor, pero esto no sucede de manera predeterminada.
Matrix / Element / Riot
En los últimos años, Matrix se ha convertido en uno de los mayores reemplazos de XMPP que existen. Existen varios clientes para diferentes plataformas, incluidas las aplicaciones móviles. Y aunque Matrix se centra principalmente en el chat grupal de diferentes tipos, también admite conversaciones uno a uno. En general, Matrix es un protocolo abierto. Está descentralizado. Las implementaciones son en su mayoría de código abierto y están disponibles para todas las plataformas principales. Finalmente, puedes usar Tor con los clientes habituales, tal como puedes hacerlo con CoyIM. La gran diferencia es que una vez más tienes que configurarlo tú mismo.
Matrix sí tiene soporte para el cifrado de extremo a extremo. El protocolo se basa en el protocolo Signal, y hay algunas mejoras innovadoras en la forma en que puedes verificar a tus compañeros. Todo bien, en teoría. En la práctica, nuestro equipo nunca ha podido hacer que funcione bien. Una y otra vez hay problemas de sincronización y otras cuestiones que conducen a mensajes ilegibles y reinicios completos de claves criptográficas. Incluso hemos visto cosas peores. Esto significa que para nosotros, ha sido muy problemático usar el cifrado.
El principal cliente de escritorio de Matrix se basa en tecnología web, al igual que algunas de las opciones anteriores. Esto trae mucha complejidad y un aumento en la superficie de ataque. Finalmente, los clientes de Matrix tienden a agregar mucho soporte para varias cosas opcionales, con el fin de proporcionar una mejor experiencia de usuario. Esto también aumenta la superficie de ataque y si bien sería posible construir un nuevo cliente para Matrix sin estos problemas, el ecosistema actual parece más centrado en atraer usuarios que construir a partir de una base segura por defecto.
En resumen, aunque en teoría el cifrado de extremo a extremo de Matrix debería ser tan bueno o incluso mejor que el que utiliza CoyIM, en la práctica hemos visto muchos problemas con las implementaciones, haciéndolo casi inútil. Las opciones de implementación una vez más enfatizan las características en lugar de la seguridad, y eso también se ve en la elección de la tecnología de implementación. Por fin, algunas opciones de seguridad están disponibles y puede hacerlo más seguro, pero esto es algo que el usuario debe administrar.
Slack
En general, Slack es bastante diferente de CoyIM. Se enfoca principalmente en canales que contienen grupos de personas. Funciona en todas las principales plataformas, tanto de escritorio como de teléfono móvil. Pero fundamentalmente, sirve a una necesidad muy diferente a la CoyIM. Además de eso, no es de código abierto. Está centralizado. Y no utiliza cifrado de extremo a extremo. Por todas estas razones, no es realmente posible hacer una comparación más cercana entre Slack y CoyIM. Casi todos los aspectos son diferentes entre los dos.
Facebook Messenger
Una de las formas más comunes en que las personas se comunican es a través de Facebook. Facebook te permite enviar mensajes directamente a través del sitio web de Facebook, pero también a través de la aplicación móvil Facebook Messenger. Puedes enviar mensajes de Facebook en el escritorio usando el sitio web. Facebook y Facebook Messenger son propietarios y cerrados. Por defecto, ellos tampoco usan ningún tipo de encriptación de extremo a extremo, aunque hay disponible una función opcional para usarla. Facebook es centralizado por lo que sus servidores son un único punto donde se pueden presentar fallos. Facebook también es específico sobre las condiciones de sus cuentas, en teoría no está permitido crear usuarios anónimos o seudónimos. En la práctica, algunas personas lo hacen de todas formas, pero esto puede llevar a problemas de diversa índole, incluido el cierre de la cuenta. Por estas razones, no puedes comunicarte de forma anónima utilizando esta tecnología.
En comparación con CoyIM, Facebook y Facebook Messenger no están encriptados de forma predeterminada. Su software es cerrado, mientras CoyIM es abierto. Tiene un único punto donde podrían presentarse errores, mientras que CoyIM no lo tiene. Finalmente, las cuentas anónimas o privadas no son realmente posibles con Facebook, mientras que CoyIM lo hace muy fácilmente.
Skype
Quizás recuerdes que Skype fue una de las primeras aplicaciones de llamadas de voz. Sigue siendo una de las mejores opciones existentes para llamar desde una computadora a un número de teléfono regular. Pero Skype también te permite chatear, por eso lo incluimos en esta lista de comparaciones. Como muchas otras de las opciones en esta lista, el software de Skype es cerrado. Asimismo sus propietarios son privados y es administrado por una empresa (Microsoft). Por esta razón, es un sistema centralizado. Uno de los beneficios de Skype es que te permite crear cuentas de usuario con cualquier tipo de nombre, aunque Microsoft puede pedir más información al crear la cuenta. Sin embargo, en comparación con algunos de los otros sistemas cerrados, podría ser posible usar Skype para tener cuentas privadas. Hasta hace muy poco, Skype no admitía el cifrado de extremo a extremo, pero esto fue finalmente agregado a fines de 2018 mediante el uso del protocolo Signal. Sin embargo, al igual que con muchas otras alternativas, tienes que activar esta opción. Y como los clientes son de código cerrado, no es posible comprobar que el cifrado se hace correctamente y sin puertas traseras.
En resumen, la mayoría de los aspectos negativos en comparación con CoyIM son muy similares a muchas de las comparaciones anteriores. Lo único que hace que Skype sea un poco mejor es el potencial para crear usuarios de una manera un poco más anónima, pero incluso esto no es tan poderoso como en CoyIM, donde las nuevas cuentas anónimas están a tan sólo unos clics de distancia.
Conclusiones
La mayoría de las alternativas que existen son centralizadas y propietarias. CoyIM es abierto y federado, lo que significa que no tenemos un punto central de falla. También significa que si tú quieres, puedes verificar que CoyIM hace exactamente lo que se supone debe hacer. Debido a que CoyIM está federado, no hay restricciones sobre los tipos de cuentas que se puede crear. Además, cuenta con total disponibilidad para que crees ilimitados usuarios anónimos diferentes para comunicarte con todos tus amigos.
En el caso de las alternativas más cercanas a CoyIM, la mayor diferencia radica en la filosofía de implementación que conduce a una gran cantidad de características, mucha complejidad de código y una gran superficie de ataque, mientras que al mismo tiempo obliga a que el usuario tome las decisiones sobre cómo mejorar su seguridad, en lugar de simplemente adoptar el comportamiento más seguro por defecto.
Como CoyIM ha existido durante 7 años en el momento de escribir este artículo, y la versión 0.4 estará disponible pronto, sigue siendo claro que las alternativas que existen simplemente no pueden protegerte tan bien como CoyIM. Realmente desearíamos que esto fuera diferente – nos gustaría que hubieran muchas aplicaciones con la misma filosofía que la nuestra, ya que eso significaría que todxs estarían mejor protegidos. Pero hasta ahora, este no parece ser el caso.