sábado, noviembre 20, 2021

Los detalles mal asumidos del cifrado extremo a extremo en apps de mensajería como WhatsApp o Telegram

He tenido que explicar estos últimos días en uno de los mensajes que me ha llegado a mi buzón público en MyPublicInbox, así que he pensado en hacer un pequeño artículo sobre ello en mi blog, por si tengo que mandar esta información otra vez a alguna persona. Tiene que ver con el cifrado extremo a extremo en las plataformas de mensajería, y lo que significa eso.

Figura 1: Los detalles mal asumidos del cifrado extremo a extremo
en apps de mensajería como WhatsApp o Telegram

Para explicar este tema, dejadme primero situar el problema para entender para qué tiene sentido el cifrado extremo a extremo y para qué no es más que una política de marketing y comunicación mal entendida por las personas, pero en cierta manera, de forma deliberada. Es decir, es mejor que la gente piense erróneamente que le protege de algo que no le protege, que entienda los límites de la tecnología.

El atacante remoto: Man-in-the-middle

Supongamos que Ana y Bartolomé se quieren enviar un mensaje con privacidad, para lo que han hecho un intercambio de claves públicas, y cifran los mensajes con las claves privadas de los destinatarios, haciendo un uso de criptografía moderna de comunicaciones digitales. Suponemos que cada uno de ellos guardan sus claves en sus terminales móviles y que nadie tiene acceso a esas claves. 

Figura 2: Libro de Cifrado de las comunicaciones digitales:
de la cifra clásica a RSA 2ª Edición de 0xWord

Con ese esquema de seguridad, un atacante que quiera acceder a los datos de la comunicación entre Ana y Bartolomé no conseguirá nada más que tráfico de comunicaciones cifrado que tardaría un tiempo enorme en lograr descifrar co la tecnología de hoy en día - y si usa cifrado post-cuantico, con la tecnología del mañana probablemente también -.
Eso quiere decir que el cifrado extremo a extremo que usan Telegram y WhatsApp no permite a nadie dese la red - incluidos los servidores de la propia empresa - acceder a los datos en transito de las comunicaciones. Y es bueno para dificultar a los que quieren espiar WhatsApp que lo hagan desde la web. Así que, demos por bueno por ahora, pero con pinzas, el mensaje que publica WhatsApp en su web sobre ello, donde afirman que no pueden acceder terceros... ni ellos tampoco. Y esta parte es la que no es tan cierta.

El atacante en el end-point

Ahora vayamos al end-point. Es decir, al terminal de Ana y Bartolomé. Imaginemos que Bartolomé le envía a Ana un mensaje importante que no quiere que nadie vea - ni tan siquiera los servidores de WhatsApp o Telegram -, y cuenta con la colaboración de Ana para eso sea así, pero...


...si hay un malware en el end-point que graba la pantalla, puede ver todos los mensajes, conservarlos e incluso guardarlos. Como en el caso de las fotos y vídeos con autodestrucción de Telegram que yo publiqué hace mucho tiempo, si alguien está en el end-point con permisos, puede acceder a toda la información de la comunicación.

Claro, eso significa que el terminal tiene un malware, un bug o un enemigo - el usuario - en el end-point. Pero... no es del todo cierto. Porque hay una app que está aprobada por todo el mundo y que tiene acceso a las claves públicas de todos los contactos, y a la clave privada del usuario. Esta app se llama WhatsApp y Telegram, y son de las empresas que usan el cifrado extremo a extremo.

Claro, si esas apps de mensajería, por ejemplo, tuvieran interés en analizar tus mensajes para generar insights y pasar esos insights a sus servidores con etiquetas del tipo "Le gusta el Whisky", o simplemente "XSEWESDR$RTFSASDVFGHFDSDF" que luego un algoritmo de Machine Learning en el servidor va a procesar como "a este usuario servirle anuncios del grupo ·$WDASFADSF·ASDADS" donde ese grupo tiene anuncios de empresa de bebidas alcohólicas, por ejemplo... podría hacerlo.

Es decir, que desde el end-point se pueden leer los mensajes tranquilamente y se pueden usar de una forma que respete la privacidad de los usuarios, pero también, la app, "podríavolverse una Gremlin App, y enviar los mensajes concretos de una conversación de chat cifrados con otra clave que solo fuera para un contacto concreto. Es decir, la app podría descifrar los mensajes de una conversación de chat, pintárselos al usuario y luego enviarlos cifrados de vuelta a los servidores de la propia empresa para acceder a su contenido en remoto.

O aún mejor.

La seguridad del cifrado de PKI basado en claves públicas y privadas, pero las claves privadas están disponibles para.... sí, lo has adivinado, la app de mensajería que usas en el end-point. Así que si le diera por enviar las claves privadas al servidor de la empresa, podría suplantar a cualquier persona desde la red... si quisiera, y acceder a las conversaciones en tiempo real desde la red.

Lo cierto es que en el artículo de Eryos sobre cómo descifrar los mensajes de WhatsApp para Android sin la clave de cifrado vimos como WhatsApp guardaba en sus servidores suficiente información cómo para descifrar una base de datos cifrada en otro end-point. ¿Por qué no "podrían" guardar las claves de los usuarios? Lo cierto es que ellos dicen que no lo hacen, pero hay dos cosas importantes sobre esto del cifrado end-to-end o extremo a extremo que es importante conocer:

- Ellos, controlando en end-point, sí que podrían acceder a los mensajes de los chats, incluso con cifrado extremo a extremos,  si quisieran o se vieran forzados por algún imperativo legal.

- Ellos pueden acceder a los datos, procesarlos y generar insights sobre los mensajes que tú envías y recibes por los canales, sin necesidad de almacenarlos en los servidores centrales. Pero podrían almacenar todos los insights generados por ti, en base a los anuncios que se te han servido en otros canales.

Y este punto me maravilla. Pues mientras la gente se muestra de una forma comedida y publicamente en las redes sociales abiertas, en los canales de WhatsApp y Telegram se muestran como realmente son, compartiendo sin filtro todo tipo de contenido e ideas, lo que le da una potencia, a cualquier empresa que use AI Differencial Privacy & Federated Learning con los datos del end-point, brutal.

Así que si me preguntas a mí, como los end-points de muchas de estas apps no son Open Source y nadie los puede auditar para garantizar que no hacen alguna comunicación de las que yo he dicho, no te podría garantizar si lo hacen o no, pero sí te puedo garantizar que lo podrían hacer y que la sentencia "nosotros no podemos acceder a los datos" no es cierta, y si mañana quieren pueden hacerlo. 

Además, el análisis de los datos en el end-point con AI Differencial Privacy & Federated Learning es, más que probablemente o que lleva a la gente a ver anuncios de cosas que ha hablado en grupos de chat privado.  No hay magia, controlan el end-point.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


1 comentario:

  1. Muy interesante. Y cómo sería la mejor manera de saber si tenemos malware en nuestro móvil Android por ejemplo? Gracias.

    ResponderEliminar