Así funciona WhatsApp técnicamente: el servicio de mensajería más popular del mundo por dentro

Reportajes

WhatsApp es el servicio de mensajería instantánea más popular del momento. Cada día más de mil millones de personas lo utilizan para intercambiar mensajes, notas de voz, imágenes, conservar de forma individual o en grupos y recurrir al resto de funciones que ofrece el software.

Pero… ¿Alguna vez te has preguntado cómo funciona WhatsApp técnicamente? Es decir, cómo es la tecnología que nos permite mantener conversaciones con personas que estén en cualquier lugar del mundo de una forma tan rápida y segura (algo de lo que no siempre ha podido presumir el servicio).

Cómo funciona WhatsApp técnicamente

WhatsApp hace las cosas de forma diferente a otros servicios de este tipo y también de cualquier red social. Para empezar, el proceso de registro y activación es muy transparente. No es necesario disponer de una dirección de email o similar, solo un teléfono móvil compatible (prácticamente cualquier iPhone o Android) y una línea de teléfono activa.

Si cumples estos requisitos lo único que debes hacer es descargar la aplicación desde la Play Store o App Store de forma completamente gratuita, abrirla y seguir un pequeño asistente de activación. El paso más importante de este asistente es introducir el número de teléfono que vas a utilizar y confirmarlo con el código que recibirás por SMS o a través de una llamada de teléfono.

FunXMPP, una versión propia del protocolo XMPP

El funcionamiento de WhatsApp se basa en FunXMPP, una variante de XMPP que la propia compañía ha desarrollado para hacer que los mensajes que viajan entre los móviles de los usuarios tengan una peso menor. Gracias a esto el proceso de envío y recepción necesita menos recursos, tanto por parte de los usuarios, como por parte de la empresa que cada día debe gestionar miles de millones de mensajes.

El protocolo FunXMPP utiliza como sintaxis el lenguaje XML. Este tipo de sintaxis genera un determinado formato con una serie de datos para cada mensaje que se envía desde el móvil del usuario para que los servidores del servicio sepan en todo momento de qué dispositivo ha salido, a cuál se dirige, la fecha y hora de envío y también el mensaje en sí. Además, cada mensaje tiene un identificar único para que trabajar con él sea más sencillo.

Protocolo FunXMPP

En estos archivos XML, es donde WhatsApp ha metido mano para reducir su peso y que todo el proceso de envío/recepción sea mucho más rápido; además de permitirles descongestionar sus servicios. A diferencia del protocolo original, FunXMPP no pone un nombre completo e identificable a cada variable que envía. En su lugar utiliza variables con formato \xnn, donde las n son sustituidas por números.

Este tipo de archivos viajan encriptados desde el móvil que envía hasta el que recibe acompañados de una serie de datos que le permitirá a WhastApp gestionarlos correctamente. Estos datos comienzan con la identificación de la versión del protocolo que utiliza y también con una solicitud de conexión a los servidores del servicio de mensajería. En este punto también se identifica el dispositivo desde el que fue enviado y la versión de la app instalada.

Una vez hecho esto, entra en juego el mecanismo de autenticación. Este proceso identifica al usuario y lo autoriza a enviar el mensaje al móvil del receptor. Cuando este lo recibe, es desencriptado utilizando la clave que guarda el dispositivo y gracias al formato XML que explicaba antes, la app puede interpretar el mensaje y mostrarlo en la conversación correspondiente.

Cómo ha sido desarrollado WhatsApp

WhatsApp está programado en Erlang, una lenguaje de programación orientado a la concurrencia, algo que imprescindible en un servicio de chat en tiempo real en el que sus creadores confiaban y esperaban conseguir millones de usuarios como finalmente ha ocurrido. En cuanto a los servidores, la compañía optó en su momento por utilizar FreeBSD como sistema operativo, acompañado de tecnologías como PHP y Yaws como servidor web.

Cuando se envía una foto, un vídeo o cualquier otro tipo de contenido son cifrados con los sistemas Whisper y subidos al servidor HTTP de la herramienta y después son enviados al destinatario. Todos los contenidos enviados a través de la herramienta son cifrados en BASE 64 y RADIX 64 tumbinals.

Un método de activación diferente y la primera medida de seguridad

Este proceso de activación es, al mismo tiempo, la primera medida de seguridad que ofrece el servicio. Nadie podrá activar una cuenta con tu número de teléfono sin acceso físico a tu dispositivo. Siempre necesitará conocer el código que WhatsApp envía por SMS o por llamada y éste siempre llegará a tu número de teléfono. Además, tampoco podrá activar una cuenta ya existente en otro dispositivo sin volver a confirmarla con un nuevo código que, otra vez, únicamente llega al número de teléfono asociado.

Una vez verificada la cuenta con el código recibido, tu número de teléfono se convertirá automáticamente en una cuenta de WhatsApp y todos los usuarios que tengan tu número guardado en la agenda de su móvil podrán verte entre la lista de contactos de WhatsApp e iniciar una conversación.

Contactos de WhatsApp

Esta es otra de las principales diferencias de la app de mensajería frente a otras opciones del mercado o lo era inicialmente, ya que en la actualidad muchas otras aplicaciones funcionan con este modelo.

Gracias a esta forma de funcionar tan orgánica, puedes encontrar a tus contactos de una forma muy rápida. No tendrás que pedirles que te digan su nombre de usuario o el email que han utilizado para acceder al servicio.

Solo tienes que activar tu cuenta y al instante podrás iniciar conversaciones con todas las personas que tengas su número guardado en la agenda del móvil y sean también usuarias del servicio.

Aunque como has visto, no tendrás que recordar estos datos, cuando activas una cuenta en WhatsApp el servicio te asigna un nombre de usuario de forma automática. Este nombre tiene el mismo formato para todos los usuarios y es el número de teléfono seguido de @s.whatsapp.net (XXXX@s.whatsapp.net).

Además, también asigna una contraseña de forma interna con la que reconoce el dispositivo. Inicialmente utilizaba el IMEI de los dispositivos y debido a la popularidad de los terminales Dual-SIM empezaron a utilizar la dirección MAC del chip WiFi. En al actualidad esto ha vuelto a cambiar y ahora utilizando un identificador único que generan los sistemas operativos móviles basados en el terminal sobre el que corra la app y el nombre del paquete de la misma.

Conservaciones seguras y sin almacenamiento de datos en los servidores de la app

En el pasado se escribieron ríos de tinta asegurando que WhatsApp no era una app segura. Esto era una completa realidad, pero en la actualidad la cosa ha cambiado bastante y WhatsApp se ha puesto las pilas en cuanto a seguridad.

Una de las medidas que ha disparado la seguridad de la herramienta fue la llagada de las conversaciones cifradas punto a punto. Gracias a esta medida, los mensajes, los archivos adjuntos, las llamadas de audio y las videollamadas son encriptados en el dispositivo emisor utilizando una clave de cifrado que cambia con cada uso, pasan por los servidores de WhatsApp y no son desencriptados hasta llegar al móvil de destino donde está la clave de desencriptado de los mensajes.

Comprobar código de cifrado de WhatsApp

Este modo de funcionar evita que nadie pueda leer los mensajes o ver los archivos que se envían a través del servicio. Evita los ataques de tipo de Man In The Middle y también cualquier otro tipo de interceptación de tráfico. Además, es importante mencionar que ni la propia compañía puede leer o ver los mensajes enviados y recibidos por los usuarios.

Puedes comprobar si el cifrado está funcionando correctamente en cada conversación tocando sobre el nombre de la persona en la parte superior de la pantalla de conversación y después accediendo al apartado Cifrado. Ahí verás la clave de cifrado y también un código QR que le puedes dar a la otra persona para que verifique si el código corresponde con el suyo. En caso afirmativo, la conversación estará siendo perfectamente cifrada, algo que ocurre en el 99,99 % de los casos en la actualidad.

En cuanto a la intervención de los servidores de WhatsApp en las comunicaciones, la compañía ha optado por no almacenar datos de forma prolongada salvo los referidos a las cuentas de usuarios y los estados de WhatsApp que están visibles durante 24 horas tras su publicación. El resto de mensajes y archivos adjuntos se guardan en los servidores el tiempo mínimo necesario para ser entregados al usuario de destino y una vez entregados son borrados de los servidores.

Servidores WhatsApp

Los servidores funcionan únicamente de intermediarios para realizar la transferencia de los datos y también para facilitar el contacto entre la cuenta del emisor y del receptor. Además, también intervienen para enviar notificaciones y las señales de confirmación necesarias para el check, doble check y check azul en caso necesario.

En el caso de los grupos o las listas de difusión el funcionamiento es muy similar. Las conversaciones también son encriptadas en el dispositivo de la persona que envía el mensaje. Viajan hasta los servidores de WhatsApp y desde ellos los mensajes y archivos adjuntos son enviados a todas las cuentas que forman parte del grupo o lista de difusión. Cuando son entregados se desencriptan en los propios móviles destinatarios.

Si quieres profundizar mucho más en el funcionamiento del encriptado punto a punto que utiliza WhatsApp, puedes encontrar la información detalla en este documento que la empresa ha publicado.

Compresión para envíos más rápidos y con menor consumo de datos

El envío de fotos, vídeo y notas de audio es muy rápido en WhatsApp y genera un tráfico de datos bastante reducido. Para conseguir esto, WhatsApp aplica compresión a todas las fotos, vídeos, notas de voz, llamadas y videollamadas que se envían o realizan a través del servicio tal y como explicamos en este artículo sobre los megas que gasta WhatsApp.

Teniendo en cuenta que la mayoría de archivos que se envían a través de la plataforma son visualizados o reproducidos una única vez y que se hace desde un teléfono móvil, la compresión es bastante agresiva. Esto ayuda a conseguir una mejor experiencia de uso del servicio al reducir el tiempo de espera y también el consumo de datos.

Aunque recuerda que si necesitas enviar una foto o un vídeo para algún fin diferente a ser visualizado en WhatsApp es mucho más recomendable que no lo envíes a través del servicio de mensajería instantánea y optes por otra opción que no aplique una compresión de este tipo que supone pérdida de calidad.

Escrito por Manu Iglesias

Fuente > ADSLZone

Continúa leyendo
  • Arturo Rivas

    Buen artículo, muy completo y minucioso. Sólo una pega: cuando dices que se usa la dirección MAC, esto era así hace años pero ahora mismo no es posible ni en iOS ni en lo últimas versiones de Android. Han cortado el acceso a la MAC desde una aplicación por temas de privacidad y lo que se hace uso de un identificador único que generan los sistemas operativos en base al terminal y al nombre del paquete de la aplicación.

    • Antonio Quesada

      Correcto, buen apunte

    • Gracias por el aporte Arturo 😉

  • Sergio Sanz

    Al leer el titular no sabía si me iba a encontrar un artículo generalista o más bien técnico. Me alegro que haya sido este último. ¡Buen trabajo!