¿Cómo puedo indicar a un navegador que rechace el certificado MITM de proxy para mi sitio web?

3

¿Hay alguna manera para que mi sitio web le diga que un navegador, como Chrome, no permita un certificado MITM sustituto como los que utilizan los servidores proxy corporativos? p.ej. vea la pregunta 61056: ¿Hay alguna forma en que mi ISP o administrador de LAN pueda conocer mi dirección de Gmail como resultado de mi inicio de sesión en la interfaz web de Gmail a través de ¿A través de su red?

Entiendo la forma normal en que se supone que funciona, y entiendo que, en general, el control del navegador por parte del grupo corporativo puede controlarlo como lo deseen, pero me pregunto si, tal vez, siga las instrucciones de En el sitio web , Chrome tiene una forma de vencer eso o, al menos, hacerlo más obvio cuando eso sucede. (por ejemplo, ¿quizás a través de una ruta de verificación alternativa?)

(Me imagino que la mía debe ser una pregunta duplicada, pero no puedo encontrar otra, en este momento. - DN)

    
pregunta danorton 05.08.2018 - 18:51
fuente

2 respuestas

2

[nueva respuesta basada en una mejor comprensión de la pregunta basada en los comentarios del OP a la primera respuesta, ahora eliminada]

  

¿Hay alguna manera para que mi sitio web le diga que un navegador no permita una   Sustituya el certificado MITM como los que utiliza el proxy corporativo.   servidores?

Existen, aunque son soluciones diseñadas para prevenir el daño causado por certificados que fueron emitidos incorrectamente a terceros maliciosos por una CA. Dos de estas soluciones son HPKP y DANE. Sin embargo, estas soluciones están disminuyendo a medida que entran en juego otras soluciones diferentes (que no ayudan a su caso de uso).

Fijación de clave pública HTTP (HPKP) implica que el servidor comunique qué certificados son válidos para el navegador dentro de los encabezados HTTP. Sin embargo, ha quedado en desuso "debido a su complejidad y sus peligrosos efectos secundarios". Pero vale la pena señalarlo especialmente porque, pertinente a su pregunta,

  

La mayoría de los navegadores deshabilitan el anclaje para cadenas de certificados con raíz privada   Certificados para permitir la inspección de varios contenidos corporativos   escáneres y herramientas de depuración web (como mitmproxy o Fiddler).   El estándar RFC 7469 recomienda deshabilitar los informes de violación de anclaje   para certificados raíz "definidos por el usuario", donde es "aceptable" para el   navegador para desactivar la validación de pin.

En otras palabras, también hay ganchos para permitir MITM corporativo en HPKP.

Autenticación basada en DNS de entidades nombradas (DANE) hace algo similar, colocando información sobre certificados aceptables en DNS entradas. Sin embargo, no parece tener un soporte de navegador muy bueno, y si los amos corporativos imponen MITM al proxy, también son capaces de bloquear las consultas DNS necesarias.

Las nuevas soluciones al problema de los certificados "falsos" se han alejado del navegador y, por lo tanto, no son útiles para sus propósitos. Autorización de la Autoridad de Certificación de DNS (CAA) permite a los administradores del servidor publicar un registro DNS que identifique la CA correcta que utilizan; sin embargo, esto lo utilizan otras CA como una verificación para evitar solicitudes maliciosas de certificados de alguien que no sea el propietario del dominio. Los navegadores no utilizan este registro para verificar nada.

Del mismo modo, Transparencia del certificado (CT) requiere que las CA publiquen los certificados que hayan emitido, permitiendo que los sujetos y terceros Para buscar certificados maliciosos. Sin embargo, esto tampoco es algo que usen los navegadores.

Teóricamente , si desea ser creativo y hacer rodar los suyos, puede usar Implementación de Forge JavaScript TLS para abrir una sesión TLS desde el navegador del usuario a su servidor con el fin de inspeccionar el certificado. Si el certificado no es tuyo, ¡MITM está en marcha! Luego, puede realizar acciones en el lado del cliente (por ejemplo, mostrar una advertencia) o en el lado del servidor (por ejemplo, abortar el inicio de sesión o, si ya ha iniciado sesión, cerrar la sesión del usuario). Puede ser difícil discernir el proxy para el que está configurado el navegador, aunque ...

    
respondido por el gowenfawr 06.08.2018 - 18:57
fuente
1

No puedes. Como operador de sitio web, el navegador no está bajo su control, por lo que no puede esperar que coopere en su intento de hacer que desconfíe de un certificado en el que el propietario de la computadora ya ha decidido confiar.

Dicho esto, es posible que pueda adivinar si un usuario visita su sitio a través de un proxy MITM utilizando varias heurísticas, como por ejemplo, comparando los parámetros criptográficos utilizados durante el protocolo de enlace TLS con valores conocidos para navegadores populares, como se describe en documento El impacto en la seguridad de la intercepción de HTTPS . El servidor web Caddy tiene esta función integrada .

Una vez que haya detectado que un proxy está en uso, puede rechazar la conexión desde su extremo. Tenga en cuenta, sin embargo, que existe un riesgo significativo de falsos positivos. También tenga en cuenta que si bien esta técnica puede ser suficiente para detectar proxies corporativos, no funcionará contra un adversario que esté al tanto de este método e intente evadir la detección.

    
respondido por el Ajedi32 06.08.2018 - 20:04
fuente

Lea otras preguntas en las etiquetas