Matrix en sindominio: mensajería federada y segura.
Corre el año 2018. Toda la mensajería instantánea está en las garras de WhatsApp, propiedad del Emperador de Facebook. ¿Toda? ¡No! Un puñado de proyectos descentralizados resisten ahora y siempre al invasor.
Pero, ¿qué es Matrix? ¿Esto es como cuando los defensores del opensource (esos paniaguados que parece que tienen miedo de mencionar la palabra libre asociada al software) vinieron a decirnos que Telegram era una «alternativa» a Whatsapp porque los clientes eran abiertos? (y no, no lo es, pero otro día hablaremos de eso).
En principio, Matrix es diferente. Matrix no intenta ser «la aplicación definitiva«, sino que es un protocolo de comunicación en línea. Del mismo modo que las aplicaciones web están construidas sobre HTTP, funcionando sobre servidores como Apache o NGINX, y accedes a ellas a través de clientes web, también llamados navegadores (aunque alguna gente se confunde con esto, jeje), para acceder a canales o cuentas en matrix se usa también HTTP, a través de un servidor Matrix del lado de tu proveedor (como ruma o synapse), y usando un cliente Matrix (como Riot o WeeChat).
Por razones que creemos compartiréis cuando empezéis a usarlo, en sindominio estamos probando Matrix para la mensajería y otras formas de comunicación.
Clientes para matrix
Quizás la forma más fácil de empezar a usar Matrix es usar un cliente web alojado en alguna parte. Si tienes una cuenta en sindominio, puedes entrar en https://chat.sindominio.net y empezar a usar Matrix con tu usuario y contraseña.
Si usas un dispositivo móvil con android, puedes instalarte la aplicación Riot desde Fdroid o desde el supermercado del puto google. O si lo tuyo son las manzanas, también tienen una aplicación en iTunes. Realmente, hay un chingo de clientes, todos muy vistosos.
Si prefieres una aplicación de consola, no te preocupes: alguién también escribió un cliente para tí, se llama WeeChat y tiene un plugin para Matrix.
Una vez que te has instalado la aplicación, puedes loguearte con tu cuenta de sindominio (tienes que especificar https://matrix.sindominio.net en el apartado de opciones avanzadas en la página de login)…
… y ya puedes empezar a charlar con la gente por esos lares. Puedes probar con las salas #general:sindominio.net o #cafe:sindominio.net (#sala:server.tld).
Si no tienes una cuenta de sindominio, hay otros servidores como el de los compas de weho.st que tienen el registro abierto.
Verás que Riot es un cliente muy completo: no es una simple aplicación de mensajería, sino que permite hacer llamadas de voz y vídeo (en grupo también!), compartir archivos, y hay ya varios tipos de bots en el ecosistema que se pueden integrar. Pero lo mejor, a nuestro juicio, es el…
¡Cifrado punto a punto !
Uno de los puntos fuertes a favor de Matrix, además de que cualquiera se puede montar su servidor (instalando synapse), es que permite cifrado punto a punto. Esto significa que, una vez que habilitamos el cifrado para una sala o para hablar con una persona en particular, los mensajes por ese canal ya nunca pasan en claro por el servidor.
Matrix usa criptografía de curva elíptica y un algoritmo llamado megolm, que es un tipo de algoritmo de cifrado de ratchet (literalmente, trinquete, por cómo se van derivando nuevas claves en base a las anteriores), similar al algoritmo que usa Signal, que funciona bien para casos de cifrado en grupo, y que también permite que un destinatario descifre los mensajes varias veces: los clientes almacenan claves de sesión, mientras que en el servidor sólo se almacena texto cifrado.
Para más info, puedes ver las diapositivas sobre el tema del cifrado en Matrix en una presentación en la FOSDEM del año pasado.
Tendiendo puentes
Otra cosa que promete mucho de matrix es que pretende ser un puente entre diversos canales de comunicación. Existen bridges para SMS, Twitter, IRC o cosas más hipster y cerradas como Slack. Si bien es cierto que si usas bridges, perderás la garantía del cifrado punto a punto, pero es un buen punto para reducir la fragmentación de las diferentes aplicaciones de mensajería de hoy en día.
Una bocanada de aire fresco para la federación
Estamos aún probándolo y haciéndonos una idea más completa, pero parece que la descentralización en la mensajería goza aún de buena salud. Tiene pinta de que el ecosistema de Matrix ha aprendido algo de los puntos débiles de Jabber/XMPP, que aunque es cierto que sigue vivo, ya no es lo que fue en su día.
Incorporar cifrado desde el principio en una especificación monolítica, y dar buena atención a clientes modernos y que soporten cosas como videoconferencia parecen grandes aciertos por parte de Matrix.
¡Larga vida a las comunicaciones federadas! Y ya sabéis, nos leemos en los intertubes.