https - servicio - ssl o tls
¿Es posible que un servidor vea si Fiddler controla una conexión HTTPS? (1)
Un servidor no tiene forma de saber qué certificado recibió el cliente a menos que el cliente envíe esa información al servidor.
Desde el JavaScript del cliente, no puedes detectar tal intercepción hoy; JavaScript no expone las capacidades para introspectar el certificado. Es posible usar Java o Flash dentro de una página web para inspeccionar el certificado recibido al conectarse a un servidor, pero un interceptor lo suficientemente astuto podría evitar MITM en la conexión Java / Flash.
Por el contrario, una aplicación cliente de código nativo puede detectar qué certificado fue presentado por el servidor y rechazar cualquier certificado que no coincida con el certificado esperado; esto se llama certificate pinning
y es una técnica utilizada por algunas aplicaciones. Tenga en cuenta que esto bloqueará más que Fiddler; también bloqueará las conexiones a través de proxies de inspección corporativa (p. ej., BlueCoat, ISA TMG, etc.) y mediante algunos proxies de programas antivirus populares para consumidores (p. ej., BitDefender). Lo que es más importante, los usuarios pueden eludir el certificado de fijación de cheques si lo desean; su código se está ejecutando en su dispositivo, y tienen la capacidad de modificar su código en la memoria para despojar a su certificado de fijación de cheques. En algunos dispositivos móviles, esta modificación de código requiere "romper la cárcel" del dispositivo, pero esta no es una barrera insalvable.
Me gustaría saber si es posible que los servicios web detecten conexiones HTTPS con certificados raíz "falsificados" creados por Fiddler4 (proxy de depuración web) para evitar la ingeniería inversa.
¿Hay algún método para verificar si el cifrado se realiza con el certificado original o con uno hecho por Fiddler?