使用 HTTPS,中间人攻击者能够收集到哪些信息?

信息安全 tls 中间人
2021-09-01 13:02:46

考虑访问一个使用 HTTPS 处理其所有流量的站点的用户。

黑客正试图使用​​中间人窥探用户。他能收集到什么信息?

显然内容是加密的,我们假设他无法解密它,但他可以在不这样做的情况下学到什么?

我正在考虑的事情是:

  • 用户正在访问该站点的事实。我猜可能会有一个域名的 DNS 请求,并且该请求不会被加密,所以黑客至少知道用户正在访问这个特定的站点。

  • URLs - 请求的实际 URLs 和内容一样加密吗?如果没有,某些 URL 可能包含对攻击者有用的信息(即请求了哪些页面、请求数据的 ID 号等)

  • 传输数据的大小:如果黑客知道网站做了什么以及预计会下载或发布到它的内容,我猜他可以仅通过数据大小大致计算出用户在做什么每个 https 请求/响应。例如,如果该站点的目的是允许用户下载受保护的文档,那么黑客可以推断出用户下载了站点上的哪些文档。

  • 请求/响应时间:与上述类似,如果黑客了解该站点,并且知道某个特定页面的响应时间很慢,那么他就能够推断出用户何时访问该页面。

以上大部分内容都依赖于黑客对该网站的一些现有知识,因此这不是我们所说的普通黑客;这是针对网站和/或个人的特定目标。

以上有多少是实际可行的?如果我正在开发一个敏感网站,我担心它们是对的吗?还有其他我没有想到的角度吗?

3个回答

在 SSL 连接中,GET 或 POST 部分是加密的。例如:访问者:https : //www.yoursite.com/shoppingcart.aspx

www.yoursite.com          visible 
GET /shoppingcart.aspx    encrypted
HTTP/1.0                  encrypted

您正在考虑的称为推理攻击,攻击者只需少量信息,就可以将拼图拼凑在一起。所以你问:

如果黑客知道该站点的功能以及预计将下载或发布到该站点的内容,我猜他将能够仅通过每个 https 请求/响应的数据大小来大致计算出用户在做什么。

情况不一定如此。同样,由于 GET 和 POST 都是加密的,因此在一定程度上这将是一个毫无价值的猜谜游戏。考虑以下:

示例 A

Site contains 1mb file called topsecret.docx
Visitor uploads a 1mb video of cats

你会看到什么:

Site <--> 1mb session <--> Visitor

因为 GET 和 POST 都是加密的,所以您无法确定用户是下载还是上传。你所看到的只是一个 1mb 的交换。任何攻击者都会在玩猜谜游戏时浪费大量时间和资源,但请考虑组合中的第三个站点。

示例 B

Site A contains 1mb file called topsecret.docx
Visitor does something
Visitor visits Site B
Site B now contains topsecret.docx

你会看到什么(当然是通过网络嗅探):

   Visitor <--> Site A (1mb session)
   Visitor <--> Site B (1mb session)

如果您可以在两个站点上找到相同的文档,您可以推断访问者去了站点 a,下载了一个文件,然后访问了该文件出现的站点 b。您可以对其进行 md5 以进一步证明文件,但是,您需要找到初始文件。否则,访问者可能会同时访问这两个站点,并上传或下载猫视频。

对于有资源的人来说,发动这种攻击会更容易,直接通过被盗的证书、sslstrip 或其他一些诡计来直接 MiTM 网站,而不是玩猜谜游戏。

修改为回答 Lekensteyn 的评论

Lekensteyn,我添加了一个虚构的例子来说明一个观点。它仍然成立,所以我再举一个例子

站点 A 包含 2 个文件(File1 (1mb) 和 File2 (200mb)

Visitor <--> download File2 <--> SiteA 

在上面,访问者正在下载一个 200mb 的文件,并在开始时以 1mb 的速度停止会话。因为你看不到他做了什么,流量分析显示会话是 1mb 连接。你会看到什么:

Visitor <--> 1mb session <--> Site A

您是否愿意根据大小来赌访问者下载 File1 的最后一美元?在我的示例中,我使用了一个粗略的机制来说明我的答案。有很多我本可以详细介绍的,但为了简洁起见,我选择不详细介绍

使用 HTTPS 网站上的 MitM,最大的威胁来自用他的流氓证书替换网站的 SSL 证书的能力。是的,用户将收到一个警告,指出该站点与证书不匹配,但用户可能只是单击继续。一旦证书被替换,他可以解密所有通信,因为他拥有自己证书的私钥。

如果我们假设他没有替换证书,那么您说得对,他可以从窃听连接中收集到的信息不多。我相信你已经涵盖了大部分要点。

用户正在访问该站点的事实。我猜可能会有一个域名的 DNS 请求,并且该请求不会被加密,所以黑客至少知道用户正在访问这个特定的站点。

是的,如果 DNS 请求可以是 MITM 的,DNS 请求将显示主机名,并且 HTTPS 连接的目标 IP 和端口也以明文形式可见,以便路由到服务器。如果在客户端上启用了SNI,那么域名也以明文形式传输,如果不是,证书中返回SubjectAltNames将指示一个域名,或者可能很容易根据知识缩小范围的一小部分可能的域名攻击者可能来自其他来源。

URLs - 请求的实际 URLs 和内容一样加密吗?如果没有,某些 URL 可能包含对攻击者有用的信息(即请求了哪些页面、请求数据的 ID 号等)

URL 在 HTTPS 会话期间是私有的。因此,如果用户访问https://example.com:444/buyThing/thing.php?id=123,MITM 只能example.com通过 TLS确定目的地位于端口 444 上。

传输数据的大小:如果黑客知道网站做了什么以及预计会下载或发布到它的内容,我猜他可以仅通过数据大小大致计算出用户在做什么每个 https 请求/响应。例如,如果该站点的目的是允许用户下载受保护的文档,那么黑客可以推断出用户下载了站点上的哪些文档。

是的,在侧信道攻击中使用的数据量是可能的

请求/响应时间:与上述类似,如果黑客了解该站点,并且知道某个特定页面的响应时间很慢,那么他就能够推断出用户何时访问该页面。

是的,这是真的,就像这里描述定时/边信道漏洞一样

以上有多少是实际可行的?如果我正在开发一个敏感网站,我担心它们是对的吗?还有其他我没有想到的角度吗?

好吧,它们都是可行的。被披露的域名更多的是个人隐私问题,而不是安全问题。如果他们自己对此感到困扰,他们将不得不使用诸如 TOR 之类的服务。

如果该数据被站点和/或浏览器处理不当,请参阅此答案以了解我的其他一些见解,以了解 MITM 可能能够看到的内容,例如referer标题中的URL

这样的其他类型的侧通道攻击也可以执行,例如由于加密数据的小尺寸,通过 HTTPS 的自动完成可能导致字符被确定。