Supponiamo di avere un sistema in cui le parti sono identificate dalla loro chiave pubblica (con un algoritmo di chiave asimmetrico preselezionato). Supponiamo che io abbia un PUB1 partito che vuole stabilire un canale sicuro con un PUB2 partito. Ciò significa necessariamente che PUB1 di partito ha già la chiave pubblica di PUB2.
Dato un mezzo non affidabile con possibilità di MITM, come possono le parti stabilire un canale sicuro (niente intercettazioni, nessun MITM) mentre si autenticano reciprocamente come la parte che possiede i segreti PRIV1 / PRIV2 che corrispondono all'identità PUB1 / PUB2?
Comprendo che Diffie-Hellman con le chiavi pubbliche può fare esattamente questo - è corretto? Esistono implementazioni standard per .NET che hanno il supporto integrato per questa modalità operativa?