Esta semana, Threema, una de las aplicaciones de mensajería segura más populares, se ha visto envuelta en un escándalo: los investigadores de ETH Zurich, una universidad pública de investigación en Suiza, han encontrado siete (sí, ¡7!) vulnerabilidades en sus protocolos.
Como respuesta, los desarrolladores de la aplicación han restado importancia a estos errores y han publicado en un blog que ya habían resuelto todos estos problemas en unas pocas semanas y que ninguno de ellos había tenido un impacto considerable en el mundo real. Entonces, ¿qué está pasando realmente? ¿Deberías cambiarte a Signal de inmediato?
Es difícil llegar al fondo de la cuestión, dado que el comportamiento de ambas partes, aunque civilizado, no es el ideal. El equipo de ETH Zurich claramente ha exagerado la importancia de su trabajo, que describe no solo vulnerabilidades sino también situaciones hipotéticas de explotación, mientras que los desarrolladores de Threema claramente subestiman la gravedad de las vulnerabilidades, alegando que son casi imposibles de explotar.
Si estás interesado exclusivamente en las conclusiones prácticas, te sugerimos que vayas directamente a ellas (al final de esta publicación).
Las vulnerabilidades de Threema
Todas las vulnerabilidades se reportaron en octubre y se arreglaron rápidamente. Ambos coinciden en que estas vulnerabilidades no se han explotado en activo, por lo que no habría motivos para temer la divulgación de información al respecto. Dicho esto, sí que hay algo por lo que preocuparse.
Centrémonos en las conclusiones que se pueden sacar tras una lectura detenida del informe de ETH Zurich, las declaraciones de Threema y otros estudios disponibles sobre la aplicación Threema y sus protocolos.
La aplicación utiliza algoritmos cifrados con una implementación de NaCl estandarizada y robusta. Sin embargo, todo esto entra dentro del protocolo de intercambio de información de Threema, que no está perfectamente implementado. Esto abre la posibilidad de varios ataques teóricos, como enviar un mensaje en un grupo que cada destinatario ve de manera diferente, pero también prácticos. Por ejemplo, cualquier persona con acceso físico al smartphone objetivo podría leer fácilmente las bases de datos y las copias de seguridad de Threema, si la aplicación no está protegida con una frase de contraseña. También se puede clonar un ID de Threema, lo que permite al ciberdelincuente enviar mensajes haciéndose pasar por la víctima (pero no al mismo tiempo). Obviamente, todas las situaciones que dependen del acceso físico al smartphone suelen ser las peores para cualquier aplicación, además, resulta extremadamente difícil protegerse contra ellas.
Algunos de los posibles ataques que facilitan estas nuevas vulnerabilidades funcionarían únicamente si el atacante tuviera el control total sobre la red de intercambio de datos. Pero eso en sí mismo no es suficiente, también se necesitan otras condiciones de explotación más complejas. Por ejemplo, uno de estos escenarios requiere que la víctima se vea obligada a enviar un mensaje con un contenido muy extraño a través de Threema, lo cual es muy complicado que funcione en la práctica.
De entre los errores en el protocolo de comunicación, el más preocupante es la falta de forward secrecy y future secrecy. Es decir, que una vez que has conseguido descifrar un mensaje, puedes descifrar los posteriores. Esta debilidad se conoce desde hace tiempo y es el motivo por el cual, aparentemente, Threema anunció en diciembre una versión totalmente renovada y más segura de su protocolo: Ibex, que todavía tiene que someterse a auditorías de seguridad independientes.
Por el momento, solo nos queda confiar en los desarrolladores cuando afirman que cubre todas las facetas de la criptografía práctica actual. Sería muy inteligente por parte de Threema acatar el consejo de ETH Zurich de externalizar la auditoría de los protocolos en las etapas tempranas de su desarrollo, no después de su lanzamiento.
Para explotar algunas de las vulnerabilidades, primero hay que comprometer el servidor de Threema, además, alguien en el lado del operador debería estar intentando de forma deliberada el robo de datos intercambiados o la interrupción de la comunicación. Por tanto, si una empresa que utiliza Threema Work no puede poner sus datos en riesgo, debería considerar el cambio a Threema OnPrem, donde contará con su propio servidor Threema interno. En este caso, los administradores tendrán que investigar nuevas formas de reforzar la seguridad del servidor, lo que se conoce como endurecimiento (hardening en inglés).
Los desarrolladores de la aplicación también deben extraer sus propias conclusiones de esta situación. “¡No elabores tus propios algoritmos cifrados!”, este es el grito incesante de los expertos en criptografía que, por ejemplo, Telegram no escuchó. Pero los desarrolladores de Threema utilizaron algoritmos cifrados comprobados con su implementación estándar correcta; los errores llegaron debido al uso de criptografía estándar en el protocolo de comunicación cliente-servidor original, que se implementó en lugar del TLS estándar. Parece que los expertos deberían haber gritado “¡No inventes tus propios algoritmos ni protocolos cifrados!”.
Conclusiones
Si has elegido Threema pensando que es la “aplicación de mensajería mejor cifrada”, no te importa tener que vincular tu número de teléfono y no quieres enredarte en detalles técnicos, es mejor que cambies a Signal. Como demuestran los ataques reales y resoluciones judiciales, los principios de criptografía y el almacenamiento de datos de Signal son más robustos y resistentes. Si necesitas seguir usando Threema para el trabajo o te gusta el hecho de que el ID de Threema no esté asociado a tu número de teléfono, puedes seguir usándolo, pero debes ser consciente de los riesgos. Por mucho que sean hipotéticos, no deberías subestimarlos.
Las medianas y grandes compañías que utilizan Threema en sus procesos empresariales deberían considerar seriamente la migración a Threema OnPrem para un control total sobre los servidores de esta aplicación de mensajería.