Ahora, la polémica ha venido cuando el investigador de seguridad Tobias Boelter ha publicado un bug en WhatsApp que,
por motivos de usabilidad, permite a un atacante acceder a los mensajes
que no han llegado aún a su destinatario por la forma en la que la
implementación de WhatsApp permite hacer regeneración de
claves de cifrado automáticamente para usuarios offline. Esto es fácil
de entender, vamos a verlo paso a paso, y nada complicado de implementar
para aquellos que quieran espiar WhatsApp.
El bug de reenvío de mensajes en WhatsApp
El bug de reenvío de mensajes en WhatsApp
A día de hoy WhatsApp usa cifrado e2e,
por lo que cada conversación entre dos personas va cifrada con las
claves públicas del destinatario. Es decir, cada mensaje que se cifre
con la clave pública del destinatario solo podrá descifrarse si se posee
la clave privada asociada, que es generada por cada usuario en el
dispositivo. Esto quiere decir que, cuando una persona instala y
configura WhatsApp en su teléfono, automáticamente se
genera un par de claves pública y privada nuevas. La pública será
enviada a todos los contactos y la privada permanece en el dispositivo.
Cualquier contacto puede verificar, vía WhatsApp, que las
claves de cifrado públicas que se están utilizando en la conversación
son las correctas tal y como se explica en este artículo [Verificar claves de cifrado de contactos de WhatsApp] y además, cada usuario podrá activar en las opciones de WhatsApp->Seguridad
la posibilidad de recibir un mensaje cada vez que se cambien las
claves. Esta opción hay que ponerla siempre, como parte de las
recomendaciones que existen para Proteger WhatsApp a prueba de balas, pero como vamos a ver aquí, no es suficiente.
Ahora bien, ¿qué pasa si tú envías un mensaje a un terminal y este está
apagado? Pues aquí viene el fallo en la implementación de WhatsApp.
Supongamos el siguiente escenario. Yo soy un objetivo de un ataque
porque soy un presidente de una empresa que está sufriendo un APT o un objetivo político de un gobierno que va a tomar un avión que le va a llevar de Madrid a Washington D.C. para una reunión. Mi teléfono va a estar en modo avión durante 7 u 8 horas, por lo que ningún mensaje que me envíen por WhatsApp me va a llegar.
Todos los mensajes que me envíen durante el tiempo que estoy en modo
vuelo aparecerán en el terminal de los emisores con un solo tic, y en los servidores de WhatsApp cifrados con la clave pública de mi teléfono. Algo que por seguridad, podría haber verificado con todos mis contactos.
Figura 3: Verificación del código de cifrado con mis contactos |
Ahora pongamos por un momento que los atacantes han conseguido una copia de la tarjeta SIM o han hecho un SIM Swapping, o si es el gobierno del país, ha solicitado un duplicado de la misma con una orden judicial. En ese momento la NSA - suponiendo que fuera ese gobierno USA y los tiempos de los que hablaban los documentos de Edward Snowden - podría registrar mientas el objetivo está volando, la cuenta de WhatsApp en un nuevo dispositivo. Ahí viene el fallo.
Pues bien, la característica implementada por Facebook hace que, automáticamente los servidores de WhatsApp
recibirán una notificación de cambio de clave pública del destinatario
de los mensajes y, para que la experiencia de usabilidad sea mejor, pide
a todas las apps de WhatsApp de los
emisores de los mensajes que cifren y envíen - automáticamente y sin
capacidad de pararlo - otra vez todos los mensajes que aún no han sido
entregados, pero cifrados con la nueva clave pública del destinatario.
Si el usuario ha activado la opción de recibir alertas de seguridad, entonces DESPUÉS
de haber enviado los mensajes, el emisor recibirá una alerta que
explica que se han cambiado las claves - probablemente por un cambio de
dispositivo - y que puede verificarlas otra vez.
Figura 4: El emisor recibe la alerta después, pero el mensaje se envía antes |
Esto es un bug que permite a un atacante interceptar mensajes de sus
víctimas en ciertas circunstancias, pero la queja de los expertos en criptografía no es solo referida a este fallo - que WhatsApp puede cambiar simplemente pidiendo confirmación de que quiere enviar los mensajes al destinatario con la nueva clave ANTES de enviarlos, sino que al ser una app de código cerrado, es difícil verificar todo el proceso.
No es el caso, pero una app de cifrado e2e
en mensajería podría decir en su interfaz que está usando unas claves, y
luego estar usando otras o, directamente, enviar el mismo mensaje
varias veces y cada vez cifrado con una clave distinta. Por eso, muchas
organizaciones activistas recomiendan no usar bajo ningún concepto software criptográfico que no sea OpenSource para que pueda ser revisado completamente el proceso.
Figura 5: Recomendación de The Guardian para dejar de usar WhatsApp |
Como se puede ver online, el periódico The Guardian recomienda directamente NO utilizar WhatsApp si te preocupa de verdad el cifrado e2e
en los mensajes y dejar de usarlo, ya que esta forma de funcionar no
garantiza que el mensaje que has enviado con una clave de cifrado vaya a
ser el que se utilice al final para ello. No hay que olvidar que The Guardian fue el primer medio que publicó los documentos filtrados por Edward Snowden, y que Facebook aparecía como parte de los participantes del programa PRISM para espiar de forma automática perfiles en Internet.
Figura 6: Diapositiva del programa PRISM filtrada por The Guardian |
No hay comentarios:
Publicar un comentario