代码之家  ›  专栏  ›  技术社区  ›  INS

HTTPS连接是否可以被中间人劫持?

  •  14
  • INS  · 技术社区  · 15 年前

    我在工作中使用gmail,但访问第一个网页时需要输入代理的密码。从浏览器内部询问密码。我从代理服务器收到一份证书,我必须接受该证书才能使Internet连接正常工作。

    在这种情况下,是否可以跟踪Gmail和浏览器之间的HTTPS连接?

    6 回复  |  直到 14 年前
        1
  •  11
  •   tangens    15 年前

    Fiddler 描述如下:

    问:HTTPS协议旨在防止流量查看和篡改。既然如此,Fiddler2如何调试HTTPS流量?

    答:Fiddler2依赖于“中间人”的方法来拦截HTTPS。对于Web浏览器,fiddler2声称自己是安全的Web服务器,而对于Web服务器,fiddler2则模仿Web浏览器。为了伪装成Web服务器,fiddler2动态生成一个HTTPS证书。

    您的Web浏览器不信任Fiddler的证书(因为Fiddler不是受信任的根证书颁发机构),因此当Fiddler 2正在拦截您的流量时,您将在浏览器中看到一条HTTPS错误消息,如下所示:

        2
  •  11
  •   rook    15 年前

    跟踪?虽然HTTPS加密了流量,但你仍然知道双方的IP地址(Gmail和浏览器)。HTTPS并不能解决这个问题,但已经创建了不同的密码混合 The Onion Router(TOR) 这使得服务器和客户机都无法定位。

    在“正常”情况下,当攻击者试图mitm https时,您的浏览器应该抛出一个证书错误。这就是由pki支持的SSL的全部要点。 然而 2009年,莫西·马伦斯皮克发表了一篇杀手级的黑帽子演讲,在演讲中他可以毫无预警地使用HTTPS。他的工具叫做 SSLStrip 我强烈建议你看那个视频。

    谷歌开发了一个很好的sslstrip解决方案。它叫 STS ,您应该在 全部的 您的Web应用程序。目前只有Chrome支持STS,但火狐正在努力支持这一功能。最终所有浏览器 应该 支持它。

        3
  •  2
  •   Martin Smith    15 年前

    是的,他们能。您可以通过下载fiddler并使用它来解密HTTPS通信来自己看到这一点。小提琴手出示自己的证件,扮演中间人。您需要在浏览器中查看该证书,以查看它是否实际由Gmail颁发。

        4
  •  1
  •   Gumbo    15 年前

    似乎重新谈判是TSLV1中的一个弱点(参见 TLS renegotiation attack. More bad news for SSL )

        5
  •  0
  •   Community CDub    8 年前

    如其他答案所指出(另请阅读 here )为了真正做到“中间”(即不包括捕获发生在某个端点、浏览器内部或Web服务器内部的情况),必须设置某种代理,与浏览器和服务器对话,假装两者都是另一面。但是您的浏览器(和ssl)足够智能,可以意识到代理发送给您的证书(“说:我是gmail”)是非法的,即没有由受信任的根证书颁发机构签名。然后,只有当用户明确接受该不受信任的证书,或者代理使用的CA已插入到其浏览器中的受信任CA注册表中时,这才会起作用。

    总之,如果用户使用的是干净/可信的浏览器安装,并且拒绝不可信的权威机构颁发的证书,那么“中间人”无法解密HTTPS通信。

        6
  •  -1
  •   Henri    15 年前

    它不能在Gmail Web服务器和您的PC之间被跟踪,但是一旦它在PC内部,它就可以被跟踪。我不明白为什么有两个人声称可以用MITM跟踪HTTPS,因为HTTPS的全部目的是防止此类攻击。

    关键是所有HTTP级别的消息都是加密的,MAC-ED。由于证书信任链,您不能伪造证书,因此不可能在中间执行一个人。

    那些声称这是可能的人,你能详细说明它是如何、为什么是可能的以及现有的对策是如何规避的吗?

    推荐文章