Estoy trabajando en una situación específica (hipotética), donde tengo dos máquinas cliente que intentan realizar un intercambio de claves públicas, a través de un servidor. No hay posibilidad de una conexión directa entre los dos clientes, ya que el intercambio es asíncrono.
El servidor no puede ser completamente confiable. Como facilita el intercambio de claves, existe la posibilidad de que sustituya la clave del cliente con una que controla.
¿Hay alguna forma de que esto pueda ser detectado como mínimo por el cliente que lo recibe, o mejor aún, que se lo proteja activamente o se solucione? Las técnicas como el intercambio de claves Diffie-Hellman no parecen funcionar aquí, ya que el canal está controlado por la entidad contra la que intentamos proteger (es decir, el servidor).