Come si sincronizza il client web Whatsapp con l'applicazione mobile mantenendo tutto l'E2E?

3

Come è possibile mantenere una comunicazione E2E mentre si utilizza il client Web di whatsapp? Ho trovato diversi Q & A (fi Come funziona la crittografia end-to-end con il web di whatsapp? ) ma nessuno ha completamente risolto i miei dubbi.

In che modo il client Web si sincronizza con l'app mobile? Come vengono inizialmente inviati i messaggi alla sessione del browser? Cosa succede quando scrivo un messaggio nel client web per mantenere tutta la comunicazione E2E?

    
posta toomuchkafeine 14.01.2017 - 01:19
fonte

2 risposte

2

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.

    
risposta data 14.01.2017 - 01:52
fonte
1

Questa è la mia ricostruzione dopo alcune indagini.

Questa prima immagine potrebbe rappresentare il flusso quando Alice invia un messaggio dal web di WhatsApp a Bob:

MentrequestorappresentailflussoquandoAliceinviaunmessaggiodall'appmobilemaèancheloggatoaWhatsappweb:

(HointenzionalmenteignoratolascansionedelcodiceQR"handshake").

Quello che non capisco è come KEY-X viene derivato per mantenere il server di WhatsApp cieco sui nostri messaggi dal client web di WhatsApp. Perché se il KEY-X è derivato dal parametro inviato dal server WA durante la convalida QRCode, è possibile derivare anche la chiave e quindi tutto lo schema E2E fallisce (il che penso non sia il caso)

    
risposta data 14.01.2017 - 18:02
fonte

Leggi altre domande sui tag