Non avrebbe senso realizzare un sistema crittografato completo end-to-end tra due client Web perché in tal caso i dati crittografati / decodificati dal client web non saranno leggibili dal client mobile e viceversa.
Per evitare questo, c'è un canale protetto creato tra i client mobili e web. I client mobili eseguiranno un servizio di chat crittografato end to end e genereranno coppie di chiavi diverse per parlare con i client web. Quindi il messaggio può essere letto / generato da entrambi i client (mobili e web).
La risposta a cui ti riferisci fornisce già le idee tecniche su come è implementata. Mi limiterò a aggiungere un flusso da farti capire.
Di conseguenza, l'utente A e B stanno comunicando tramite whatsapp. Quindi il modo in cui funziona la chat crittografata end to end è:
Il client web di A < -protected- > Il client mobile di < -E2E- > Il client mobile di B < - Protected- > Client web di B.
[Parafrasando le parti dalla risposta di cui nella domanda]
How the web client synchronizes itself with the mobile app?
La configurazione iniziale viene eseguita quando il client mobile esegue la scansione del codice QR del client Web. Dopodiché, si tratta di un'architettura client server semplice in cui il client mobile funge da server. Tutti i messaggi sono leggibili sul client mobile.
How messages are sent to the browser session initially? What's going on when I write a message in the web client in order to maintain all the communication E2E?
Una volta stabilita una connessione sicura tra il Web e il client mobile, questa viene utilizzata per tutte le comunicazioni. Ancora una volta, non è la fine della crittografia tra i due client web. I client mobili possono leggere tutti i messaggi. Quindi la crittografia end-to-end è tra client mobili e web. Poi ci sarà un altro fine per terminare il canale crittografato tra i client mobili e web.