2014-08-20

El Futuro de las Aplicaciones de Mensajería


Hace unos días estuve hablando con un amigo sobre el futuro de las aplicaciones de mensajería. La conversación fue agradable pero falta de rigor porque mi amigo no es informático y no le quería aburrir con tecnicismos y jerga que no iba a entender. Pero el tema era verdaderamente interesante y por eso quiero profundizar en ello, ahora sí, dando rienda suelta a la pedantería informática.

La conversación se centraba en el diseño interno de las apps de mensajería que creo que deberían tener en el futuro. Empecé a pensar en este tema hace un año, cuando se destapó el caso Snowden y mis opiniones al respecto no han cambiado desde entonces. Se pueden resumir en los siguientes cuatro puntos.
  1. DHT (Distributed Hash Tables): Sin duda lo principal en mi análisis. Optar por un diseño descentralizado supone que los mensajes no tendrían que pasar por ningún servidor concreto. Aunque ahora se pone el énfasis en la seguridad de los messengers, la verdad es que su mayor amenaza son los cortes de servicio. Con una arquitectura descentralizada, los nodos actúan como cliente y servidor por lo que la posibilidad de caída del sistema se minimiza con la escala del sistema, al contrario que en el modelo tradicional de cliente-servidor. Pero la tolerancia a fallos no solo sirve para evitar accidentes fortuitos. En países donde la libertad de expresión está perseguida por la censura gubernamental, una aplicación descentralizada podría ser la única vía de comunicación segura. 
  2. E2EE (End-to-end encryption): Las futuras apps de mensajería tienen que apostar fuertemente por la seguridad. El modelo de encriptación de usuario a usuario es el más adecuado para el intercambio de información, pero como ya he propuesto un modelo descentralizado, esta encriptación es la única posible, al no existir servidor intermedio que cifre los mensajes. En cuanto al protocolo utilizado, creo que el más adecuado es OTR (Off-the-Record) que combina algoritmos AES de 128 bits en cada mensaje con el protocolo de intercambio de claves Diffie-Hellman. Aunque no entiendo por qué utilizan la función SHA-1 para generar los hash. Supongo que en su contexto no sea insegura. La criptografía siempre me ha parecido la parte más difícil de la informática y tengo bastantes lagunas, así que puedo equivocarme en este punto.
  3. Open Source: No puedo concebir un messenger descentralizado y fuertemente cifrado que no sea de código abierto. Telegram vivió un corto pero intenso momento de popularidad. Cuando se dio a conocer, presumían de ser software libre pero, en voz baja, reconocen que no es completamente libre. Según ellos, algún día liberarán el código del servidor, la pieza fundamental de su app. Es primordial que estas apps sean totalmente libres; cliente, servidor y protocolo, para evitar el comportamiento arbitrario y egoísta de los programadores, como por ejemplo, para que no empiecen a cobrar 0.89€ o insertar publicidad.
  4. Multiplataforma: Es un error hacer messengers solo para smartphone. La gente tiene derecho a poder usar su aplicación en una tablet y en ordenador, con cualquier sistema operativo. La aplicación con mejor soporte multiplataforma resulta ser Telegram aunque a mí sigue sin gustarme.
El futuro que preveo no es tan lejano como pudiera parecer. Ya hay apps parcial o totalmente libres y con niveles de seguridad muy altos como TextSecure y Cryptocat. También empiezan a surgir proyectos enfocados en la descentralización, como Bleep, de los creadores de bittorrent. Sin embargo, todavía queda la parte más complicada de todo el proceso. Que la gente deseche el maldito WhatsApp por una de estas alternativas superiores.