Antecedentes: tenemos un sitio que funciona a través de HTTPS (HTTP no es compatible, usamos HSTS). Se implementa en una nube de terceros, lo que restringe nuestras capacidades de control y registro sobre el hardware del servidor. No podemos forzar el uso de la autenticación de certificado de cliente. Básicamente, lo que tenemos es un sitio HTTPS público con autenticación estándar de 2 factores (inicio de sesión / pase + SMS), al que se puede acceder desde el navegador móvil o de escritorio, y API adicional en el mismo sitio desde aplicaciones móviles nativas. El software del servidor se basa en .Net / IIS.
Estamos considerando el siguiente escenario: de alguna manera, la computadora / teléfono inteligente del usuario está confiada al certificado del atacante, lo que permite el ataque MiM clásico (el usuario está conectado al proxy con el certificado de confianza y el proxy está conectado a nuestro servidor). Uno de los escenarios comunes (en algunos países) para eso es que el proveedor de Internet requiere que el usuario confíe en su certificado autofirmado.
Dejando a un lado la seguridad en el lado del cliente (verifique la huella digital del certificado, etc.): ¿hay alguna forma para que el servidor (es decir, para nuestra aplicación) entienda que el ataque MiM está en su lugar?
Esto es algo así como esta pregunta HTTPS - Can ¿El servidor ve los detalles del certificado del lado del cliente? , pero estoy buscando no solo formas de detectar tal ataque inmediatamente (lo que sería bueno, por supuesto), sino también formas que pueden ayudarnos a detectar dicho ataque a largo plazo , que tiene, por ejemplo, algunos registros históricos.