服务器是否可以查看 HTTPS 连接是否被 Fiddler 监控?
Is it possible for a server to see whether a HTTPS connection is monitored by Fiddler?
我想知道 Web 服务是否可以通过 Fiddler4(Web 调试代理)创建的 "faked" 根证书检测 HTTPS 连接以防止逆向工程。
有什么方法可以检查加密是用原始证书还是用Fiddler制作的?
A server 无法知道 client 收到什么证书,除非客户端向服务器发送该信息。
来自客户端Java脚本,您今天无法检测到此类拦截; Java脚本不公开内省证书的功能。它 是 可以在网页中使用 Java 或 Flash 来检查连接到服务器时收到的证书,但是足够狡猾的拦截器可以避免 MITM'ing Java/Flash连接。
相比之下,本机代码客户端应用程序可以检测服务器提供的证书并拒绝任何与预期证书不匹配的证书;这称为 certificate pinning
并且它是某些应用程序使用的技术。请注意,这将比 Fiddler 更阻塞;它还会阻止通过公司检查代理(例如 BlueCoat、ISA TMG 等)和一些流行的消费者防病毒程序代理(例如 BitDefender)的连接。更重要的是,用户可以根据需要绕过您的证书固定检查;您的代码在他们的设备上 运行,并且他们能够修改内存中的代码以删除您的证书固定检查。在某些移动设备上,此代码修改需要 "jail-breaking" 设备,但这并不是不可逾越的障碍。
我想知道 Web 服务是否可以通过 Fiddler4(Web 调试代理)创建的 "faked" 根证书检测 HTTPS 连接以防止逆向工程。
有什么方法可以检查加密是用原始证书还是用Fiddler制作的?
A server 无法知道 client 收到什么证书,除非客户端向服务器发送该信息。
来自客户端Java脚本,您今天无法检测到此类拦截; Java脚本不公开内省证书的功能。它 是 可以在网页中使用 Java 或 Flash 来检查连接到服务器时收到的证书,但是足够狡猾的拦截器可以避免 MITM'ing Java/Flash连接。
相比之下,本机代码客户端应用程序可以检测服务器提供的证书并拒绝任何与预期证书不匹配的证书;这称为 certificate pinning
并且它是某些应用程序使用的技术。请注意,这将比 Fiddler 更阻塞;它还会阻止通过公司检查代理(例如 BlueCoat、ISA TMG 等)和一些流行的消费者防病毒程序代理(例如 BitDefender)的连接。更重要的是,用户可以根据需要绕过您的证书固定检查;您的代码在他们的设备上 运行,并且他们能够修改内存中的代码以删除您的证书固定检查。在某些移动设备上,此代码修改需要 "jail-breaking" 设备,但这并不是不可逾越的障碍。