2013-03-06 82 views
23

我刚刚发现Fiddler可以解密HTTPS流量。为什么在Fiddler可以解密时使用HTTPS

例如,我使用HTTPS在本地主机上部署了一个网站。在检查Fiddler中的数据包时,我能够查看所有信息,因为它有解密的选项。

我的问题是,为什么当Fiddler可以轻松解密时使用HTTPS?

+0

HTTPS可以防止客户端和服务器之间的窃听者。 – 2013-03-06 11:11:58

+0

@ColonelPanic我明白这一点。不过,我刚刚发现Fiddler可以轻松解密HTTPS。我想知道当Fiddler可以轻松解密它时使用HTTPS的意义何在? – 2013-03-06 11:13:27

+0

还是由于使用Fiddler解密的网站是从本地主机部署的? – 2013-03-06 11:13:56

回答

28

提琴手执行MITM技术。

要使其工作,你需要信任其证书:

http://www.fiddler2.com/fiddler/help/httpsdecryption.asp

如果你不这样做,它不会解密什么...

如何Fiddler2调试HTTPS流量

答:Fiddler2依靠“中间人”的方式来拦截HTTPS 。在您的网络浏览器中,Fiddler2声称是安全的 网络服务器,而对于Web服务器,Fiddler2模仿网络浏览器。 为了装扮成Web服务器,Fiddler2动态地生成了一个HTTPS证书 。

提琴手的证书不是由你的网络浏览器信任的(因为 提琴手是不是一个受信任的根证书颁发机构),因此 而Fiddler2被截获您的流量,你会在你的浏览器[见一个HTTPS错误 消息。 ..]

+1

因此,防止HTTPS解密的唯一方法不是首先信任证书。我的理解是否正确? – 2013-03-06 11:16:44

+1

让我们说,用户接受证书。我认为小提琴手能够解密这些信息是否正确? – 2013-03-06 11:19:18

+0

是的,因为它声称是目的地;)如果你不信任它,你应该是安全的 – 2013-03-06 11:20:19

8

为了解密HTTPS流量,您必须首先将Fiddler的根证书安装到您的“受信任/根证书”列表中。提琴手的根证书是不是默认随操作系统一起提供的根证书。操作系统通常会在您尝试安装时警告您。

为此,您明确开始信任由Fiddler的根证书签名的任何证书。当你发出一个https请求时,Fiddler将会和你一起执行一次中间人攻击。

假设您以https://google.com的形式提出请求。现在,Fiddler将充当实际的Google服务器,并将为Google.com创建一个虚拟证书并使用Fiddler的根证书进行签名。您将收到此名已由Fiddler签名的虚拟证书。此证书将通过设备的验证,因为Fiddler的根证书现在位于您的可信证书中。现在,您的设备将通过安全的HTTPS连接开始与Fiddler进行通信。 Fiddler会将您的消息转发给Google.com并发回给您。当然Fiddler将能够解密它们。

需要注意的是,从Fiddler到Google的流量将通过第二个Secure https渠道进行。

因此,不用担心https提供的安全性。