Debugging 当Fiddler可以解密HTTPS时,为什么要使用HTTPS

Debugging 当Fiddler可以解密HTTPS时,为什么要使用HTTPS,debugging,networking,encryption,https,fiddler,Debugging,Networking,Encryption,Https,Fiddler,我刚刚发现Fiddler可以解密HTTPS流量 例如,我使用HTTPS在localhost上部署了一个网站。在检查Fiddler中的数据包时,我能够查看所有信息,因为它有一个解密选项 我的问题是,当Fiddler可以轻松解密HTTPS时,为什么要使用HTTPS?Fiddler执行MITM技术 要使其正常工作,您需要信任其证书: 如果你不这样做,它不会解密任何东西 Fiddler2如何调试HTTPS流量 答:Fiddler2依赖于“中间人”的HTTPS方法 拦截。对于您的web浏览器,Fiddl

我刚刚发现Fiddler可以解密HTTPS流量

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


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

Fiddler执行
MITM
技术

要使其正常工作,您需要信任其证书:

如果你不这样做,它不会解密任何东西

Fiddler2如何调试HTTPS流量

答:Fiddler2依赖于“中间人”的HTTPS方法 拦截。对于您的web浏览器,Fiddler2声称是安全的 web服务器,对于web服务器,Fiddler2模仿web浏览器。 为了伪装成web服务器,Fiddler2动态地 生成HTTPS证书

您的web浏览器不信任Fiddler的证书(因为 Fiddler不是受信任的根证书颁发机构),因此 当Fiddler2拦截您的流量时,您将看到HTTPS错误 浏览器中的消息[…]


为了解密HTTPS通信,必须首先将Fiddler的根证书安装到“受信任/根证书”列表中。Fiddler的根证书不是默认随操作系统提供的根证书。当您试图安装此软件时,操作系统通常会发出警告

在这样做时,您显式地开始信任由Fiddler的根证书签名的任何证书。当你现在提出一个HTTPS请求时,小提琴手将与你进行中间人攻击。 假设您在表单中提出请求。Fiddler现在将充当实际的Google服务器,并将为Google.com创建一个虚拟证书,并使用Fiddler的根证书对其进行签名。您将收到此由Fiddler签署的虚拟证书。此证书将通过您设备的验证,因为Fiddler的根证书现在位于您的受信任证书中。现在,您的设备将开始通过安全的HTTPS连接与Fiddler通信。Fiddler会将您的信息转发到Google.com并返回给您。当然,小提琴手将能够解密它们

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


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

https可以防止客户端和服务器之间的窃听。@ColonelPanic我理解这一点。然而,我刚刚发现Fiddler可以轻松解密HTTPS。我想知道,当Fiddler可以轻松解密HTTPS时,使用HTTPS有什么意义?或者是因为使用Fiddler解密的网站是从localhost部署的?因此,防止HTTPS解密的唯一方法是首先不要信任证书。我理解正确吗?假设用户接受证书。我说Fiddler将能够解密信息,对吗?是的,因为它声称是目的地;)如果你不相信它,你应该很安全,提供的答案是好的。如果您对它的内部工作方式感到好奇,那么在这里的幻灯片10和11中有一个类似工具MITMProxy的很好的解释。正如Andrea Ligios指出的,Fiddler2和MITMProxy都要求用户信任中间证书。然后将请求转发到上游(合法)HTTPs站点。代理同样从合法服务器接收响应,将其解密为客户端,使用中间密钥重新加密并转发到客户端。@JoeBorg:HTTPS(正确方式)在1/您选择信任攻击者的证书之前是安全的2/HTTPS通信的发送方和接收方之间连接了一个人/计算机。这总是99%发生,但你没有意识到,所有政府和公司老板都有这种权力。