Penso che sia necessario separare nella tua mente la protezione della riservatezza dall'autenticazione.
È abbastanza possibile generare simultaneamente una chiave tra due parti su Internet, con tutti quelli del tuo ISP per ogni Govt in ascolto, eppure non possono, come un intercettore, generare quella chiave. Questo è il punto essenziale per dire lo scambio di chiavi Diffie-Hellman ( link ). Ma entrambe le parti possono usare SOLO quella chiave per la protezione della riservatezza ; in questo scenario nessuna delle due parti sa veramente con chi ha formato la chiave.
La ragione è che, se tutti quei cattivi su Internet sono attivi man-in-the-middle, ogni parte potrebbe finire per creare una chiave su Internet con l'uomo-in- il mezzo, e non essere nessuno più saggio. Quindi un sistema di comunicazione sicuro adeguato include prima l'autenticazione, poi la riservatezza. Per l'autenticazione, infatti, sono necessari alcuni mezzi fuori banda per ottenere la chiave di identità assolutamente vera dell'altra parte (e ci sono molti modi per farlo con vari livelli di affidabilità). Ma una volta stabilita l'identificazione e l'autenticazione dell'altra parte, è possibile sviluppare chiavi utilizzate per scopi di riservatezza su Internet (includendo anche le chiavi di autenticazione nel processo di scambio delle chiavi in modo che il man-in-the-middle non possa dirottare esso).
Re WhatsApp, ottiene la sua sicurezza da TextSecure, che si basa sulla sicurezza del protocollo Off-the-Record Messaging. Inizia con l'articolo di Wikipedia; ha una sottosezione che discute l'autenticazione delle due parti: link