Esta semana, Threema, una de las apps de mensajería segura más populares, se vio envuelta en un escándalo: los investigadores de ETH Zurich, una universidad pública de investigación en Suiza, encontraron siete (sí, ¡7!) vulnerabilidades en sus protocolos. Como respuesta, quienes desarrollaron la aplicación restaron importancia a estos errores y publicaron en un blog que todos estos problemas habían sido resueltos en unas pocas semanas y que ninguno tuvo un impacto considerable en el mundo real. Entonces, ¿qué pasa en realidad? ¿Hay que cambiarse a Signal cuanto antes?
Es difícil llegar al fondo del tema, ya que, aunque civilizado, el comportamiento de ambas partes no es el ideal. El equipo de ETH Zurich exageró claramente la importancia de su trabajo, el cual no solo describe vulnerabilidades sino también situaciones de explotación hipotéticas, mientras que claramente los desarrolladores de Threema subestiman lo grave de las vulnerabilidades y alegan que son casi imposibles de explotar.
Si te interesan exclusivamente las conclusiones prácticas, te sugerimos que vayas directamente a ellas (al final de esta publicación).
Las vulnerabilidades de Threema
Todas las vulnerabilidades fueron reportadas en octubre y rápidamente arregladas. Ambos coinciden en que estas vulnerabilidades no se han explotado activamente, por lo que no habría motivos para temer la divulgación de información al respecto. Dicho esto, sí hay que preocuparse por algo.
Centrémonos en las conclusiones que pueden sacarse 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. No obstante, todo esto entra dentro del protocolo de intercambio de información de Threema, que no está implementado a la perfección. 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 a un smartphone podría leer con facilidad bases de datos y 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 mandar mensajes haciéndose pasar por la víctima (pero no al mismo tiempo). Es obvio que todas las situaciones que dependen del acceso físico al smartphone suelen ser las peores para toda aplicación, además de que es muy difícil protegerse contra ellas.
Algunos de los posibles ataques que facilitan estas nuevas vulnerabilidades funcionarían solo si el atacante tuviera el control total sobre la red de intercambio de datos. Pero no basta solo con eso, 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, en la práctica, es muy complicado que funcione.
Dentro de los errores en el protocolo de comunicación, el que más preocupa es la falta de forward secrecy y future secrecy. O sea, una vez que el mensaje fue descifrado, 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 y no posterior a su lanzamiento.
Para explotar algunas de las vulnerabilidades, hay que comprometer el servidor de Threema primero, además, alguien del lado del operador debería trata de robar los datos intercambiados o interrumpir la comunicación de forma deliberada. Por ende, 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 deberán investigar nuevas formas de reforzar la seguridad del servidor, lo que es conocido como endurecimiento (hardening en inglés).
Los desarrolladores de la aplicación también deben sacar sus propias conclusiones de esta situación. “¡No elabores tus propios algoritmos cifrados!”, este incesante grito 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 usas 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, mejor cambia 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 debes seguir usando Threema para el trabajo o te gusta el hecho de que el ID de Threema no se asocia a tu número de teléfono, puedes seguir usándolo, pero debes estar al tanto de los riesgos. Por mucho que sean hipotéticos, no hay que subestimarlos.
Las medianas y grandes compañías que usan Threema en sus procesos empresariales deberían considerar seriamente migrar a Threema OnPrem para un control total sobre los servidores de esta aplicación de mensajería.