WhatsApp como ejemplo de aplicación poco segura

Recientemente, y motivado por las innumerables quejas de sus clientes, WhatsApp, la aplicación de mensajería multiplataforma líder del mercado (y gratuita), actualizaba a principios de este mes su modo de envío de datos, que pasaba a ser cifrado.

El cambio, que se implementó primero en su app para iOS, vaticinaba un futuro muy prometedor en sectores donde esta debilidad (aún incomprensible en una aplicación de tanto calado) la hacía sencillamente inservible, como en el tráfico empresarial y en general todo aquel que precisa de una seguridad extra.

Según el texto descriptivo de la actualización, se prometía un cifrado “completo” de todos los datos que envíes tanto en redes WIFI como en la red de datos de tu terminal, algo que en esencia han cumplido, pero que no por ello podemos considerar que nuestras conversaciones son más seguras. Me explico:

Antes del cambio, cada conversación se envíaba tal y como nosotros la escribimos, ya fuera texto, o archivos adjuntos. Esto permitía a cualquiera que supiera un mínimo de transferencia de datos, o que perdiera media hora de su vida en leer algún tutorial en internet, recopilar información privada de todos los terminales que envíaban información desde una red pública, e incluso de qué hablaban. De hecho, había programas que “cazaban” conversaciones ajenas, y te permitían seguirlas e intervenirlas, con el único requisito de estar conectado en la misma red (por ejemplo el wifi gratuito de muchas ciuidades y/o lugares públicos).

Después de la actualización, los datos se envían cifrados, pero el método de cifrado es tan sumamente sencillo, que en breves seguramente saquen alguna aplicación que lo calcula automáticamente, de forma que aquellos “interesados en los cotilleos ajenos” puedan seguir recibiendo información de todos los mensajes enviados alrededor suyo.

Para los entendidos, diré que el tipo de cifrado se diferencia  en Android e iOS, siendo en el primero un hash MD5 del número IMEI del móvil al revés (un número que identifica a cada dispositivo y fácil de conseguir), y en el segundo otro hash MD5 de la dirección MAC del dispositivo duplicada (otro valor sencillo de obtener, os he puesto dos ejemplos bajo estas líneas).

Hash MD5 de android:

$imei = “451236 20 069823 1”;  // ejemplo de IMEI
$androidWhatsAppPassword = md5(strrev($imei));  // la función strrev() devuelve el reverso de $imei, y MD5 el hash buscado

Hash MD5 de iOS:

$mac = “E1:B1:CF:3D:4A:AA”;  // ejemplo de dirección MAC
$iphoneWhatsAppPassword = md5($mac.$mac);  // función que calcula el hash MD5 del valor de $mac dos veces repetido

Como veis, en unas pocas líneas se puede preparar un exploit para WhatsApp, o aprovechar el código de aplicaciones ya creadas para este uso incluyendo las funciones pertinentes, y a seguir leyendo comentarios ajenos que “teoricamente” son privados.

Además, está el hecho de que el archivo que guarda las direcciones, teléfonos y demás servicios de los contactos de nuestra agenda sigue enviándose en XML.

Por todo ello, gracias a WhatsApp por intentarlo, pero la nueva actualización sigue siendo tan poco segura como las antiguas. Y a los que usamos WhatsApp, usarlo con conocimiento de causa. Mensajes básicos, y nada de enviar archivos o información que nos comprometa (sino que se lo digan a alguna que otra concejala del PP…).