DEFEATING WHATSAPP’S

Defeating

s

`

Lack of Privacy
Defeating WhatsApp’s Lack of Privacy

¿	
  QUIENES	
  SOMOS	
  ?
Jaime Sánchez
- Security Researcher
- Executive MBA, CISS...
Defeating WhatsApp’s Lack of Privacy

FELICIDADES	
  PABLO!	
  :)

NoConName 2013
Defeating WhatsApp’s Lack of Privacy

WHATSAPP
- WhatsApp es una aplicación de mensajería
multiplataforma que permite envi...
Defeating WhatsApp’s Lack of Privacy

DATOS	
  Y	
  ESTADÍSTICAS

NoConName 2013
Defeating WhatsApp’s Lack of Privacy

DATOS	
  Y	
  ESTADÍSTICAS

Más usuarios que Twitter ...
NoConName 2013
Defeating WhatsApp’s Lack of Privacy

HISTORIAL	
  DE	
  ERRORES	
  SEGURIDAD
- Mensajes en claro (WhatsApp Sniffer)
- Pas...
Defeating WhatsApp’s Lack of Privacy

HISTORIAL	
  DE	
  ERRORES	
  SEGURIDAD
- El 13 de Enero de 2012 la aplicación fue r...
Defeating WhatsApp’s Lack of Privacy

PROHIBICIONES
Ara bia Sa udí ha a menazado con
prohibir aplicaciones como Skype,
Wha...
Defeating WhatsApp’s Lack of Privacy

PROHIBICIONES
El gobierno de la provincia de Sind en Pakistán ha
develado su plan de...
Defeating WhatsApp’s Lack of Privacy

ESPIONAJE
- Los informes y documentos filtrados por Edward
Snowden en junio de 2013 i...
Defeating WhatsApp’s Lack of Privacy

¿Será WhatsApp una de estas empresas?

La Agencia Nacional de Seguridad estadouniden...
Defeating WhatsApp’s Lack of Privacy

LA	
  IDEA

NoConName 2013
Defeating WhatsApp’s Lack of Privacy

OBJETIVOS
- El principal objetivo de esta investigación es añadir una nueva capa de ...
Defeating WhatsApp’s Lack of Privacy

OBJETIVOS
- Esta técnica ha sido desarrollada para poder ser utilizada de forma
comp...
Defeating WhatsApp’s Lack of Privacy

INSIDE	
  THE	
  WORLD	
  OF	
  
WHATSAPP

NoConName 2013
Defeating WhatsApp’s Lack of Privacy

FUNXMPP
- WhatsApp utiliza una versión propia/modificada de XMPP (RFC 6120 y RFC 6121...
Defeating WhatsApp’s Lack of Privacy

FORMATO	
  Y	
  CONVERSIONES
- Todas las palabras reservadas utilizadas, han sido su...
Defeating WhatsApp’s Lack of Privacy

BYTES
- Byte xfc: sequencia de caracteres ASCII que será utilizada como valor. La lo...
Defeating WhatsApp’s Lack of Privacy
57:41
01:02

=>
=>

LOGIN

WA
PROTOCOL VERSION 1.2

f8:05:01:c8:ab:a5:fc:12:69:50:68:...
Defeating WhatsApp’s Lack of Privacy

AUTENTICACIÓN	
  Y	
  CIFRADO
- El acceso de un nuevo dipositivo se produce de la si...
Defeating WhatsApp’s Lack of Privacy

De los creadores de:
- Nunca corras con unas tijeras en la mano
- Nunca corras cerca...
Defeating WhatsApp’s Lack of Privacy

ARE	
  MY	
  MESSAGES	
  SECURE	
  ?

- El algoritmo de cifrado utilizado por WhatsA...
Defeating WhatsApp’s Lack of Privacy

CADA	
  VEZ	
  QUE	
  ALICE	
  CIFRA	
  UN	
  MENSAJE ,	
  DIOS	
  MATA	
  UN	
  GAT...
Defeating WhatsApp’s Lack of Privacy

ATACANDO	
  EL	
  CIFRADO	
  EN	
  WHATSAPP
- Tenemos m1 ⊕ m2 (por la propiedad conm...
Defeating WhatsApp’s Lack of Privacy
Orden!
1.!
2.!
3.!
4.!
5.!
6.!
7.!
8.!
9.!
10.!
11.!
12.!
13.!
14.!
15.!
16.!
17.!
18...
Defeating WhatsApp’s Lack of Privacy

"WhatsApp takes security seriously and is continually thinking of
ways to improve ou...
Defeating WhatsApp’s Lack of Privacy

MORE	
  THEORICAL	
  
IN	
  NATURE	
  ...
NoConName 2013
Defeating WhatsApp’s Lack of Privacy

ANONIMATO
NoConName 2013
Defeating WhatsApp’s Lack of Privacy

NUMEROS	
  VIRTUALES

NoConName 2013
Defeating WhatsApp’s Lack of Privacy

ENVIARTE
MI	
  DNI	
  ??
NoConName 2013
Defeating WhatsApp’s Lack of Privacy

CIFRADO
ADICIONAL
NoConName 2013
Defeating WhatsApp’s Lack of Privacy

FUNCIONAMIENTO
- Hemos comprobado que el cifrado utilizado
para salvaguardar la info...
Defeating WhatsApp’s Lack of Privacy

MENSAJE	
  ENVIADO
- El mensaje “Ola. Q ase” se envía desde el cliente. Nuestro prog...
Defeating WhatsApp’s Lack of Privacy

MENSAJE	
  RECIBIDO
- El proceso de recepción se realiza de forma inversa al de enví...
Defeating WhatsApp’s Lack of Privacy

SIN	
  DESCIFRAR,	
  YOU	
  GONNA	
  GET	
  ...

NoConName 2013
Defeating WhatsApp’s Lack of Privacy

SERVIDORES
EXTERNOS
NoConName 2013
Defeating WhatsApp’s Lack of Privacy

OCULTANDO	
  NUESTROS	
  MENSAJES
- El anterior método nos permitirá cifrar nuestros...
Defeating WhatsApp’s Lack of Privacy

ENRUTANDO	
  LOS	
  MENSAJES
- Se analiza el mensaje “Ola q ase Whatsapeas o q ase” ...
Defeating WhatsApp’s Lack of Privacy

EL	
  SERVIDOR	
  XMPP
- Los mensajes llegan al servidor XMPP:

- Por si queda algun...
Defeating WhatsApp’s Lack of Privacy

POR	
  WHATSAPP	
  SÓLO	
  SE	
  VE	
  ...

NoConName 2013
Defeating WhatsApp’s Lack of Privacy

NoConName 2013
Upcoming SlideShare
Loading in …5
×

Defeating whats app’s lack of privacy

1,397 views

Published on

  • Be the first to comment

Defeating whats app’s lack of privacy

  1. 1. DEFEATING WHATSAPP’S Defeating s ` Lack of Privacy
  2. 2. Defeating WhatsApp’s Lack of Privacy ¿  QUIENES  SOMOS  ? Jaime Sánchez - Security Researcher - Executive MBA, CISSP, CISA y CISM - Ponente en Rootedcon, Nuit du Hack, BH Arsenal, Defcon, DeepSec, BH Sao Paulo etc. - Twitter: @segofensiva - http://www.seguridadofensiva.com Pablo San Emeterio - Ingeniero Informático / I+D Optenet - Master de Seguridad y Auditoría por la UPM, CISA y CISM - Ponente en Rootedcon, NoConName y CiberSeg - Digamos que le gusta el WhatsApp :) - Twitter: @psaneme NoConName 2013
  3. 3. Defeating WhatsApp’s Lack of Privacy FELICIDADES  PABLO!  :) NoConName 2013
  4. 4. Defeating WhatsApp’s Lack of Privacy WHATSAPP - WhatsApp es una aplicación de mensajería multiplataforma que permite enviar y recibir mensajes a través Internet de manera gratuita. - Ha sustituido a los servicios tradicionales de mensajes cortos o sistema de mensajería multimedia. - Disponible para los sistemas operativos iOS, Android, Windows Phone, BlackBerry OS y Symbian. - No existen versiones para Windows, Mac, Linux. Sin embargo existen emuladores para Android permiten el uso de WhatsApp en Windows, Mac o un Navegador web e implementaciones abiertas en python (Yowsup) y php (WhatsAPI). - Se sincroniza automáticamente con la agenda. NoConName 2013
  5. 5. Defeating WhatsApp’s Lack of Privacy DATOS  Y  ESTADÍSTICAS NoConName 2013
  6. 6. Defeating WhatsApp’s Lack of Privacy DATOS  Y  ESTADÍSTICAS Más usuarios que Twitter ... NoConName 2013
  7. 7. Defeating WhatsApp’s Lack of Privacy HISTORIAL  DE  ERRORES  SEGURIDAD - Mensajes en claro (WhatsApp Sniffer) - Password MD5 basado en IMEI o MAC del teléfono utilizado (espía y suplantación de usuarios) - Almacenamiento de cualquier contenido en sus servidores (virus, html etc.) :) - Vulnerabilidad crítica que permitía tomar el control de cualquier cuenta, leer mensajes de otro usuario o enviarlo en su nombre - Almacenamiento en claro de la base de datos - WhatsApp Status: permitía cambiar el estado de cualquier usuario del que se conociera el número de teléfono NoConName 2013
  8. 8. Defeating WhatsApp’s Lack of Privacy HISTORIAL  DE  ERRORES  SEGURIDAD - El 13 de Enero de 2012 la aplicación fue retirada 4 días de la App Store - Aparición de Priyanka para Android - WhatsApp Voyeur: Obtener datos del perfil de un usuario, sin necesidad de usar tu teléfono móvil - No se necesita autorización para enviar mensajes, por lo que cualquier usuario/ bot puede enviarte spam. - Problemas actuales con el cifrado RC4 - etc. NoConName 2013
  9. 9. Defeating WhatsApp’s Lack of Privacy PROHIBICIONES Ara bia Sa udí ha a menazado con prohibir aplicaciones como Skype, WhatsApp o Viber si no alcanza un acuerdo con las compañías propietarias para poder controlar esas tecnologías de comunicación, informó hoy el diario saudí Al Hayat. La Comisión saudí de Comunicaciones, responsable de la organización de las telecomunicaciones y tecnologías informáticas en el país, ha pedido a las compañías de comunicación que se pongan en contacto con los propietarios de esas aplicaciones y estudien la posibilidad de aplicar la ley local de seguridad. NoConName 2013
  10. 10. Defeating WhatsApp’s Lack of Privacy PROHIBICIONES El gobierno de la provincia de Sind en Pakistán ha develado su plan de un bloqueo de tres meses sobre aplicaciones de mensajería como Viber, WhatsApp, Tango, Skype y otras aplicaciones de llamadas y mensajería basadas en Voice Over Internet Protocol en lo que los funcionarios llaman una “interrupción de las actividades terroristas y criminales en la provincia, especialmente en las áreas urbanas”. El ministro de información de Sind, Sharjeel Memon, compartió esta noticia en una rueda de prensa [en] el jueves 4 de octubre de 2013 en la ciudad portuaria sureña de Karachi. El gobierno de Sind está esperando aprobación del gobierno federal en Islamabad. NoConName 2013
  11. 11. Defeating WhatsApp’s Lack of Privacy ESPIONAJE - Los informes y documentos filtrados por Edward Snowden en junio de 2013 indican que PRISM se emplea como un medio para la vigilancia a fondo de las comunicaciones y otras informaciones almacenadas - Los datos que supuestamente la NSA es capaz de obtener gracias a PRISM incluyen correos electrónicos, vídeos, chat de voz, fotos, direcciones IP, notificaciones de inicio de sesión, transferencia de archivos y detalles sobre perfiles en redes sociales - Empresas de Internet como Microsoft, Google, Yahoo, Dropbox, Apple y Facebook se han visto implicadas. - Los objetivos son aquellos ciudadanos que vivan fuera de Estados Unidos, aunque también se incluyen a los ciudadanos estadounidenses NoConName 2013
  12. 12. Defeating WhatsApp’s Lack of Privacy ¿Será WhatsApp una de estas empresas? La Agencia Nacional de Seguridad estadounidense (NSA) espió 60 millones y medio de llamadas en España tan sólo entre el mes de diciembre de 2012 y principios de enero de este año. El pinchazo incluiría tanto llamadas telefónicas como comunicaciones en internet: correos electrónicos, mensajes en redes sociales, etc NoConName 2013
  13. 13. Defeating WhatsApp’s Lack of Privacy LA  IDEA NoConName 2013
  14. 14. Defeating WhatsApp’s Lack of Privacy OBJETIVOS - El principal objetivo de esta investigación es añadir una nueva capa de seguridad y privacidad que garantice que en el intercambio de información entre los integrantes de una conversación tanto la integridad como la confidencialidad no puedan verse afectados por un atacante externo. - Se han definido diferentes pruebas de concepto sobre una jerarquía de niveles de seguridad: * El primer nivel de seguridad implica el cifrado, mediante clave privada, de los mensajes y los datos intercambiados entre dos usuarios. * En un segundo nivel, se dota de cierto nivel de anonimato a la conversación, mediante la utilización de otras cuentas y proxys / nodos intermedios. * Por último, se establece un tercer nivel al modificar el funcionamiento interno de la aplicación, utilizando los servidores de la aplicación como apoya para engañar a la aplicación y poder usar un servidor externo que queramos que gestione nuestros mensajes. NoConName 2013
  15. 15. Defeating WhatsApp’s Lack of Privacy OBJETIVOS - Esta técnica ha sido desarrollada para poder ser utilizada de forma completamente transparente para el usuario. - Para ello es necesario disponer de un teléfono rooteado, o en caso de otras plataformas se ha desarrollado una plataforma basada en Raspberry que actuará como punto de acceso automatizado o se puede utilizar la una VPN. NoConName 2013
  16. 16. Defeating WhatsApp’s Lack of Privacy INSIDE  THE  WORLD  OF   WHATSAPP NoConName 2013
  17. 17. Defeating WhatsApp’s Lack of Privacy FUNXMPP - WhatsApp utiliza una versión propia/modificada de XMPP (RFC 6120 y RFC 6121) llamada FunXMPP. - Sin entrar en más detalles técnicos, es un protocolo de mensajería que utiliza como sintaxis el lenguaje XML: <message from=”01234567890@s.whatsapp.net”         id=”1339831077-7”         type=”chat”         timestamp=”1339848755”>    <notify xmlns=”urn:xmpp:whatsapp”            name=”NcN” />    <request xmlns=”urn:xmpp:receipts” />    <body>Hello</body> </message> - Al ser una aplicación para móviles, la gente de WhatsApp ha intentado reducir el tamaño de los mensajes y la carga del protocolo a lo mínimo. - ¿Cómo lo han hecho? NoConName 2013
  18. 18. Defeating WhatsApp’s Lack of Privacy FORMATO  Y  CONVERSIONES - Todas las palabras reservadas utilizadas, han sido sustituídas por un byte, logrando reducir considerablemente la carga. - FunXMPP utilizada una tabla de conversión para prácticamente todas las palabras reservadas. - Basándonos en esto, utilizando bytes con el formato xnn (nn representa un número hexadecimal), el ejemplo anterior quedaría: <x5d x38=”01234567890@x8a”      x43=”1339831077-7”      xa2=”x1b”      x9d=”1339848755”>   <x65 xbd=”xae”         x61=”NcN” />   <x83 xbd=”xad” />   <x16>Hello</x16> </x5d> - Como podemos ver, las variables no pueden ser sustituídas por representaciones tipo byte al no ser palabras fijas/reservadas. NoConName 2013
  19. 19. Defeating WhatsApp’s Lack of Privacy BYTES - Byte xfc: sequencia de caracteres ASCII que será utilizada como valor. La longitud de la cadena se encuentra en el siguiente byte (longitud máxima de 255). - Byte xfd: sequencia de caracteres ASCII, con la diferencia de que la longitud viene expresada en los siguientes tres bytes (longitud máxima de 16777215). - Byte xf8 y xf9: representación de tipo especial ‘lista’. El número de elementos se encuentra a continuación. Los objetos se cuentan de la siguiente forma:   1      2             3 <message from=”01234567890@s.whatsapp.net”          4      5         id=”1339831077-7”           6    7         type=”chat”             8           9         timestamp=”1339848755”>    <notify xmlns=”urn:xmpp:whatsapp”     |            name=”NcN” />                 |  10    <request xmlns=”urn:xmpp:receipts” /> |    <body>Hello</body>                    | </message> NoConName 2013
  20. 20. Defeating WhatsApp’s Lack of Privacy 57:41 01:02 => => LOGIN WA PROTOCOL VERSION 1.2 f8:05:01:c8:ab:a5:fc:12:69:50:68:6f:6e:65:2d:32:2e:31:30:2e:32:2d:35:32:32:32:00:00 " 0x01 => stream:stream 0xc8 => to 0xab: s.whatsapp.net 0xa5 => resource " 0xfc => String 12caracteres => iPhone-2.10.2-5222 " <stream:stream to=”s.whatsapp.net” resource=”iPhone-2.10.2-5222” /> f8:02:bb " => 0xbb => stream:features f8:04 f8:03:70:31:ca" => 0x70 => message_acks f8:01:9c => 0x9c => receipt_acks f8:03:e4:cb:0c" => 0xe4 => w:profile:picture f8:03:b9:7c:ca " => 0xb9 => status " <stream:features> " " <message_acks enable=TRUE /> " " <receipt_acks /> " " <w:profile:picture type=ALL /> " " <status notification=TRUE /> " </stream:features> 0x31 => enable 0xca => TRUE 0xcb => type 0x7c => notification 0x0c => all 0xca => TRUE f8:08:10:6d:ec:da:fc:0b:33:34:36:38:35:30:32:36:33:37:31:e8:cf " 0x10 => auth 0x6d => mechanism 0xec => WAUTH-1  " user => 34XXXXXXXXX" 0x31 => enable 0xe8 => xmlns " 0xcf => urn:ietf:params:xml:ns:xmpp-sasl " <auth mechanism=”WAUTH-1” user=”XXXXXXXXXXX” " " xmlns=”urn:ietf:params:xml:ns:xmpp-sasl” /> NoConName 2013
  21. 21. Defeating WhatsApp’s Lack of Privacy AUTENTICACIÓN  Y  CIFRADO - El acceso de un nuevo dipositivo se produce de la siguiente manera: 1) El teléfono envía su número via HTTPS a una URL solicitando un código 2) El teléfono recibe el código vía SMS 3) El código es utilizado, de nuevo sobre HTTPS, para obtener el password - Para acceder al sistema, el teléfono enviará: <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" user="XXXXXXXXXXXX" mechanism="WAUTH-1" /> - El servidor responderá con un desafío: <challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">YYYYYYYYYYYYYYYYYYYY </challenge> - El cliente, para responder al desafío, generará una clave usando PKBDF2 (16 iteraciones) con el password, el desafío recibido como salt, y utilizará SHA1 como función hash. Se utilizarán los 20 primeros bytes generados del tipo <numero teléfono> || <20 bytes de respuesta> || UNIX timestamp: <response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">ZZZZZZZZZZZZZ</response> - A partir de este momento, los mensajes van cifrados. NoConName 2013
  22. 22. Defeating WhatsApp’s Lack of Privacy De los creadores de: - Nunca corras con unas tijeras en la mano - Nunca corras cerca de una piscina - Nunca corras cerca de una piscina con unas tijeras en la mano Llega: NUNCA utilices el mismo keystream de RC4 para cifrar dos mensajes diferentes ... NoConName 2013
  23. 23. Defeating WhatsApp’s Lack of Privacy ARE  MY  MESSAGES  SECURE  ? - El algoritmo de cifrado utilizado por WhatsApp es RC4, diseñado por Ron Rivest de la RSA Security en 1987, utilizando la misma clave de cifrado en ambos sentidos. - Es el Stream Cipher más utilizado y fue excluído de los estandares de alta seguridad. Consiste en 2 algoritmos: Key Scheduling Algorithm (KSA) y PseudoRandom Generation Algorithm (PRGA). ¿ Y dónde dices que está el problema ? NoConName 2013
  24. 24. Defeating WhatsApp’s Lack of Privacy CADA  VEZ  QUE  ALICE  CIFRA  UN  MENSAJE ,  DIOS  MATA  UN  GATITO  ... Alice quiere enviar los mensajes cifrados de m1 y m2 a Bob sobre un canal público e inseguro. Alice y Bob comparten la clave k. Dado que Alice es extremadamente vaga (y no tiene conocimientos de stream ciphers), decide utilizar la misma clave para cifrar los dos mensajes. Alicía envía a Bob los mensajes cifrados c1 = m1 ⊕ k y c2 = m2 ⊕ k a Bob por el canal inseguro, y Eve intercepta estos mensajes y calcula c1 ⊕ c2 = m1 ⊕ m2 c1 = m1 ⊕ k c2 = m2 ⊕ k m1 = c1 ⊕ k m2 = c2 ⊕ k REUSED KEY ATTACK c1 ⊕ c2 = m1 ⊕ m2 NoConName 2013
  25. 25. Defeating WhatsApp’s Lack of Privacy ATACANDO  EL  CIFRADO  EN  WHATSAPP - Tenemos m1 ⊕ m2 (por la propiedad conmutativa hemos eliminado k de la ecuación). - Utilizando Crib-Dragging: 1) Deduciremos una palabra que aparezca en los mensajes 2) Codificamos esta palabra a hexadecimal 3) Haremos el XOR de ambos mensajes cifrados 4) Realizamos un XOR de la palabra en hexadecimal(paso 2) en cada posición del resultado del XOR de ambos textos cifrados(paso 3) 5) Cuando consideremos que el resultado anterior es texto legible, consideramos la palabra válida y aumentamos nuestra búsqueda 6) Si el resultado no es texto legible, probamos con la siguiente posición. - Es importante hacer un análisis en base al idioma original de los mensajes en claro. - Gracias a un análisis de frecuencias, utilizaremos las palabras más frecuentes para realizar nuestro ataque. NoConName 2013
  26. 26. Defeating WhatsApp’s Lack of Privacy Orden! 1.! 2.! 3.! 4.! 5.! 6.! 7.! 8.! 9.! 10.! 11.! 12.! 13.! 14.! 15.! 16.! 17.! 18.! 19.! 20.! 21.! 22.! 23.! 24.! 25.! 26.! 27.! 28.! 29.! 30.! Frec.absoluta ! de! 9,999,518 ! la! 6,277,560 ! que ! 4,681,839 ! el! 4,569,652 ! en! 4,234,281 ! y! 4,180,279 ! a! 3,260,939 ! los! 2,618,657 ! se! 2,022,514 ! del! 1,857,225 ! las! 1,686,741 ! un! 1,659,827 ! por! 1,561,904 ! con ! 1,481,607 ! no! 1,465,503 ! una ! 1,347,603 ! su! 1,103,617 ! para! 1,062,152 ! es! 1,019,669 ! al! 951,054! lo! 866,955! como 773,465! más ! 661,696! o! 542,284! pero! 450,512! sus ! 449,870! le! 413,241! ha! 380,339! me ! 374,368! si! 327,480! Frec.normalizada 65545.55 41148.59 30688.85 29953.48 27755.16 27401.19 21375.03 17164.95 13257.31 12173.87 11056.37 10879.95 10238.07 9711.74 9606.18 8833.36 7234.06 6962.26 6683.79 6234.03 5682.77 5069.96 4337.33 3554.60 2953.04 2948.84 2708.74 2493.07 2453.93 2146.58 31.! 32.! 33.! 34.! 35.! 36.! 37.! 38.! 39.! 40.! 41.! 42.! 43.! 44.! 45.! 46.! 47.! 48.! 49.! 50.! 51.! 52.! 53.! 54.! 55.! 56.! 57.! 58.! 59.! 60.! sin! sobre este! ya! entre cuando todo! esta! ser! son ! dos ! también fue! había era! muy ! años hasta desde está! mi! porque qué ! sólo! han ! yo! hay ! vez! puede todos Fuente: http://corpus.rao.es/frec/1000_formas.TXT NoConName 2013 298,383! 289,704! 285,461! 274,177! 267,493! 257,272! 247,340! 238,841! 232,924! 232,415! 228,439! 227,411! 223,791! 223,430! 219,933! 208,540! 203,027! 202,935! 198,647! 194,168! 186,360! 185,700! 184,956! 170,552! 169,718! 167,684! 164,940! 163,538! 161,219! 158,168! 1955.86 1898.97 1871.16 1797.19 1753.38 1686.38 1621.28 1565.57 1526.78 1523.45 1497.38 1490.64 1466.92 1464.55 1441.63 1366.95 1330.81 1330.21 1302.10 1272.74 1221.56 1217.23 1212.36 1117.94 1112.47 1099.14 1081.16 1071.97 1056.76 1036.77
  27. 27. Defeating WhatsApp’s Lack of Privacy "WhatsApp takes security seriously and is continually thinking of ways to improve our product. While we appreciate feedback, we're concerned that the blogger's story describes a scenario that is more theoretical in nature. Also stating that all conversations should be considered compromised is inaccurate" the company said. Respuesta oficial a https://blog.thijsalkema.de/blog/2013/10/08/piercing-through-whatsapp-s-encryption/ WTF! NoConName 2013
  28. 28. Defeating WhatsApp’s Lack of Privacy MORE  THEORICAL   IN  NATURE  ... NoConName 2013
  29. 29. Defeating WhatsApp’s Lack of Privacy ANONIMATO NoConName 2013
  30. 30. Defeating WhatsApp’s Lack of Privacy NUMEROS  VIRTUALES NoConName 2013
  31. 31. Defeating WhatsApp’s Lack of Privacy ENVIARTE MI  DNI  ?? NoConName 2013
  32. 32. Defeating WhatsApp’s Lack of Privacy CIFRADO ADICIONAL NoConName 2013
  33. 33. Defeating WhatsApp’s Lack of Privacy FUNCIONAMIENTO - Hemos comprobado que el cifrado utilizado para salvaguardar la información y la privacidad de nuestras conversaciones es fácil de romper. - ¿ Qué podemos hacer ? Interceptaremos el mensaje de WhatsApp antes de que salga. Descifraremos el mensaje original con nuestra clave y le aplicaremos un algoritmo de cifrado, y después volveremos a cifrarlo con el algoritmo y clave original para no romper la aplicación. - Nuestro esquema de funcionamiento de ahora en adelante será: MODIFICACIÓN EN TIEMPO REAL NoConName 2013
  34. 34. Defeating WhatsApp’s Lack of Privacy MENSAJE  ENVIADO - El mensaje “Ola. Q ase” se envía desde el cliente. Nuestro programa detecta el envío de un texto en claro, y utilizando la clave de sesión de RC4 usada por WhatsApp, descifra el mensaje y extrae el texto. Una vez el texto está en claro, lo cifra con nuestro algoritmo y clave, y vuelve a encapsularlo en el formato original cifrandolo de nuevo con RC4 para no romper el funcionamiento de WhatsApp: HMAC to to - Eliminamos HMAC en el decodificado y volvemos a calcularlo para el envío. Finalmente, el mensaje que abandonará nuestro teléfono móvil. Podemos ver como el nuevo mensaje es diferente al original al llevar una nueva capa de cifrado implementada por nosotros: HMAC NoConName 2013
  35. 35. Defeating WhatsApp’s Lack of Privacy MENSAJE  RECIBIDO - El proceso de recepción se realiza de forma inversa al de envío. - En la captura podemos observar como recibimos un mensaje, aparentemente normal, de WhatsApp, con la diferencia de que al descifrarlo con la clave RC4, el texto que nos encontramos es completamente ilegible.: HMAC - Utilizando la misma clave privada y algoritmo, nuestro programa se encargará de descifrar el mensaje de texto y volver a componer el mensaje original con el cifrado RC4 para que nuestro WhatsApp sea capaz de procesarlo. - El mensaje final podemos ver que es ‘completamente’ legible “aqi cifrandi msnjes”. HMAC NoConName 2013
  36. 36. Defeating WhatsApp’s Lack of Privacy SIN  DESCIFRAR,  YOU  GONNA  GET  ... NoConName 2013
  37. 37. Defeating WhatsApp’s Lack of Privacy SERVIDORES EXTERNOS NoConName 2013
  38. 38. Defeating WhatsApp’s Lack of Privacy OCULTANDO  NUESTROS  MENSAJES - El anterior método nos permitirá cifrar nuestros mensajes para que otros atacantes capaces de interceptar nuestro tráfico no sean capaces de adivinar el contenido de los mensajes. - Pero, ¿ y si queremos que el tráfico directamente no pase por los servidores de WhatsApp ?. SERVIDOR DE MENSAJERÍA XMPP NoConName 2013
  39. 39. Defeating WhatsApp’s Lack of Privacy ENRUTANDO  LOS  MENSAJES - Se analiza el mensaje “Ola q ase Whatsapeas o q ase” y se procede a decifrar el mensaje enviado por el cliente de WhatsApp. - Se extrae el mensaje en texto claro y se empaqueta para enviar al servidor XMPP: <destinatario>¿<message_id>¿<mensaje_a_enviar> HMAC to - Inmediatamente se procede a enviar sustituir el texo original del mensje por el caracter de relleno que hayamos decidido utilizar. - De esta forma conseguimos que a través de los servidores de mensajería de WhatsApp sólo pasen caracteres de relleno y nunca el texto original. - Este paso es necesario para poder recibir correctamente el mensaje en el WhatsApp de destino. NoConName 2013
  40. 40. Defeating WhatsApp’s Lack of Privacy EL  SERVIDOR  XMPP - Los mensajes llegan al servidor XMPP: - Por si queda alguna duda, los mensajes recompuestos corresponden a los enviados desde nuestro móvil: - Finalmente en el destinatario se recibirá el mensaje de los servidores de WhatsApp con los caracteres de relleno. - Automáticamente procederá a bloquear el mensaje y consultará al servidor XMPP si existe algún mensaje con el correspondiente <message_id>, para proceder a reensamblarlo y hacerselo llegar al cliente. NoConName 2013
  41. 41. Defeating WhatsApp’s Lack of Privacy POR  WHATSAPP  SÓLO  SE  VE  ... NoConName 2013
  42. 42. Defeating WhatsApp’s Lack of Privacy NoConName 2013

×