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:
-
¿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..
-
¿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?
-
¿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?
-
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?
-
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!