Estas pasadas navidades decidí, junto a berni69 (creador
del famoso airwin), unir fuerzas y conocimientos para condensar en una
web todo lo comentado en estas líneas, de manera que fuera fácil de
comprender, de compartir y de usar, que tuviera impacto visual para la
gente y que fuera sobre todo concienciadora y didáctica. De esta idea
nace WhatsappVoyeur.
Whatsappvoyeur es un servicio web que permite a cualquier persona,
incluso sin el uso de teléfono movil, obtener todos los datos de perfil
de un determinado usuario de Whatsapp. En el momento de escribir estas
líneas somos capaces de proporcionar los siguientes:
- Foto de perfil a tamaño real y fácil de descargar a disco como cualquier imagen de una web
- Frase de estado o "status quote"
- Último momento en que el usuario cambió la "status quote"
- Último momento en que el usuario apareció conectado en la red
Con ello pretendemos realizar la prueba de los siguientes conceptos y aplicaciones prácticas:
- Determinar si un usuario te ha bloqueado en Whatsapp (cotejando datos con tu movil)
- Capturar la foto de perfil a tamaño real (con mas detalle de lo que la gente cree cuando las elige)
- Controlar la actividad de un determinado usuario (controlar si está o no conectado)
- Demostrar que los datos de todos son quasi-públicamente accesibles debido a las políticas de Whatsapp (solo hace falta estar autenticado dentro de Whatsapp - la web conecta a Whatsapp usando conjuntos de credenciales válidas que hemos creado para la ocasión)
A los ojos de un seguidor de SbD, WaV no es más que una herramienta
cómoda para hacer pruebas de concepto, curiosear y jugar un poco, pero
como he dicho antes todo está pensado especialmente para concienciar y
facilitar la experiencia del usuario menos avezado, con textos muy
explicativos del concepto, así como una interfaz vistosa pero simple y
fácil de usar, con "responsive design" para adaptarse tanto a móviles
como PCs.
Mi experiencia con un grupo de pruebas de estos usuarios es positiva y
les ha ayudado a entender la poca protección de sus datos en Whatsapp, y
esa es precisamente la intención.
WTF!
O igual no, ¿quién sabe? hay gente para todo... ;)
¿Cómo y por qué funciona WhatsappVoyeur?
Antes de nada debo rememorar uno de los problemas de Whatsapp que ya fué comentado aquí:
los datos del perfil de los usuarios de Whatsapp eran completamente
accesibles al público, mediante una simple consulta a una url. Ni
siquiera era necesario entrar en la red interna de Whatsapp propiamente
dicha.
Gracias al script de Alejandro Ramos pudimos practicar el harvesting de
todas las cuentas de Whatsapp de España, saber que por aquel entonces
sumábamos casi 10 millones de usuarios, y tener sus "status quotes" en
una base de datos. Todo ello, sin esfuerzo, sin más límite que el de
nuestra paciencia, sin siquiera necesitar credenciales válidas de
Whatsapp.
Desde el punto de vista de arquitectura, modelo de datos y privacidad, es de lo mas "braindead" que se puede perpetrar.
Pues bien, el 9 de enero, Whatsapp realizó un nuevo cambio en el
protocolo de comunicaciones, con la intención de resolver este asunto:
han desaparecido de sus servidores los archivos PHP contra los que
podíamos hacer un query usando simplemente wget, curl o un navegador
regular.
Adiós a "https://sro.whatsapp.net/client/iphone/iq.php"
En su lugar, implementaron un protocolo de intercambio de datos de los
contactos. A este protocolo le llamaremos "Contact Sync V2", tal como ha
dado en llamarle el egipcio Tarek Galal, creador de la API yowsup. Dicho
protocolo está colocado donde siempre debió estar: debajo de la capa de
sesión. Los datos devueltos por este nuevo conjunto de comandos son muy
parecidos a los que devolvía el famoso archivo iq.php, con la salvedad
de que ahora es necesario estar autenticado contra el servidor de
Whatsapp para poder enviar esos comandos.
Seguramente el lector pensará:
¡Bien! ¡Ya tenemos una mejora! Nuestros datos personales de Whatsapp ya no son públicamente accesibles...
...bueno, pues no. Pensemos por un momento en el modelo de datos de
Whatsapp, en las reglas bajo las que han definido dicho modelo: una de
las características más inseguras del protocolo Whatsapp y de las
relaciones entre sus usuarios es que "quien no está explícitamente
bloqueado está implícitamente permitido". Cualquier persona que añada
nuestro número de teléfono a su agenda puede ver nuestra foto de perfil,
nuestra "frase de estado" y controlar en todo momento si estamos
conectados, o cuánto tiempo hace que lo estuvimos por última vez. Y todo
esto nos está sucediendo sin que nosotros podamos hacer absolutamente
nada por evitarlo, en tanto en cuanto el individuo que nos "controla" no
nos envíe un mensaje que delate su presencia (ese es otro tema: esta
política permite que un usuario nos envíe un mensaje sin que lo
"aceptemos" previamente como contacto. Podremos bloquearlo, pero ya nos
ha molestado. Para aplicaciones de spam puede ser rentable cambiar de
número cada vez y seguir molestando...)
Pero hay más. No es solo un asunto de mi privacidad como individuo (que
un headhunter, un responsable de RRHH, mi ex pareja o mi jefe puedan
controlarme a mí, como persona elegida arbitrariamente, desde números
que desconozco y de los cuales yo no puedo defenderme). También es un
asunto de privacidad como elemento de una masa. Es decir, que aún es
posible realizar un "harvesting" masivo de los datos de los usuarios,
tal como hizo en su día Alejandro Ramos, con tan solo añadir dos
elementos nuevos: unas credenciales de usuario de Whatsapp válidas (muy
fáciles de obtener) y la adaptación al nuevo protocolo "Contact Sync V2"
(cosa que Tarek Galal nos proporciona con su API yowsup, que no tardó
en actualizar para reflejar los cambios). Nosotros en WhatsappVoyeur
simplemente ofrecemos una interfaz ágil para usar la API y unas
credenciales secretas para consultar cualquier número sin que nos puedan
bloquear.
Uno puede pensar que, ahora que se nos piden credenciales para obtener
los datos de los contactos, Whatsapp podría realizar un control del
número de querys por usuario/tiempo...
...bueno, pues tampoco. He realizado stress testing y he validado hasta 700 contactos a un ritmo de 30-40 contactos por minuto. Demasiados. También he obtenido las fotos de perfil de los usuarios comprendidos en un rango de 30.000 números de teléfono. Y ya habeis visto más arriba una prueba del espectáculo, entre dantesco y divertido, que eso puede llegar a suponer...
Conclusión
El protocolo "Contact Sync V2" apenas
implica una mejora real en la protección de nuestros datos de perfil en
Whatsapp. Solo coloca una barrera de autenticación frente al exterior,
pero no nos protege de otros usuarios autenticados en el interior; no
nos protege como individuos porque las políticas en sí mismas no lo
hacen (deficiencia de diseño), y tampoco nos protegen del "harvesting"
masivo porque, si bien el protocolo "Contact Sync V2" proporciona una
base técnica para impedirlo, no se le ha sacado partido aún.
Las políticas del tipo "lo que no está explícitamente prohibido, está
implícitamente permitido" siempre deben ser implementadas con mucho
cuidado, pero cuando los nombres de usuario son números de teléfono
móvil que cualquiera puede obtener y sondear, y cuando están en juego
nuestras fotos y otros datos que pueden ser bastante sensibles... es una
muy mala idea de base.
LO Q HE VISTO MINIMAMENTE ES LA FECHA 2013...EXICTEN USTEDES AÚN O CON OTRO NUEVO NOMBRE...soy un minimo principiante de paginas web y quiero ascesorame bien para o por algún ataque a mi paguina..pues son muy pequeñas...tengo 60 años y quiero tener una minima jubilacion..pues mi estado se ha robado todo ARGENTINA...GRACIAS POR SI ME LEEIS...UN GRAN ABRAZO...
ResponderEliminarMe alegro que te sirviera, mas vale tarde que nunca
Eliminar