Te encanta WhatsApp. O tal vez no, pero es lo
que utilizan tus amigos y no estás dispuesto a cambiar de servicio de
mensajería. Es comprensible, pero debes saber que tus conversaciones
pueden caer en manos de terceros. Pablo San Emeterio y Jaime Sánchez lo
han puesto de relieve y, además, han tapado los huecos para que puedas
chatear tranquilo
Que WhatsApp no es precisamente el adalid de la seguridad informática
es algo que a nadie se le escapa. Cada cierto tiempo alguien descubre
un agujero y ellos lo tapan, casi siempre tarde y mal, dejando nuestras
conversaciones privadas al alcance de ciberdelincuentes
malintencionados, ciberespías y otros malandrines con los mínimos
conocimientos de criptografía. Siempre ha sido así y todos lo sabemos,
pero seguimos utilizando la ‘app’ porque al fin y al cabo es la que usan
nuestros amigos. De hecho, cuenta con más de 20 millones de usuarios
activos mensuales en España y un total de 350 millones en todo el mundo. Ahí es nada.
El extécnico de la CIA, Edward Snowden (Foto: DonkeyHotey | Flickr)
La privacidad nos preocupa, y más ahora que las revelaciones de
Edward Snowden sobre el espionaje masivo de la NSA nos han refrescado la
memoria, pero a menudo nos cuesta cambiar de hábitos o priorizamos
factores como la sencillez de uso o la popularidad de la herramienta.
Sea como sea, el caso es que a muchos nos gustaría seguir utilizando
WhatsApp y al mismo tiempo estar tranquilos, saber que nadie tiene
acceso a nuestras conversaciones, ya sea la propia empresa, los
servicios secretos o un astuto criminal.
Ahora mismo no podemos tener esa certeza. Así de claro. El 10 de agosto, un joven investigador holandés daba la voz de alarma:
el cifrado de WhatsApp está mal implementado y puede romperse. Una
conocida marca de antivirus se hizo eco y medios de comunicación de todo
el mundo comenzaron a replicar la noticia, provocando que los
responsables del chat salieran en defensa de su producto. “El bloguero describe un escenario de naturaleza más bien teórica”, dijeron. Asunto zanjado. O eso pensaban ellos…
Dos expertos en seguridad españoles llevaban meses investigando y ahora han pasado a la acción. Se trata de Pablo San Emeterio, del departamento I+D de Optenet, y Jaime Sánchez, del Centro de Operaciones de Seguridad de una multinacional de telecomunicaciones y autor del blog Seguridad Ofensiva,
que han llevado este y otros hallazgos a conferencias de renombre
nacional e internacional. Juntos han logrado demostrar de forma práctica
que los problemas de seguridad existen, que cualquiera podría estar
leyendo tus mensajes y que WhatsApp no está haciendo todo lo posible por
proteger tus datos personales.
Y espera, que no se han quedado ahí. Además le han añadido tres capas de protección adicional para que duermas tranquilo.
Pablo San Emeterio en la Rooted Con de 2012 y Jaime Sánchez en la DefCon de 2013
Rompiendo el cifrado de WhatsApp
El primer paso es entender cómo funciona el sistema de seguridad de
WhatsApp y por qué es tan vulnerable, de forma que después podamos
saltárnoslo e implementar uno más potente. Vamos a tratar de explicarlo
poco a poco, de manera sencilla, para que nadie se pierda en el camino.
WhatsApp protege los mensajes utilizando el algoritmo de cifrado de flujo RC4,
uno de los más comunes y antiguos (fue diseñado en 1987) y, tal como
está implementado en la aplicación, uno de los menos seguros.
No hace falta que conozcas cómo funciona el algoritmo, pero sí es
necesario que sepas que utiliza como base un conjunto de caracteres,
números o bits (‘keystream’) y que, en gran medida, el cifrado
resultante es tan robusto como lo sea esa cadena. Pues bien, en WhatsApp
es la misma en los dos sentidos: de tu móvil a los servidores y de los
servidores a tu móvil. Y además se genera siempre a partir de una misma
contraseña.
Una de las diapositivas de la presentación en el congreso NoConName
Como la contraseña es siempre la misma, descifrar los mensajes será
bastante sencillo para cualquiera que haya logrado interceptarlos, ya
sea porque utiliza la misma WiFi pública que nosotros o, por ejemplo,
porque ha redirigido nuestro tráfico 3G.
Para que lo entiendas, si el vecino te está robando el WiFi y es un
poco ‘hacker’, puede leer tus mensajes. Si usas el WiFi de la oficina y
uno de tus compañeros es un poco ‘hacker’, puede leer tus mensajes. Si
te cuelan un virus en el móvil, podrían llegar a leer tus mensajes. Solo
necesitarían capturar dos mensajes cifrados y deducir una palabra que
aparezca en ambos para llegar hasta el texto original. Bueno, no es tan
sencillo, pero si quieres ver la explicación técnica completa (no apta
para novatos), está en las diapositivas 23 a 26 de la presentación de
Jaime y Pablo.
Al usuario medio del chat le basta con saber que un atacante podría
leer sus conversaciones. Eso por no hablar de WhatsApp (¿y la NSA?), que
además tiene la contraseña…
Tomando el control
Si
la empresa no protege a sus clientes, tendremos que hacerlo nosotros.
Eso es lo que pensaron Pablo y Jaime cuando empezaron a desarrollar
WhatsApp Privacy Guard, un programa que permite añadir hasta tres capas
de seguridad por encima del endeble cifrado de la aplicación de
mensajería instantánea. Estará disponible de forma gratuita a finales de
este mes, después de que lo hayan presentado en la prestigiosa conferencia Black Hat de Sao Paulo el 27 de noviembre.
Lo primero que tendremos que hacer para utilizar el ‘software’ es
descubrir la famosa contraseña, algo que, al menos en iOS, de momento es
bastante sencillo. Cuando instalas el chat y decides utilizarlo por
primera vez, te llega un SMS al teléfono. ¿Te acuerdas? Dicho SMS
contiene un código, que introduces en la aplicación y que te devuelve un
primer ‘password’. Solo lo conocen el servidor de WhatsApp y tu
teléfono. Nadie más.
¿Es esta la famosa contraseña del RC4? Todavía no. Cada vez que
inicias sesión, el servidor de WhatsApp plantea un desafío a tu móvil:
le manda un número y le pide que realice sobre él una serie de
operaciones matemáticas utilizando la clave que solo ellos dos conocen.
Así es como se aseguran de que solo tu móvil puede resolverlas. Y es
importante, porque el resultado de esas operaciones sí es la famosa
contraseña.
Pablo y Jaime han hallado la forma de localizar esta clave (que se
almacena en tu teléfono) e introducirla en su programa, que se encarga
de descifrar los mensajes, agregarles más capas de seguridad y enviarlos
a los servidores de WhatsApp para que sigan su camino hasta el
destinatario. Si no lo ves del todo claro, tranquilo, que enseguida lo
entenderás perfectamente.
Primera capa: un cifrado como Dios manda
Después de que lo escribas en tu móvil y pulses enviar, el mensaje
(cifrado con RC4 a partir de tu contraseña) sale con rumbo a los
servidores de WhatsApp. Por el camino Privacy Guard lo intercepta, lo
descifra (porque se sabe el ‘password’) y le aplica una versión del
algoritmo de cifrado mucho más segura que la original (o directamente
otro algoritmo más sofisticado). Después lo vuelve a cifrar con el RC4
de WhatsApp, para que no vea nada raro cuando llegue hasta sus
servidores.
Entonces el mensaje llega finalmente a las máquinas de WhatsApp,
donde supuestamente solo está de paso. La empresa afirma que lo borrará
en cuanto sea entregado, pero imagínate que les da por leerlo antes.
Como tienen la contraseña, podrán saltarse el RC4 y entonces… ¡JA! No
hay más que símbolos extraños. El cifrado adicional que han aplicado
Pablo y Jaime ha surtido efecto y no ven nada. Lo mismo sucede con ese
malhechor que intercepta tu tráfico en una WiFi pública. Ahora no es tan
sencillo espiar mis conversaciones, ¿eh?
Esto es lo que se ve sin la contraseña para descifrar los mensajes
Sigamos adelante. El mensaje pasa por los servidores de WhatsApp, que
afirma no haberlo leído, y sigue su camino hacia el destinatario. Sí,
tienes razón, hay un problema: ¿no verá él también símbolos raros?
Efectivamente. A no ser que tenga instalado Privacy Guard y hayáis
pactado una contraseña común, que pueda utilizar para descifrarlo. ¿Lo
habéis hecho? Entonces no hay problema. El mensaje le llegará como si
nada.
Por cierto, todo este proceso, gracias al ‘software’ desarrollado por
estos investigadores españoles, será completamente transparente para el
usuario. Eso quiere decir que instalas el programa en tu ordenador (o
tal vez una Raspberry, un Android ‘rooteado’ u otro intermediario),
pactas una contraseña con cada uno de tus amigos y te olvidas.
¿Cuál es la ventaja de este sistema? Que la contraseña solo la tenéis
el emisor y el receptor, tú y tu amigo, que la habéis consensuado.
Hasta ahora la tenían el emisor y WhatsApp, por un lado, y el receptor y
WhatsApp por el otro. ¿Qué sucede si el intermediario tiene la
contraseña? Que puede leer los mensajes sin molestarse siquiera en
romper el cifrado.
Jaime en el congreso NoConName 2013, en Barcelona, con una camiseta del Real Madrid
Segunda capa: una identidad secreta
Vale, ahora WhatsApp no puede leer lo que hay escrito porque le hemos
añadido un cifrado adicional, pero aún puede saber que yo, Pepito, he
hablado con Fulanito el día 10 de noviembre a las 17:13 y que nos hemos
enviado exactamente doce mensajes. Este tipo de información es lo que se
conoce como metadatos y, según las filtraciones de Snowden, también
interesa (y mucho) a la NSA.
Si esto te tenía preocupado, ya puedes dormir tranquilo. Privacy
Guard permitirá ocultar tu identidad gracias a ciertas funciones de la
API extraoficial Yowsup. Básicamente, añade unas cuantas paradas al recorrido que hemos explicado en el punto anterior.
Ahora su trayectoria es la siguiente. El mensaje sale de tu móvil,
pero no pasa directamente por los servidores de WhatsApp. Antes se envía
a un número virtual, a otro, a otro, a otro… Pasa por varias manos (que
en realidad no existen) antes de llegar a los servidores oficiales, que
se lo harán llegar a tu amigo. De esta forma, el intermediario no es
capaz de determinar quién ha hablado con quién en qué momento. O sí,
pero son identidades falsas…
Y te preguntarás: ¿cómo sabe mi amigo, el destinatario final, que el
mensaje es mío? Muy sencillo: él también tiene instalado el programa,
que hace que esto suceda sin que ninguno de los dos tengáis que mover un
solo dedo. Vosotros usáis felizmente WhatsApp y Privacy Guard se
encarga de todo.
Jaime Sánchez presenta sus hallazgos en el congreso NoConName 2013
Tercera capa: eliminando a la empresa de la ecuación
Estoy seguro de que los usuarios más avanzados habéis llegado hasta
aquí con (al menos) una duda: ¿de verdad pensáis que WhatsApp y la NSA
no son capaces de romper el cifrado adicional que añade el programa? No,
no lo pensamos, tranquilos. Sabemos que los servicios secretos son
capaces de descifrarlo, pero si la contraseña que pactáis tu amigo y tú
es suficientemente robusta tienen que estar muy interesados en leer tus
mensajes para tomarse la molestia.
Si tus actividades o el contenido de tus conversaciones es así de
delicado, tendrás que recurrir a la tercera capa de seguridad, que ya
requiere algunos conocimientos informáticos (o seguir los pasos de un
buen tutorial). Resulta que Privacy Guard nos permite prescindir también
del intermediario: los mensajes se envían a través de nuestro propio
servidor y solo recurrimos a WhatsApp por la aplicación (que es la que
nos gusta y la que utilizan nuestros amigos) y por las notificaciones.
Entremos en detalle. WhatsApp está basado en una versión modificada del protocolo XMPP,
el mismo que antaño utilizaba GTalk y ahora utilizan muchos otros
chats. Por lo tanto, nosotros podemos montar nuestro propio servidor
XMPP y hacer que los mensajes se envíen a través de él, en lugar de
pasar por los servidores de la compañía. Simplemente cambiamos de
mensajero.
¿Cuál sería entonces el recorrido? Escribes el mensaje en tu móvil y
le das a enviar, el programa lo intercepta antes de que llegue a los
servidores de WhatsApp y en su lugar lo envía al servidor XMPP que has
montado tú mismo. Por supuesto va cifrado. Tu amigo, que también tiene
el programa, podrá descifrarlo sin problema.
Pero, ¿cómo se entera el destinatario de que le ha llegado? Muy
fácil. Al mismo tiempo que el programa envía el mensaje al servidor
XMPP, envía también una versión modificada al servidor de WhatsApp. Ese
falso mensaje tiene el mismo número de caracteres (si no lo echaría para
atrás), pero no tiene absolutamente nada que ver con el original. Por
ejemplo, si escribes “hola qué tal”, lo que le llega es “GGGGGGGGGGGG”.
Auténtica basura que a la NSA no le sirve para nada.
Esto es lo que verían WhatsApp y la NSA si accedieran a los mensajes falsos que pasan por sus servidores
Es entonces cuando el servidor de WhatsApp envía el mensaje falso al
móvil de tu amigo, pero, antes de que llegue, Privacy Guard (recuerda
que él también tiene que tenerlo instalado) lo intercepta y lo sustituye
por el mensaje original que está en el servidor XMPP. El destinatario,
por lo tanto, lee exactamente lo que tú querías que leyera. Básicamente,
lo que habéis hecho es darle el cambiazo a WhatsApp.
Suena muy lioso, pero en realidad todo esto también es transparente:
el programa lo hace sin que te des cuenta. Lo único que sí tienes que
hacer, y esto en principio no está al alcance de cualquiera, es montar
un servidor XMPP capaz de gestionar el envío y la recepción de los
mensajes.
¿Y no podría WhatsApp echar abajo el invento?
Claro que sí. La empresa podría tapar los agujeros para que no fuera
tan sencillo averiguar la contraseña y la API de Yowsup, en la que se
basan muchas partes del programa, podría dejar de funcionar. Si lo
hicieran, ¿el trabajo de Pablo y Jaime dejaría de tener sentido? Para
nada. Más bien habrían conseguido su objetivo final, que es mejorar la
seguridad de WhatsApp para que la privacidad del usuario esté más
protegida.
En cualquier caso, por sus antecedentes, cuesta pensar que la empresa
vaya a solventar el problema a corto plazo y, aunque lo hiciera, aún
tendría que dejar un margen para que los usuarios actualicen la
aplicación, durante el cual la debilidad del sistema de contraseñas y el
vulnerable cifrado seguirían representando un peligro para los clientes
con versiones antiguas.
Así que, sí, el tema de la inseguridad en WhatsApp va para largo y no
queda más remedio que recurrir a soluciones de terceros como Privacy
Guard para seguir utilizando la aplicación sin temer que nuestras
conversaciones caigan en manos de terceros.
Periodista
'geek'. Cofundador de Hoja de Router. Colaborador en TecnoXplora
(Antena3.com) y Sesión de Control. Antes en lainformacion.com, Cadena
SER y Tinta Digital. A veces bajo a la mina a picar código.
Fuente http://www.hojaderouter.com/seguridad/dos-espanoles-demuestran-que-whatsapp-no-es-seguro-y-le-anaden-un-blindaje-a-prueba-de-espias/8007