Riesgos de implementar un certificado de autenticación de servidor junto con una aplicación cliente

1

¿Cuáles son los riesgos de implementar una aplicación cliente con un certificado de autenticación de servidor (clave privada + pública) para que una aplicación cliente pueda hospedar un servidor web? Que es accesible a través de la redirección HOSTS a través de los navegadores.

¿Cuáles son los riesgos con el siguiente enfoque?

Supongamos

  1. Soy el propietario del dominio "example.com".
  2. Obtengo un certificado de autenticación de servidor válido para "app.example.com", por ejemplo, por ejemplo. de Comodo.
  3. Tengo una aplicación web alojada en " enlace ".
  4. Se supone que los usuarios deben realizar alguna acción que me obliga a enviar algunas solicitudes a una aplicación que se ejecuta en su sistema y obtener una respuesta.
  5. Hago esto instalando una aplicación cliente en el sistema del usuario.
  6. Esta aplicación tiene el certificado de autenticación del servidor para "app.example.com" emitido anteriormente. Puede alojar un servidor web accesible localmente.
  7. Durante la instalación, agrego una entrada a C: \ Windows \ System32 \ drivers \ etc \ hosts para una redirección de "app.example.com" a "127.0.0.1"
  8. Cuando el usuario utiliza la aplicación web en " enlace ", también se conecta a " enlace ", que en realidad es la aplicación cliente que se ejecuta en el sistema de los usuarios.
  9. El navegador puede enviar solicitudes a una aplicación que se ejecuta en su sistema y obtener una respuesta.

Cosas que me gustaría saber: riesgos, soluciones, enfoques alternativos, etc.

Actualización: pregunta adicional : Certificados para localhost, MITM Ataque

Estoy preparando una lista para por qué no hacer esto como se pregunta en la pregunta. Así como para mi comprensión.

    
pregunta AEonAX 06.12.2018 - 17:38
fuente

1 respuesta

4

Estás publicando un certificado para enlace a lo largo de tu aplicación. Por lo tanto, esta clave privada ya no es "privada". Alguien lo descubrirá y publicará. Esto llevará a la CA a revocar su certificado para app.example.com ( DEBEN revocarlo). Esto sucedió en el pasado, no eres el primero en tener esa idea, empresas como Cisco , Blizzard , EA , Spotify, mega ... solía hacer esto.

Esto es más un problema de procedimiento, pero lo morderá bastante rápido (recuerde que la CA tiene 24 horas para revocarlo una vez que tenga conocimiento de que el certificado está comprometido).

Un MITM podría extraer el certificado de su aplicación e hacerse pasar por app.example.com a alguien que no tiene la entrada de hosts, pero no vale la pena enumerar los riesgos, dado que su enfoque no funcionará demasiado largo.

Si realmente necesita utilizar un certificado para enlace , cree un certificado localmente (para que cada cliente tenga un certificado diferente), adecuadamente restringido, y agregarlo al almacén de certificados del cliente.

Además, obviamente, el servidor que se ejecuta en el cliente no debería hacer cosas tontas como permitir el lanzamiento de programas arbitrarios o la eliminación de archivos de clientes. Ese servidor local es un límite de seguridad, por lo que debe ser muy cuidadoso al validar cualquier entrada ...

    
respondido por el Ángel 06.12.2018 - 19:40
fuente

Lea otras preguntas en las etiquetas