Mensajería cifrada

Antes de empezar, tengo que decir que probablemente no soy el usuario modelo de la mensajería instantánea. No he utilizado nunca ningún chat de plataforma (Whatsapp, Telegram, Discord, Signal...). Sí utilizo mensajería instantánea, la que adopta el protocolo propuesto entre 1998 y 1999, XMPP, en varios servidores que federan entre ellos. (Después explicaré un poco esto).

Un ámbito de comunicación importante es el de la mensajería instantánea,también llamada chat, sobre todo la que se usa desde dispositivos móviles. Por lo masivo de su uso se podría pensar que es el único medio de comunicación, aunque realmente no es así.

Generalmente se usan plataformas que dicen que respetan nuestra privacidad, que cifran extremo a extremo (es el cifrado que efectúa el remitente antes de enviar para que descifre solo el destinatario, como lo ya explicado), se supone que nadie lee los mensajes, mira las imágenes ni escucha los audios...

Estas plataformas implementan (ponen en marcha) sus propios protocolos de comunicación, muchas veces no se conocen, no son interoperables, es decir que no “hablan” unos con otros, con lo que el entrar en cualquiera de estas plataformas es entrar en grandes jardines vallados pertenecientes a grandes empresas tecnológicas.

Y el código, hay veces que está disponible el de la parte cliente pero no el de la parte del servidor, otras veces ninguno de los dos, total que no hay certeza ninguna de qué es lo que hacen, qué datos guardan, durante cuánto tiempo, el cifrado...

Hay varias de estas plataformas que requieren, para poder hacer uso de las mismas, que se vincule la identidad del usuario con una SIM, hacerlo así compromete el anonimato (algo diferente a la privacidad), que es el mantenimiento de una identidad en secreto. Para mi, el que sea necesario tener una SIM es un punto en contra de tales plataformas.

Antes de seguir, creo que es necesario explicar brevemente algunos conceptos o ideas:

Protocolo

Un protocolo es un sistema de reglas para relacionar dos o más entidades entre ellas. Es una descripción o especificación. Salvando las distancias, sería la receta escrita de alguna comida, la puedes leer y planificar desde lejos de la cocina.

Implementación de protocolo

La puesta en marcha del protocolo, leer la receta anterior y hacer la comida. Lo necesario para hacerlo: programas, ordenadores, servidores, base de datos. Se puede implementar el protocolo completo o solo alguna parte, por ejemplo en los diseños cliente-servidor se puede implementar el servidor y por otra parte el cliente, tal como hace Whatsapp, también hay quién implementa un cliente y posteriormente un servidor.

Cliente-servidor

Diseño de software y de protocolo también, en el que las tareas se reparten entre dos intervinientes, uno, el cliente, pide cosas al otro, el servidor y este cumple la petición, si es que es posible y puede. Un ejemplo de esta disposición es el correo electrónico: por una parte tenemos un servidor en el que tenemos registrada una cuenta y por otro lado podemos tener uno o más clientes configurados para dicha cuenta. No quisiera que el ejemplo que voy a poner se interprete como publicidad: Yahoo tiene un servicio de correo electrónico y un servidor para el mismo, luego cada persona con cuenta en Yahoo puede tener varios clientes, por ejemplo uno en el móvil, otro diferente en el ordenador de mesa y otro en un portátil, todos ellos configurados con la misma cuenta. Desde el cliente se puede pedir al servidor que nos pase nuestros correos nuevos, o que haga una carpeta, o que haga lo necesario para enviar un correo electrónico. Si el cliente está bien hecho, el servidor entenderá qué es lo que se le está pidiendo.

Anonimato

El anonimato es el secreto sobre el autor de algo. En ciertas situaciones puede ser vital, como en las de disidencias en regiones represivas, pero también puede ser utilizado de forma abusiva. En Internet no es posible el anonimato total.

Mi opinión con estos conceptos es que necesitamos disponer de protocolos libres, con toda su información disponible para implementarlo, y si no lo vamos a hacer nosotros, que dispongamos también de programas libres, que podamos saber qué hace, no digo que lo hagamos, si no que al menos tengamos esa posibilidad.

¿Qué podríamos o deberíamos pedir a un servicio de mensajería instantánea?. Yo pediría cierto apoyo al anonimato, que siga un protocolo o protocolos libres y que contemplen la privacidad en las comunicaciones, aunque deberíamos ser los interlocutores los que nos encarguemos de ello, como en el cifrado de correo.

Empezando por el anonimato, yo descartaría todos los servicios que vinculan el registro de usuario con una SIM. Se puede alegar que en el uso normal de algunos de estos servicios, los interlocutores no pueden ver el número de teléfono, pero me preocupa más que lo tenga el titular del servicio. Así que yo evitaría servicios como Whatsapp, Telegram; Signal no requiere SIM, pero sí un número de teléfono, yo no lo uso, pero puede ser una opción a tener en cuenta.

En cuanto a protocolos y sus implementaciones, podemos encontrar que los hay con pocas especificaciones (o ninguna), pero yo veo que los servicios centralizados, con un solo servidor, se convierten en jardines cerrados: una vez que estás allí solo es posible comunicarse con otros que estén también allí, en el mismo servidor. Además existen implementaciones, en ocasiones en la parte cliente y siempre en la parte de servidor de la que no se dispone de información de cómo funcionan ni de qué datos guardan, cuánto tiempo ni nada. También descartaría estos servicios.

En cuanto al cifrado, hay servicios que anuncian que ofrecen cifrado punto a punto, pero sin tener acceso a la especificación del protocolo ni el código fuente no tenemos ninguna certeza de que efectivamente estemos cifrando, o incluso que no se esté observando lo que escribimos antes de cifrar. También evitaría estos servicios.

En definitiva, que el o los protocolos utilizados sean libres y estén disponibles para cualquiera es una de las claves para elegir una mensajería instantánea (o cualquier otro servicio).

Ya he mencionado que no soy modélico en el uso de mensajería, solo uso una mensajería basada en un protocolo libre, consolidado, mantenido y ampliado. El carácter libre de este protocolo, XMPP, permite que pueda haber diferentes y variadas implementaciones y diferentes servicios montados sobre estas implementaciones. El cifrado de las conversaciones se hace punto a punto, pero además se puede comprobar dado el carácter libre del código de la mayoría de las implementaciones.

Hay otras mensajerías interesantes como delta.chat que se basa en protocolos estándar ya utilizados en correo electrónico como SMTP , IMAP, OpenPGP, es decir cosas que son libres, y que están disponibles para todo el mundo, no hay secretos, no hay oscuridad.