如果fiddler 2可以通过HTTPS解密所有的电话,SSL的意义何在?

我在这里问了一个问题,回到如何隐藏我的http请求调用,并使其在我的应用程序中更安全。 我不希望人们使用小提琴手2看到电话,并build立一个自动回复。 每个人都告诉我去SSL,电话会隐藏起来,信息保持安全。

我购买并安装了一个SSL证书,并设置了一切。 我启动了fiddler 2并运行一个testing应用程序,连接到一个https web服务以及连接到一个https php脚本。

提琴手2不仅能够检测到这两个请求,但也解密它们! 我能够看到所有的信息,回到我的问题。

如果SSL与安全性没有什么区别,那么使用SSL有什么意义呢? 有或没有SSL我可以看到所有的信息回来和第四,仍然build立一个自动回复。

有没有.NET中的东西我想失去更好地隐藏我的电话通过SSL?

编辑

由于我收到了一些答复,我在这个问题上增加了一个新的部分。 如果一个应用程序连接到一个Web服务来login会怎么样? 该应用程序发送Web服务的用户名和密码。 然后,Web服务将数据发送回应用程序,说明login数据良好或不好。 即使通过SSL,使用小提琴手2的人也可以设置一个自动应答器,然后应用程序被“破解”。 我明白如何在debugging中看到数据是有用的,但是我的问题是确切地说应该确保SSL连接到正在请求的数据。 基本上说不能有一个中间人。

这里覆盖: http:

Fiddler2依靠“中间人”的方式来进行HTTPS拦截。 Fiddler2声称是安全的networking服务器,而在networking服务器上,Fiddler2模仿了networking浏览器。 为了装扮成Web服务器,Fiddler2dynamic地生成一个HTTPS证书。

从本质上讲,您手动信任提供者所提供的任何证书,如果您手动接受来自随机人员的不符合域名的证书,情况也是如此

编辑:有办法来防止提琴手/中间人攻击 – 即在使用SSL的自定义应用程序可以要求特定的证书用于通信。 在浏览器的情况下,他们有UI来通知用户证书不匹配,但最终允许这样的通信。

作为显式证书的公开示例,您可以尝试使用Azure服务(即使用适用于Azure的PowerShell工具),并使用Fiddler嗅探stream量。 它由于明确的证书要求而失败。

您可以将您的Web服务设置为需要SSL身份validation的客户端authentication以及服务器端。 这样Fiddler将无法连接到您的服务。 只有具有所需证书的应用程序才能够连接。

当然,那么你有如何保护应用程序内的证书的问题,但你现在用你的用户名和密码,现在有这个问题。 真正想要破解你的应用程序的人可以去reflection器,甚至做一个内存search与客户端证书相关的私钥。

没有真正的方法来使这个100%的防弹。 电影业对保护DVD内容也是一样的问题。 如果你有软件能够解密DVD并播放内容,那么有人可以在软件运行时进行内存转储,并find解密密钥。

总的来说,SSL / TLS的重点在于,Wireshark的偶尔窃听者无法看到您的有效载荷。 提琴手/打嗝意味着你与系统交互。 是的,这是一个非常简单的交互,但它确实需要(一个)系统被破坏。

如果你想通过渲染这些MITM程序来提高安全性,你需要客户端证书身份validation(双向SSL),同时连接服务器和客户端证书(例如,要求只有特定的证书是有效的通讯)。 您还可以使用每一方的公钥encryption在networking上传输的有效负载,并确保私钥只驻留在它们所属的系统上。 这样,即使一方(鲍勃)受到攻击,攻击者也只能看到发送给鲍勃的信息,而不是鲍勃发送给艾丽斯的信息。 然后,您将采取encryption的有效载荷,并用可validation的证书对数据进行签名,以确保数据没有被篡改(关于是先encryption还是先签名,还有许多争论)。 最重要的是,你可以使用sha2之类的几个pass来散列签名,以确保签名是“as-sent”(虽然这在很大程度上是一个模糊的步骤)。

当你不控制(一个)通信系统时,这将使你在安全方面达到合理可实现的程度。

正如其他人所提到的,如果攻击者控制系统,他们控制RAM并且可以修改内存中的所有方法调用。