我想知道web服务是否有可能用Fiddler4 (网络调试代理)创建的“伪造”根证书来检测HTTPS连接,以防止逆向工程。
是否有任何方法检查加密是使用原始证书还是使用Fiddler制作的证书?
发布于 2015-04-28 18:43:32
除非客户端向服务器发送该信息,否则服务器无法知道客户端收到了什么证书。
从客户端JavaScript中,您今天无法检测到这样的拦截;JavaScript不公开内省证书的功能。可以在网页中使用Java或Flash来检查在连接到服务器时收到的证书,但是一个足够狡猾的拦截器可以避免MITM对Java/Flash连接的攻击。
相反,本机代码客户端应用程序可以检测服务器提供的证书,并拒绝任何与预期证书不匹配的证书;这称为certificate pinning,是某些应用程序使用的一种技术。请注意,这将比Fiddler阻塞更多;它还将通过公司检查代理(例如BlueCoat、ISA等)和一些流行的消费者防病毒程序代理(例如BitDefender)阻止连接。更重要的是,如果用户愿意,可以绕过您的证书钉扎检查;您的代码正在他们的设备上运行,并且他们能够在内存中修改您的代码,以去掉您的证书钉住检查。在一些移动设备上,这种代码修改要求“破除”设备,但这并不是一个不可逾越的障碍。
https://stackoverflow.com/questions/29918144
复制相似问题