Diciamo che c'è un server e un client. Normalmente per connettersi e stabilire una sessione crittografata end-to-end, dovrebbero eseguire lo scambio di chiavi, che potenzialmente offre a un utente malintenzionato l'opportunità di eseguire un attacco MITM.
Dire che il client ha l'impronta digitale della chiave pubblica del server o la chiave pubblica codificata. (Quale è meglio?) Al momento della connessione, il server invia la sua chiave pubblica e il client confronta le impronte digitali. Se corrispondono, il client invia quindi la sua chiave pubblica e viene stabilita una sessione sicura.
Questa è una soluzione migliore di uno scambio di chiavi? Ci sono potenziali svantaggi? Funzionerà? C'è un modo migliore?