Suscríbete para recibir notificaciones de nuevas publicaciones:

Cómo Cloudflare verifica el código que los usuarios reciben de WhatsApp Web

2022-03-10

4 min de lectura
Esta publicación también está disponible en English, 繁體中文, Français, Deutsch, 日本語, 한국어 y 简体中文.

¿Cómo sabes que el código que descarga tu navegador web cuando visitas un sitio es el código que el sitio web quería que ejecutaras? A diferencia de una aplicación móvil descargada de una tienda de aplicaciones de confianza, la web no ofrece el mismo grado de garantía de que el código no ha sido manipulado. Hoy, estamos encantados de asociarnos con WhatsApp para ofrecer un sistema que garantiza a los usuarios que el código que se ejecuta cuando visitan WhatsApp en la web es el código legítimo de WhatsApp.  

How Cloudflare verifies the code WhatsApp Web serves to users

El aumento del uso de WhatsApp en navegadores y el creciente número de usuarios en riesgo, entre ellos periodistas, activistas y defensores de los derechos humanos, motivaron a WhatsApp a tomar medidas para ofrecer garantías a los usuarios que utilizan la versión para navegador. Se pusieron en contacto con nosotros para que les ayudáramos a elevar los estándares contra terceros que pretenden poner en riesgo o manipular de alguna manera el código responsable del cifrado de extremo a extremo de los mensajes entre los usuarios de WhatsApp.

¿Cómo funcionará? Cloudflare guarda un hash del código que los usuarios de WhatsApp deben ejecutar. Cuando los usuarios ejecutan WhatsApp en su navegador, la extensión WhatsApp Code Verify compara un hash de ese código que se está ejecutando en su navegador con el hash que tiene Cloudflare, lo que les permite ver fácilmente si el código que se está ejecutando es el que debería ser.

La idea en sí, comparar los hash para detectar la manipulación o incluso los archivos corruptos, no es nueva, pero sí lo es automatizarla, implementarla a escala y asegurarse de que "funciona" para los usuarios de WhatsApp. Dado el alcance de WhatsApp y la confianza implícita depositada en Cloudflare, queremos explicar en detalle cómo funciona realmente este sistema desde una perspectiva técnica.

Antes de entrar en materia, hay un aspecto importante que hay que señalar de manera explícita. Cloudflare ofrece un parámetro de auditoría de confianza para respaldar Code Verify. Los mensajes, chats u otro tipo de tráfico entre los usuarios de WhatsApp nunca se envían a Cloudflare, es decir, siguen siendo privados y están encriptados de un extremo a otro. Ni los mensajes ni el contenido multimedia transitan por la red de Cloudflare como parte de este sistema, una propiedad importante desde la perspectiva de Cloudflare en nuestro papel como tercero de confianza.

Facilitamos la verificación

Volvamos a 2003, cuando se lanzó Fedora, una popular distribución de Linux basada en Red Hat. Te interesa descargarla, pero quieres asegurarte de que es la "auténtica" Fedora, y que la descarga no es una versión "falsa" que desvía tus contraseñas o registra tus pulsaciones de teclas. Vas a la página para iniciar la descarga y ves un hash MD5 (considerado seguro en ese momento) junto a la descarga. Una vez se completa la descarga, se ejecuta "md5 fedora-download.iso" y se compara el resultado hash con el hash de la página de descarga. Coinciden, todo va bien y procedes a instalar Fedora en tu equipo.

Pero espera un segundo. Si el mismo sitio web que proporciona la descarga también proporciona el hash, ¿no podría un actor malintencionado reemplazar tanto la descarga como el hash con sus propios valores? La comprobación "md5" que ejecutamos anteriormente se validaría, pero no hay garantía de que tengamos la versión "real" (no manipulada) del software que pretendíamos descargar.

Alojar el hash en el mismo servidor que el software sigue siendo habitual en 2022

Hosting the hash on the same server as the software is still common in 2022.

Hay otros enfoques que intentan mejorar este planteamiento, por ejemplo, proporcionar firmas que los usuarios puedan comprobar que se firmaron con claves públicas "conocidas" alojadas en otro lugar. Alojar esas firmas (o "hashes") con un tercero de confianza eleva drásticamente los estándares en lo que respecta a la manipulación, pero ahora requerimos que el usuario sepa en quién confiar y conozca herramientas como GnuPG. Eso no nos ayuda a confiar y verificar el software a la escala de la red de Internet moderna.

Aquí es donde entran en juego la extensión Code Verify y Cloudflare. La extensión Code Verify, publicada por Meta Open Source, automatiza esta tarea. Calcula localmente el hash criptográfico de las bibliotecas que usa WhatsApp Web y compara ese hash con el de una fuente de terceros de confianza (Cloudflare, en este caso).

Te lo mostramos en esta imagen para aclarar un poco cómo funciona y cómo interactúan cada una de las tres partes: el usuario, WhatsApp y Cloudflare.

Diagrama de los cuatro pasos para verificar el código de la web WhatsApp

A diagram of the four steps for verifying code from WhatsApp web.

Hay cuatro pasos principales para verificar que el código no ha sido manipulado:

  1. WhatsApp publica la última versión de sus bibliotecas JavaScript en sus servidores y el hash correspondiente a esa versión en el parámetro de auditoría de Cloudflare.

  2. Un cliente web de WhatsApp obtiene las últimas bibliotecas de WhatsApp.

  3. A continuación, la extensión del navegador Code Verify obtiene el hash de esa versión de Cloudflare a través de una conexión segura e independiente.

  4. Code Verify compara el hash "conocido" de Cloudflare con el hash de las bibliotecas que ha calculado localmente.

Si los hashes coinciden, como debería ocurrir en casi cualquier circunstancia, el código está "verificado" desde el punto de vista de la extensión. Si por el contrario los hashes no coinciden, significa que el código que se ejecuta en el navegador del usuario es diferente del código que WhatsApp pretende ejecutar en todos los navegadores de sus usuarios.

La seguridad tiene que ser fácil

Es este proceso, y el hecho de que esté automatizado en nombre del usuario, lo que ayuda a proporcionar transparencia de forma escalable. Si los usuarios tuvieran que obtener, calcular y comparar manualmente los hashes, solo una pequeña parte de usuarios técnicos detectarían alteraciones. Para un servicio tan grande como WhatsApp, no sería un enfoque particularmente accesible o intuitivo.

Este enfoque también tiene paralelismos con una serie de tecnologías que se utilizan hoy en día. Una de ellas es la Integridad de subrecursos en los navegadores web. Cuando se obtiene un activo de terceros (como un script o una hoja de estilo), el navegador valida que el activo devuelto coincida con el hash descrito. Si no es así, rechaza la carga de ese activo, lo que evita que los scripts potencialmente en riesgo desvíen los datos del usuario. Otro ejemplo es el proyecto Transparencia de certificados y los proyectos relacionados de Transparencia binaria. Ambos proporcionan transparencia auditable públicamente para los activos críticos, incluidos los certificados WebPKI y otros blobs binarios. El sistema descrito en este artículo no se adapta a activos arbitrarios, pero estamos explorando formas de ampliar este servicio para que sea más general y útil, como la Transparencia binaria.

Nuestra colaboración con el equipo de WhatsApp es solo el comienzo del trabajo que estamos haciendo para ayudar a mejorar la privacidad y la seguridad en la web.  Nuestro objetivo es ayudar a otras organizaciones a verificar que el código que se entrega a los usuarios es el que deben ejecutar. Proteger a los usuarios de Internet a escala y garantizar la privacidad son principios fundamentales de lo que hacemos en Cloudflare, y esperamos continuar con este trabajo a lo largo de 2022.

Protegemos redes corporativas completas, ayudamos a los clientes a desarrollar aplicaciones web de forma eficiente, aceleramos cualquier sitio o aplicación web, prevenimos contra los ataques DDoS, mantenemos a raya a los hackers, y podemos ayudarte en tu recorrido hacia la seguridad Zero Trust.

Visita 1.1.1.1 desde cualquier dispositivo para empezar a usar nuestra aplicación gratuita y beneficiarte de una navegación más rápida y segura.

Para saber más sobre nuestra misión para ayudar a mejorar Internet, empieza aquí. Si estás buscando un nuevo rumbo profesional, consulta nuestras ofertas de empleo.
PrivacySeguridad

Síguenos en X

Matt Silverlock|@elithrar
Mari Galicer|@mmvri
Cloudflare|@cloudflare

Publicaciones relacionadas

08 de octubre de 2024, 13:00

Cloudflare acquires Kivera to add simple, preventive cloud security to Cloudflare One

The acquisition and integration of Kivera broadens the scope of Cloudflare’s SASE platform beyond just apps, incorporating increased cloud security through proactive configuration management of cloud services. ...

06 de octubre de 2024, 23:00

Enhance your website's security with Cloudflare’s free security.txt generator

Introducing Cloudflare’s free security.txt generator, empowering all users to easily create and manage their security.txt files. This feature enhances vulnerability disclosure processes, aligns with industry standards, and is integrated into the dashboard for seamless access. Strengthen your website's security today!...