170 likes | 804 Views
Protocolo de Aplicación WhatsApp. 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
E N D
Protocolo de AplicaciónWhatsApp 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
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.
¿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.
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.
XMPP Arquitectura • Generalmente, XMPP se implementa y se usa como una arquitectura cliente-servidor 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
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.
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 extensiones del protocolo tales como: seguridad, intercambio de ficheros, soporte de VoIP, presencia, etc.
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.
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 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.
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.
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. 14
Bibliografía • http://www.elandroidelibre.com/2013/01/comparativa-de-servicios-de-mensajeria-line-vs-WhatsApp-vs-chaton-2-0.html • http://www.xmpp.org • http://oriolrius.cat/blog/wp-content/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-su-seguridad-pwn3d.html • https://github.com/venomous0x/WhatsAPI/issues/278