Elegir la infraestructura de certificado X.509 correcta para proteger las comunicaciones de LAN entre una PC y un dispositivo

2

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.

    
pregunta WMEZ 19.11.2013 - 10:19
fuente

2 respuestas

2

Es bastante difícil dar una respuesta sensata sin saber lo que estás tratando de lograr.

Al usar certificados autofirmados, obtendrá comunicaciones de punto a punto seguras, pero no hay autenticación intrínseca. Puedo ingresar a su oficina con una computadora portátil usando mi propio certificado y comenzar a conectarme con sus servicios. OTOH si ejecuta su propia autoridad de certificación, entonces tiene la capacidad de restringir las comunicaciones en función del emisor del certificado (en este caso, su CA). El nombre común es solo una convención utilizada como una afirmación de identidad (no tiene que ser una fqdn) que está certificada por la CA.

  

Sin embargo, no tengo un nombre de dominio porque todas las computadoras y dispositivos obtendrán direcciones IP dinámicas dentro de la LAN

Tonterías:

1) lo que no tiene es una entrada en el DNS público para identificar su red: no hay nada que le impida llamar a su red como quiera, pero puede que tenga problemas para conectarse a otro google.com si llamas eso a tu red.

2) DHCP no impide el uso de direcciones IP estáticas para algunos hosts

3) DHCP no impide tener un nombre de host consistente con diferentes direcciones IP.

  

Quiero que solo los usuarios posean el certificado

Entonces, ¿por qué estamos hablando de FQDN y direcciones IP? Estas son propiedades asignadas a máquinas, no a personas.

Creo que todavía tienes un largo viaje por delante antes de hacer las preguntas correctas.

    
respondido por el symcbean 19.11.2013 - 12:23
fuente
0

Un enfoque simple para esto es utilizar una clave precompartida . La PC y los dispositivos tendrían la misma clave, que se usa para cifrar y proteger las comunicaciones. Esto evita la criptografía de la clave pública, lo que sería beneficioso si los dispositivos son de baja potencia. Sin embargo, aunque protege contra atacantes externos, no protege los dispositivos y la PC entre sí.

Puede mejorar esto usando solo criptografía simétrica al tener secretos compartidos de dispositivos individuales , mientras que la PC los conoce a todos. Los arreglos exactos dependerán de las líneas de comunicación que necesite (¿los dispositivos se comunican entre sí directamente?) Y la confianza que existe (¿confían los dispositivos en la PC implícitamente?)

También puedes usar criptografía de clave pública. Por lo general, le daría a la PC y a cada dispositivo un certificado individual. En una configuración simple, puede usar certificados autofirmados Si cada dispositivo tiene el certificado guardado para cualquier otro dispositivo al que necesita conectarse, puede verificar el certificado autofirmado de forma segura. O puede usar la solución que describió, con una autoridad de certificación interna .

Espero que la mayor dificultad sea el procedimiento de instalación. Tendrás que pensar cuidadosamente sobre la experiencia del usuario. Obtenga información de WiFi y Bluetooth acerca de su enfoque: contraseña compartida y emparejamiento de dispositivos. Una vez que la PC y los dispositivos se hayan instalado con las claves / secretos correctos / las operaciones diarias deberían ser sencillas.

    
respondido por el paj28 19.11.2013 - 20:44
fuente

Lea otras preguntas en las etiquetas