¿Caso de uso legítimo del ataque del hombre en el medio para el DPI?

1

Estoy trabajando en un dispositivo que debe ubicarse entre el usuario final y el servidor, y que hará una inspección profunda de paquetes. Es básicamente un nodo de control parental. Este dispositivo se venderá al usuario, por lo que tendrán pleno conocimiento de lo que es y lo que hace. Hacer que esto funcione a través de HTTP es bastante sencillo, pero para que esto sea de uso real, claramente también debe funcionar a través de HTTPS. Tengo algunas preguntas sobre este escenario, y agradecería sus ideas:

  1. ¿Crees que este es un caso de uso legítimo para un ataque de hombre en el medio? Siento que lo es, y que técnicamente ya no es un attack..

  2. ¿Cuál crees que es la forma de hacer esto con menos fricción? Esto debería ser lo más fácil posible para que los usuarios finales configuren. Estoy pensando en configurar la caja como un proxy transparente y lograr que el usuario acepte una CA raíz para reenviar el tráfico. He jugado con mitmproxy, que de alguna manera hace esto. Pero el proceso es algo impredecible. Por ejemplo, Firefox puede aceptar directamente certificados raíz en un solo clic, mientras que Safari en OS X requiere que agregue el certificado a su llavero al ingresar su contraseña de raíz. Cualquier pensamiento aquí sería apreciado. ¿Tal vez la instalación a través de complementos del navegador sea más fácil?

  3. ¿Cómo puede este dispositivo reconocer que el usuario final tiene instalada la CA raíz correcta? ¿Hay alguna prueba para ver si el usuario está aceptando nuestro certificado, de modo que si no lo están, les enviamos a una página de "instrucciones de instalación", por ejemplo?

  4. Me dijeron que cert pinning invalidaría este proceso, pero no puedo encontrar demasiada información al respecto. ¿Crees que esto es una preocupación?

  5. Parece que hay una propuesta en HTTP / 2.0 con respecto a Proxies de confianza explícitos . Esto suena como si encajara exactamente con mi caso de uso. Sin embargo, esta propuesta también obtuvo algunos representante muy malo . ¿Qué te parece esta propuesta? ¿Crees que en última instancia será beneficioso para el usuario final?

¡Gracias!

    
pregunta user1496984 04.03.2014 - 07:53
fuente

1 respuesta

1

Esto es técnicamente posible de lograr, pero hay algunos problemas con esto. En respuesta a sus preguntas

  1. Algunos estarían de acuerdo con usted en que este es un uso legítimo de MITM. Ya hay productos populares en el mundo corporativo que implementan este enfoque (por ejemplo, BlueCoat)

  2. La mejor manera de hacer esto sería obtener un certificado de firma firmado por una Autoridad de Certificación conocida y luego crear certificados legítimos según sea necesario. Desafortunadamente, a menos que seas el gobierno, esa no es una opción probable. La forma estándar de abordar esto es, como usted dice, hacer que los usuarios instalen su autoridad de certificación en cada dispositivo en uso. No creo que los complementos del navegador funcionen

  3. No tengo conocimiento de una manera de hacer esto sin instalar software adicional, lo que en realidad sería el mismo nivel de esfuerzo que la instalación de su certificado, por lo que no hay mucho punto realmente.

  4. Sí, la fijación de certificados causará problemas con esto y se está volviendo más común a medida que pasa el tiempo. La forma en que funciona es que el navegador conoce un certificado específico o un conjunto de certificados en los que confía para un nombre de host determinado, y no basará esa confianza en los certificados emitidos por una CA conocida. No tengo conocimiento de una manera de superar ese problema.

  5. He leído un poco sobre esa propuesta y, por lo que entiendo, no soy un fan.

Otro problema que debe tener en cuenta con el tipo de producto que está viendo es: ¿cómo maneja los certificados no válidos cuando su dispositivo los encuentra? Digamos por el bien de la discusión que su proxy hace una conexión a un sitio y tiene un certificado inválido. ¿Usted

a) emita un certificado para el usuario que sea válido (por ejemplo, firmado por la CA de su dispositivo). En este punto, ¿qué sucede si ese sitio es un sitio de phishing y simplemente ha impedido que el usuario identifique que el certificado no era válido y que podría haberlos alertado sobre el problema?

b) emita un certificado deliberadamente no válido de su CA, para que puedan ver el problema. La mayoría de los usuarios (asumiendo que son lo suficientemente inteligentes como para ver ciertos certificados) asumirán que es un problema con su dispositivo.

c) ¿pasa la conexión de manera directa para que el usuario pueda hacer una determinación correcta de que podría conectarse a un sitio malicioso? En este punto, se convierte en una forma conocida de omitir su dispositivo y también pierde la capacidad de proteger al usuario del contenido malicioso en ese sitio.

o

d) Bloquea el acceso a cualquier sitio con errores de certificado. Esta es probablemente la mejor manera de resolver el problema, pero aún así te deja con un problema de percepción del cliente "instalamos esto y rompimos el acceso a nuestro sitio"

    
respondido por el Rоry McCune 04.03.2014 - 08:42
fuente

Lea otras preguntas en las etiquetas