lunes, 11 de noviembre de 2013

Dos españoles demuestran que WhatsApp no es seguro y le añaden un blindaje a prueba de espías

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)
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
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 precisamente por ello uno de los menos seguros. Esto ya es preocupante, pero espera que ahora viene lo peor.
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
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
Logo de WhatsApp Privacy GuardSi 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
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 Sánchez presenta sus hallazgos en el congreso NoConName 2013
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
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 utilizan GTalk y 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
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.

No hay comentarios :

Publicar un comentario

m