Editar: parece que me apresuré bastante al escribir mi pregunta al principio, por lo que aquí hay una versión actualizada de la misma.
Estoy desarrollando una aplicación que se ejecuta en PC que están en la misma LAN que otros dispositivos. Quiero conectarme a estos dispositivos. Dado que los datos comunicados entre la PC y los dispositivos son confidenciales, quiero protegerlos con cifrado, autenticación e integridad. Por lo tanto estoy usando TLS.
La idea es que si alguien consigue acceder a la LAN desde fuera (de alguna manera) no debería poder usar los datos enviados entre una PC y un dispositivo (debido al cifrado). Además, si alguien obtiene acceso a la LAN desde dentro, no debería poder conectarse a ninguno de los dispositivos. Actualmente no existe una protección de usuario / contraseña real en los dispositivos, por lo que necesito algún otro tipo de autenticación. Estaba pensando en certificados aquí. La idea es la siguiente:
La empresa que ejecuta la LAN representa a la Autoridad de certificación. Hay un certificado de servidor general que se almacena en los dispositivos. También hay un certificado de cliente que se mantiene privado en las PC que debe permitirse para conectarse a los dispositivos (como los portátiles de servicio, por ejemplo). La empresa firma ambos certificados.
Ahora, si alguien puede obtener acceso a la LAN, podría detectar cualquier tráfico, pero está encriptado para que no pueda usar los datos. Además, si desea conectarse a cualquier dispositivo, se rechazará la conexión ya que no está en posesión del certificado de cliente correspondiente. Sin embargo, los clientes pueden verificar si los dispositivos a los que se están conectando son realmente esos dispositivos y no algún intruso.
Mi pregunta es: ¿es esta la infraestructura de certificado correcta? ¿Es esto efectivo? ¿Los certificados se envían a través de cifrado o se enviarán sin cifrar? Si se envían sin cifrar, ¿esto tiene algún uso? Supongo que un intruso puede simplemente registrar el certificado enviado por el cliente y luego guardarlo en su propia máquina.