WhatsApp multidispositivo: Sincronizando los datos entre dispositivos – Parte 2
WhatsApp multidispositivo: Sincronizando los datos entre dispositivos – Parte 2

WhatsApp multidispositivo: Sincronizando los datos entre dispositivos – Parte 2

Este post pertenece a una serie dedicada a WhatsApp multidispositivo. Una breve explicación de la misma con algunas notas aclaratorias se incluye al comienzo del primer artículo.

Entradas de la serie:

En el post anterior, vimos cómo funcionaba la vinculación de WhatsApp con otros dispositivos o con “WhatsApp Web” antes de los cambios que están por venir y cuáles son las principales novedades de la nueva arquitectura.

Al introducir los dispositivos vinculados como parte de la cuenta de WhatsApp de cada usuario, los ingenieros se enfrentaron al reto de seguir manteniendo la seguridad y privacidad de los mensajes de extremo a extremo, pero a su vez poder mantener el historial de mensajes y otros ajustes sincronizados entre los distintos dispositivos.

Veamos cómo han resuelto ambas cuestiones.

Contenidos

Manteniendo la privacidad de los mensajes

Cuando se establece un chat individual entre dos personas, se configura una sesión cifrada entre los dispositivos de ambas personas.

La nueva arquitectura multidispositivo de WhatsApp, en la que cada usuario tiene varios dispositivos, requiere que cada mensaje sea enviado mediante sesiones cifradas N+M-1 veces, siendo N el número de dispositivos del destinatario y M el número de dispositivos del emisor.

Cada mensaje es cifrado utilizando las claves de cifrado extremo a extremo establecidas con cada dispositivo y los mensajes sólo serán almacenados en el servidor hasta que son descargados en cada dispositivo.

Este sistema aumentará exponencialmente el número de mensajes intercambiados, y por extensión, la carga de trabajo de los servidores de WhatsApp. Donde antes se enviaba un único mensaje, ahora se enviarán varias copias del mismo, con un máximo de 7, pues se establece en 4 el máximo de dispositivos asociados a cada cuenta.

Ciclo de vida de un mensaje en la arquitectura actual
Imágen que describe el envío de mensajes en la arquitectura multi-dispositivo
Ciclo de vida de un mensaje en la arquitectura multidispositivo

Sincronizando el historial y los ajustes entre los distintos dispositivos.

Dado que un requisito principal de esta nueva arquitectura es que la experiencia del usuario entre sus distintos dispositivos sea consistente, se hace necesaria la existencia de un mecanismo de sincronización entre ellos.

El mecanismo que han desarrollado incluye tanto el historial de mensajes cómo los datos de configuración de la cuenta, entre los que se encuentran los nombres de los contactos, si un chat está archivado o no, o los mensajes marcados como favoritos.

Respecto al historial de mensajes, cuando se enlaza un nuevo dispositivo vinculado, el dispositivo principal (el teléfono móvil) prepara un paquete con todos los mensajes recientes, y los envía al dispositivo vinculado. En las pruebas que he realizado, los mensajes enviados correspondían al último año.

Este paquete va cifrado con una clave simétrica, y dicha clave es remitida al dispositivo vinculado a través de un mensaje normal, cifrado de extremo a extremo. Una vez el dispositivo vinculado ha descargado, descifrado y almacenado de forma segura los mensajes, las claves son eliminadas.

Desde ese instante, el dispositivo vinculado accede a los mensajes almacenados en su propia base de datos local. Además, el dispositivo recibirá una copia de todos los mensajes enviados desde ese instante, tal y como ya expliqué en el apartado anterior.

Sin embargo, no sólo los mensajes necesitan ser sincronizados. Todas aquellas opciones de configuración que afectan de forma general a la cuenta, deben ser compartidas entre todos los dispositivos. Y estas opciones deben ser sincronizadas en el mismo instante en que se produzca cualquier cambio en cualquiera de ellas.

Para resolver esto, WhatsApp ha implementado un mecanismo que almacena estos datos en sus servidores, de tal forma que todos los dispositivos asociados a la cuenta puedan consultarlos y actualizarlos. Según dicen, los datos están cifrados con claves que cambian con frecuencia y que sólo están accesibles para los dispositivos de la cuenta.

En el siguiente post de esta serie (PARTE 3), veremos la nueva funcionalidad que permite el cifrado extremo a extremo de las copias de seguridad almacenadas en la nube. Si te perdiste el post anterior (PARTE 1), en él explico los fundamentos de la nueva arquitectura multidispositivo de WhatsApp.

Espero el post os haya gustado y como siempre, os animo a enviarme vuestros comentarios y sugerencias a través de este blog o a través de mi cuenta de twitter (@peritotec).

Y si necesitáis un perito informático colegiado, podéis conocer más sobre mí y los servicios que presto a través de mi página web www.peritotecnologico.net

Fuentes:
https://engineering.fb.com/2021/07/14/security/whatsapp-multi-device/
https://www.whatsapp.com/security/WhatsApp_Security_Whitepaper_v4_Preview.pdf

3 thoughts on “WhatsApp multidispositivo: Sincronizando los datos entre dispositivos – Parte 2

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.