Protocolo de Aplicación WhatsApp Mónica Maset Navarro 1

Protocolo de Aplicación
WhatsApp
1
1
Mónica Maset Navarro
Indice



Introducción
¿Qué es WhatsApp?
XMPP
Protocolo
 Arquitectura
 Direcciones
 XML
 Pasarela
 Seguridad en las comunicaciones
 Mensajería instantánea




Problemas de seguridad WhatsApp
WhatsApp vs. ChatOn vs. Line
Bibliografía
2
Introducción


En este trabajo pretendemos explicar el
funcionamiento de la aplicación de mensajería
instantánea WhatsApp a nivel de red, así como
compararlo con otras aplicaciones para ver sus
pros y sus contras.
Con la mensajería instantánea se pretende que la
distribución y/o intercambio de información sea
inmediata y segura. Para ello se utilizan
protocolos, en el caso de WhatsApp se utiliza el
XMPP.
3
¿Qué es WhatsApp?



WhatsApp messenger Inc., fue fundada por Jan Koronado y
por Brian Acton. La compañía tiene su sede en Silicon
Valley.
WhatsApp es un software propietario multiplataforma de
mensajería instantánea para smartphones. Además del
envío de texto, permite la transmisión de imágenes, video y
audio, así como la localización del usuario siempre y cuando
exista la posibilidad. La aplicación utiliza la red de datos
del dispositivo móvil en el que se esté ejecutando, por lo
tanto funciona conectada a Internet a diferencia de los
servicios tradicionales de mensajes cortos o el sistema de
mensajería multimedia.
La aplicación WhatsApp está disponible para los sistemas
operativos Windows Phone, iOS, BlackBerry OS, Android, y
los dispositivos que utilizan Symbian de Nokia.
4
XMPP
Protocolo


XMPP es un protocolo abierto basado en el estándar XML para el intercambio en
tiempo real de mensajes y presencia entre dos puntos en Internet. La principal
aplicación de la tecnología XMPP es una plataforma extensible de mensajería y
una red de MI (Mensajería Instantánea).
Carácterísticas:
Abierto: es gratuito. Existen múltiples implementaciones de código abierto para
Servidores XMPP, como numerosos clientes y librerías de desarrollo.
 Libre: se puede ver cómo funciona, y además el usuario tiene la libertad de
implementarlo él mismo, la libertad de adaptarlo a sus necesidades, sin necesitar la
aprobación de nadie.
 Extensible: usando el potencial del lenguaje XML, cualquiera puede extender el
protocolo de XMPP para una funcionalidad personalizada.
 Descentralizado: cualquiera puede montar su propio servidor de XMPP.
 Seguro: Soporta seguridad en la capa de transporte y cualquier servidor de XMPP
puede ser aislado de la red pública XMPP.


Las RFCs que definen el actual protocolo XMPP son las siguientes:




RFC 3920, especifica las características principales del protocolo XMPP.
RFC 3921, define los servicios de mensajería instantánea y de presencia previstos
en XMPP.
RFC 3922, que define una transposición de XMPP a CPIM (RFC 3860, Common
Profile for Instant Messaging);
RFC 3923, que define un mecanismo extremo a extremo de firma y cifrado de los
objetos.
5
XMPP
Arquitectura

Generalmente, XMPP se implementa y se usa como una arquitectura clienteservidor descentralizada.
Figura: Arquitectura cliente-servidor descentralizada

Cuando enviamos un mensaje XMPP a algún contacto, el cliente XMPP se conecta
a nuestro servidor XMPP, y éste se conecta directamente al servidor XMPP de
nuestro contacto, sin realizar múltiples saltos.
Figura: Arquitectura XMPP
6
XMPP
Direcciones


Cada entidad XMPP necesita tener su propia dirección, llamada
JabberID (JID). La JID tiene el mismo formato que las direcciones de
correo, usuario@dominio.
En el caso de WhatsApp el JID (Jabber ID) utilizado es la
concatenación entre el código del país y el número de teléfono mientras
que la creación de la contraseña depende de la plataforma .
Ejemplo JID =34999999999@whatsapp.net
 Ejemplo de generación de contraseña:


Android, utiliza el IMEI (un código de identificación único para
cada teléfono) invertido.
clave cifrada = Hash md5(strrev(‘your-imei-goes-here’))

iOS, utiliza la dirección MAC de la tarjeta wifi repetida dos
veces.
clave cifrada = Hash md5(AA:BB:CC:DD:EE:FFAA:BB:CC:DD:EE:FF)
MD5, Message-Digest Algorithm 5, Algoritmo de Resumen del
Mensaje 5, es un algoritmo de reducción criptográfico de 128 bits
ampliamente usado.
7
XMPP
XML


XMPP es en esencia una tecnología para transmitir XML. Una vez
establecida la conexión podemos intercambiar mensajes
asincrónicamente con el servidor.
Tipos de etiquetas XML para transmitir los diferentes tipos de mensaje





Stream: Es la unidad contenedora de una secuencia de
mensajes XMPP.
Message: Sirve para enviar mensajes entre los usuarios.
Presence: Para informar la presencia de los usuario. Esto
incluye cuando se conectan, desconectan, cambian de estado o
de nombre.
Iq: Se utiliza para la transmisión de comandos internos. a
nueva conexión, informar de errores y cosas que no tienen nada
que ver con los usuarios.
XEP: Son el conjunto de especificaciones que extienden las
diferentes etiquetas que el protocolo soporta. Por ejemplo, el
bloque <presence> es un subconjunto de directivas IQ
empleadas para el control de presencia. Es donde se definen las
8
XMPP
Pasarela


La red puede tener múltiples clientes y servidores que se
comuniquen por XMPP pero, además, puede contar con una
serie de pasarelas o gateways que traducen de XMPP a otros
protocolos de mensajería instantánea de diferentes redes como
Windows Live MEssenger, ICQ, Yahoo! Messenger, SMS, Email
u otros. Es posible, por tanto, comunicar usuarios de redes
XMPP con redes de otros protocolos de mensajería instantánea,
y viceversa, siempre que existan dichos gateways.
Los clientes XMPP utilizan el puerto TCP 5222 para iniciar
sesión.
9
XMPP
Seguridad en las comunicaciones





Las comunicaciones XMPP entre clientes y servidores están
implementadas con seguridad principalmente a través de dos
mecanismos: El protocolo TLS aplicado a la capa de transporte
y el protocolo SASL aplicado a la capa de seguridad y
autenticación simple.
El protocolo TLS es un protocolo para establecer una conexión
segura entre un cliente y un servidor, o entre dos servidores.
TLS es capaz de autenticar en ambos lados de la comunicación,
y crea una conexión cifrada entre los dos.
Si las conversaciones no estuvieran cifradas sería muy fácil un
ataque y podría hacer que se interceptaran de forma fácil las
conversaciones.
Este tipo de ataques son muy simples, con una herramienta de
análisis de redes y protocolos como puede ser Wireshark y la
aplicación específica para WhatsApp llamada WhatsApp Xtract.
SASL provee a XMPP de un método generalizado para la
10
autenticación.
XMPP
Mensajería instantánea


Los mensajes son la parte más importante de cualquier sistema
de mensajería instantánea.
XMPP es un protocolo muy orientado a los mensajes, que
pueden ser de seis tipos diferentes:
 Normal: que serían mensajes parecidos a los del correo
electrónico.
 Chat: mensajes persona a persona que serían los mensajes
utilizados en una conversación entre dos personas.
 Groupchat: mensajes enviados a un grupo de personas.
 Headline: que serían los mensajes de marquesina.
 Error: para los mensajes de error.
 Jabber:x:oob: para las conexiones directas entre clientes
para envío de archivos.
11
Problemas seguridad WhatsApp


Cómo se ha comentado con anterioridad, se descubre cómo se
genera la contraseña de acceso, mediante el código del dispositivo
IMEI en caso del sistema Android y la dirección MAC de la
tarjeta wifi en iOS lo que puede provocar el robo de las cuentas.
La versión de Android para WhatsApp, guarda un fichero
adicional que funciona como copia de seguridad (backup). Se
supone que ese fichero está cifrado con el algoritmo
AES(Advanced Encryption Standard) mediante una clave de 192
bits .Se plantean dos problemas. El primero es que la clave está
insertada en el propio paquete de software de WhatsApp. Y el
segundo es que todos los móviles Android del mundo utilizan la
misma clave. Ni siquiera añaden algún factor dependiente del
móvil. Esta es la clave:
346a23652a46392b4d73257c67317e352e3372482177652c
12
WhatsApp vs. ChatON vs. LINE


WhatsApp en la actualidad tiene la hegemonía de
los clientes de mensajería para smartphone, por ser
el pionero en este tipo de mensajería. Aunque hay
varias aplicaciones que le han querido plantar cara,
pero sólo unas pocas le siguen.
Queremos destacar como rivales de WhatsApp a
LINE y ChatON 2.0. El por qué es fácil, la primera
por ser la que más terreno le ha comido en usuarios
a WhatsApp, posicionándose como una alternativa
real y palpable, y ChatOn porque no podemos
obviar que también tiene una importante cuota de
usuarios ya que se distribuye con terminales
Samsung, principal fabricante en estos momentos
de terminales Android.
13
WhatsApp vs. ChatON vs. LINE

Así que vamos a tratar de analizar cuales son las ventajas y las
desventajas que tienen cada uno de ellos.
WhatsApp
ChatON
LINE
VoIP
NO
SI
SI
Tablet
NO
SI
SI
Cliente Web
NO
SI
SI
Gratuito
NO
SI
SI
Multiplatafor
ma
SI
SI
SI
Consumo bat.
Normal
Bastante
Mucha
100 Millones
2 Millones
89 Millones
Muy buena
Buena
Regular
Usuarios
Int. Usuario
14
Bibliografía







http://www.elandroidelibre.com/2013/01/comparativa-deservicios-de-mensajeria-line-vs-WhatsApp-vs-chaton-2-0.html
http://www.xmpp.org
http://oriolrius.cat/blog/wpcontent/uploads/2009/10/Oreilly.XMPP.The.Definitive.Guide.May
.2009.pdf
http://www.whatsapp.com
http://es.wikipedia.org/wiki/WhatsApp
http://www.securitybydefault.com/2011/03/whatsapp-y-suseguridad-pwn3d.html
https://github.com/venomous0x/WhatsAPI/issues/278
15