Lo scambio iniziale di chiavi pubbliche è su un canale non sicuro. Una volta che entrambe le parti hanno la chiave pubblica dell'altra parte, possono quindi utilizzare la crittografia asimmetrica per concordare una chiave simmetrica. Dopodiché, tutte le comunicazioni sono simmetricamente criptate. Ma si noti che ciò dipende dallo scambio iniziale di chiavi pubbliche su una connessione non sicura. Come fai a sapere se una terza parte non ha intercettato la chiave pubblica di una delle parti, ha sostituito la propria e ha successivamente inoltrato i messaggi avanti e indietro tra le due parti?
Una delle soluzioni è che le due parti legittime conoscano le rispettive chiavi pubbliche (o l'hash delle rispettive chiavi pubbliche) in anticipo. Questo è più sicuro, ma insolito nel 2018.
Un'altra soluzione è che entrambe le parti si fidino di un'entità di terze parti, come un'autorità di certificazione. I browser e i sistemi operativi vengono preconfezionati con una notevole quantità di autorità di certificazione attendibili. Una quantità molto consistente. E quelle autorità di certificazione sono di solito imprese - imprese commerciali con una presenza fisica e uffici e conti bancari - che operano sotto le grazie dei governi che hanno giurisdizione pertinente su di loro. Se un governo del genere costringesse un'autorità di certificazione radice a emettere un certificato intermedio fasullo per il governo, tale certificato sarebbe quindi considerato attendibile da qualsiasi browser Web che già si fidava dell'autorità di certificazione radice. E come ho sottolineato, ci sono un sacco di autorità di certificazione radice affidabili nel tuo browser e / o nel tuo sistema operativo. Ognuno di loro è vulnerabile alla coercizione imposta dal governo (o potenzialmente persino al crimine organizzato, a seconda della relativa impunità relativa in quel paese). Un compromesso come questo è effettivamente accaduto, in particolare nel 2011, a un'autorità di certificazione denominata DigiNotar. Ciò ha comportato massicce violazioni della sicurezza a livello nazionale.
Infine, vi è una soluzione di avere una versione più piccola del sistema di autorità di certificazione composto da circoli di fiducia, entità che sono comunemente riconosciute dalle parti comunicanti come affidabili ma deliberatamente selezionate in anticipo e non installate nel browser per impostazione predefinita. Le chiavi pubbliche potrebbero quindi essere firmate da un'entità reciprocamente attendibile prima di essere scambiate tramite lo scambio Diffie Hellman.
La sfida consiste nello scambiare tali chiavi pubbliche in modo affidabile prima che avvenga una comunicazione crittografata successiva. Diffie Hellman NON è una panacea.