Análisis de la seguridad de las nuevas contraseñas de WhatsApp

Análisis de la seguridad de las nuevas contraseñas de WhatsApp

Rubén Velasco

Una de las asignaturas pendientes de WhatsApp siempre ha sido la seguridad. Tanto a nivel de contraseña a la hora de autenticarse en los servidores como al enviar y recibir mensajes en formato de texto plano, WhatsApp nunca se ha preocupado por la seguridad de su cliente de mensajería. Tras la explotación de su primera contraseña de autenticación, actualizó la contraseña de las nuevas versiones a un protocolo algo más complicado y comenzó a cifrar las contraseñas, pero ¿es suficiente esta nueva contraseña?

El proceso de obtención de contraseña, actualmente, funciona de la siguiente manera:

  • El smartphone envía su número a una dirección HTTPS con una petición de contraseña.
  • El smartphone recibe un mensaje con un código de autenticación para poder conectarse al servidor.
  • El smartphone envía dicho código de nuevo al servidor a través del protocolo HTTPS para obtener la contraseña.

Las contraseñas que utiliza actualmente WhatsApp son más largas que las anteriores y no son visibles, en teoría, por los usuarios, lo que dificulta su robo por parte de piratas informáticos.

Funcionamiento de la contraseña de WhatsApp

La contraseña que ha recibido anteriormente es utilizada para iniciar sesión en sus servidores. Una vez iniciada la sesión el cliente envía el siguiente código al servidor:

  • <Auth  xmlns = «urn: ietf: params: xml: ns: XMPP-sasl»  user = «XXXXXXXXXXXX»  mechanism = «WAUTH-1»  /> (siendo XXXXXXXXXXXX el número de teléfono).

A lo anterior, el servidor le contesta con un nuevo código desde el que se calculará la clave. El valor es el siguiente:

  • <challenge xmlns=»urn:ietf:params:xml:ns:xmpp-sasl»>YYYYYYYYYYYYYYYYYYYY</challenge> (siendo YYYYYYYYYYYYYYYYYYYY la clave).

A partir de la clave anterior, se utiliza un código PBKDF2 con 16 interacciones para obtener una clave con la que se cifrarán los mensajes y la conexión al servidor utilizando el código HMAC-SHA1 obtenido.

whatsapp_foto_inseguro

Errores en la nueva contraseña de WhatsApp

La nueva contraseña de WhatsApp está lejos de ser una alternativa segura. Dos son los principales errores que comete la compañía con el uso de esta nueva contraseña en su cliente:

Fallo nº 1

Misma clave de cifrado tanto de salida como de entrada. Esto significa que, si tenemos varios mensajes, tanto de salida como de entrada, podemos obtener la mayor parte de los bits de la contraseña que ha utilizado WhatsApp para autenticarse en el servidor y cifrar los mensajes, pudiendo llegar a descifrarla sin mucha dificultad. Esto se debe a que todos los mensajes tienen aún una parte común pese a estar cifrados, por lo que analizando el resto del código se puede deducir la clave de cifrado.

Fallo nº 2

Misma clave HMAC en ambas direcciones. WhatsApp controla los mensajes a través de la MAC de los dispositivos, aunque este valor no es suficiente para estar completamente seguros de la integridad de los mensajes. Por ello, WhatsApp utiliza esta clave para convertir la MAC en un valor llamado HMAC que comprobará que los mensajes no han sido alterados por el camino. El problema es el mismo del caso anterior, y es que este valor puede ser descifrado con un análisis minucioso de varios paquetes de entrada y salida al utilizar en todas las ocasiones la misma clave.

¿Por qué WhatsApp no se centra en utilizar un protocolo de cifrado seguro?

Cualquier usuario con unos conocimientos más o menos avanzados sería capaz de analizar todas las conversaciones de WhatsApp que ocurran a través de la red. En las versiones anteriores era mucho más sencillo, pero actualmente, aunque es algo más complicado, no es suficiente y sigue resultando muy sencillo el espionaje.

El protocolo de cifrado desarrollado por WhatsApp no es suficiente debido a que no terminan de controlar el valor XOR. WhatsApp debería comenzar a adaptar otros medios de cifrado más seguros, más fáciles de implementar y con mejor soporte tales como TLS. ¿Por qué no lo hacen? Porque la compañía no quiere que los usuarios sean dueños de las claves de cifrado. WhatsApp quiere tener el control sobre las claves de cifrado, almacenarlas en sus servidores y poder tener acceso a las conversaciones cuando quieran. Si cambian de protocolo y ceden las claves a los usuarios, la compañía no tendría control sobre los mensajes, de forma similar a como funciona el cliente Wickr.

No sabemos lo que pasará con el tiempo, pero WhatsApp es uno de los clientes más utilizados a nivel mundial de mensajería instantánea (probablemente por ser el primero en llegar al mercado) pero, a su vez, es el más inseguro de todos.

¿Qué crees que pasará en el futuro con la seguridad en WhatsApp? ¿Se darán cuenta algún día de la importancia de la privacidad de los usuarios?

Fuente y más información técnica: thijsalkema

1 Comentario