不久前,我在这里提出了一个问题,该问题是如何隐藏我的http请求调用,并使它们在我的应用程序中更安全。我不希望人们使用提琴手2查看呼叫并设置自动响应器。每个人都告诉我使用SSL,通话将被隐藏并且信息安全。
我购买并安装了SSL证书,并进行了所有设置。我启动了Fiddler 2,并运行了一个测试应用程序,该应用程序连接到https Web服务以及https php脚本。
Fiddler 2不仅能够检测到这两个请求,而且还可以解密它们!我能够看到所有信息的来回追溯,这使我想到了这个问题。
如果SSL对安全性的影响为零,那么拥有SSL的意义何在?使用或不使用SSL,我都能看到所有信息,第四和第四,仍然设置了自动响应器。
.NET中缺少某些内容,可以更好地隐藏通过SSL发出的呼叫吗?
编辑
由于收到了一些回复,我为此问题添加了新的部分。如果应用程序连接到Web服务以登录怎么办。该应用程序向Web服务发送用户名和密码。然后,Web服务将数据发送回应用程序,提示登录数据好或不好。即使通过SSL,使用提琴手2的人也可以设置一个自动响应器,然后该应用程序将被“破解”。我了解在调试中查看数据可能会很有用,但是我的问题是,究竟应该做什么以确保SSL连接到它所请求的SSL。基本上说不能有中间人。
此处介绍:http : //www.fiddlerbook.com/fiddler/help/httpsdecryption.asp
Fiddler2依靠HTTP拦截的“中间人”方法。对于您的Web浏览器,Fiddler2声称是安全的Web服务器,而对于Web服务器,Fiddler2则模仿了Web浏览器。为了假装成为Web服务器,Fiddler2动态生成了HTTPS证书。
本质上,您手动信任Fiddler提供的任何证书,如果您手动接受 与 域名 不匹配的 随机人的证书,则同样如此。
编辑:有多种方法可以防止Fiddler /中间人攻击- 即在使用SSL的自定义应用程序中,可以要求使用特定的证书进行通信。对于浏览器,它们具有UI来通知用户证书不匹配,但最终允许此类通信。
作为公开的显式证书示例,您可以尝试使用Azure服务(即,使用用于Azure的PowerShell工具)并通过Fiddler嗅探流量。由于明确的证书要求,它失败。