¿Hay una manera estándar de asegurar la comunicación entre pares?
Actualmente estoy usando HTTP para transferir datos de igual a igual, sin embargo, la protección con TLS / SSL normalmente requiere una autoridad de certificación para autenticar la identidad, y el uso de un certificado autofirmado codificado en una aplicación significa que es extraíble, lo que todavía permite MiTM.
¿Sería apropiado crear un certificado en la primera ejecución, y luego hacer que la interfaz de usuario muestre la huella digital del certificado para que los usuarios puedan verificar la identidad fuera de banda? O sería más apropiado simplemente cifrar los cuerpos que se envían a través de HTTP con alguna otra biblioteca (porque rodar los míos sería un ejercicio para hacer agujeros de seguridad). Si es así, ¿cuáles son los patrones y las bibliotecas que uno usaría (idealmente multiplataforma)?