No tendría sentido completar el sistema cifrado de extremo a extremo entre dos clientes web, porque en ese caso los datos cifrados / descifrados por el cliente web no serán legibles por el cliente móvil y viceversa.
Para evitar esto, existe un canal protegido creado entre los clientes móviles y web. Los clientes móviles ejecutarán el servicio de chat cifrado de extremo a extremo entre sí y generarán diferentes pares de claves para hablar con los clientes web. Por lo tanto, el mensaje puede ser leído / generado por ambos clientes (móviles y web).
La respuesta a la que se refiere ya da ideas técnicas sobre cómo se implementa. Solo añadiré un flujo para que lo entiendas.
En consecuencia, digamos que los usuarios A y B se están comunicando a través de whatsapp. Entonces, la forma en que funcionará el chat cifrado de extremo a extremo es:
El cliente web de
A < -protected- > El cliente móvil de A < -E2E- > Cliente móvil de B < - Protected- > El cliente web de B.
[Parafraseando partes de la respuesta referida en la pregunta]
¿Cómo se sincroniza el cliente web con la aplicación móvil?
La configuración inicial se realiza cuando el cliente móvil escanea el código QR del cliente web. Después de eso, es una arquitectura de servidor de cliente simple donde el cliente móvil actúa como servidor. Todos los mensajes son legibles para el cliente móvil.
¿Cómo se envían inicialmente los mensajes a la sesión del navegador? ¿Qué sucede cuando escribo un mensaje en el cliente web para mantener toda la comunicación E2E?
Una vez que se establece una conexión segura entre la web y el cliente móvil, se utiliza para toda la comunicación. Nuevamente, no es un extremo a otro el cifrado entre los dos clientes web. Los clientes móviles pueden leer todos los mensajes. Por lo tanto, el cifrado de extremo a extremo es entre los clientes móviles y web. Luego habrá otro canal cifrado de extremo a extremo entre los clientes móviles y web.