在多大程度上可以过滤 HTTPS 流量?

在多大程度上可以过滤 HTTPS 流量?

Privoxy 常见问题解答

Privoxy 如何过滤安全(HTTPS)URL?

由于安全 HTTP 连接是您的浏览器和安全站点之间的加密 SSL 会话,并且旨在确保可靠的安全,因此 Privoxy 几乎无能为力,只能将原始的乱码数据不经处理地从一端传递到另一端。

唯一的例外是按主机模式阻止,因为客户端需要告诉 Privoxy 远程服务器的名称,以便 Privoxy 可以建立连接。如果该名称与仅主机模式匹配,则连接将被阻止。

可以阻止访问 twitter.com 等 HTTPS 网站,但可以阻止嵌入的 HTTPS 内容(例如 YouTube 视频)在网站上加载吗?

答案1

过滤 HTTPS 流量是可能的。你应该问的问题是:过滤到什么程度?

HTTPS 是一种应用层协议,这意味着它被包裹在网络级别的 IP 协议中。因此,源和目标的 IP 地址未加密。因此,可以阻止域名或 IP 地址,有效地阻止所有往返于该地址的流量,包括但不限于 HTTPS。我有证据表明,这种方法足以阻止 YouTube 视频。

但有可能窥视 HTTPS 流量吗?这得看情况。简单的窃听者无法做到这一点。但中间人理论上可以拦截客户端对服务器的会话请求,发送自己的会话请求,从而成为安全服务器的加密客户端。因此,它可以解密服务器的响应。现在,它可以充当原始客户端的安全服务器,与原始客户端建立自己的安全会话,重新加密解密的内容并将其发送给客户端。然而,现代 Web 浏览器通过检查中间人的数字证书很容易发现这种攻击。为了逃避这种检测,中间人必须以某种方式获取原始安全服务器的数字证书的密钥对。不用说,这非常困难;大多数时候是不可能的。

答案2

舰队司令部的答复,按照目前的写法,基本上是正确的。我不想重复这个答案,所以我建议先阅读这个答案(全文)。

但是,有一点需要详细说明。(我认为这比评论占用的字符更多,所以我将其添加为答案。)

为了逃避这种检测,中间人必须以某种方式获取原始安全服务器的数字证书的密钥对。

这只是一种方法。还有另一种方法:“中间人”可以简单地使用自己的证书。许多组织(包括商业公司、公立学校等)都在使用这种技术。

例如,您可以拥有一个提供“HTTPS 过滤”功能的防火墙。该防火墙可以接收出站 HTTPS 流量,并且防火墙可以像网站一样运行,而不是将其路由到网站。然后,防火墙与网站建立自己的 HTTPS 连接,从该网站检索数据,并将数据传递给 Web 浏览器(监视流量并根据防火墙的需要进行任何所需的过滤/更改)。

这样做的挑战在于,除非“中间人”设备(本例中为“防火墙”)处理了关键问题,否则 Web 浏览器就会知道数据不是来自它试图访问的网站。Web 浏览器知道该网站是它想要访问的网站的方式是使用 SSL 技术。(从历史上看,尽管 HTTPS 中的 S 表示“安全”,但从技术上讲,将其视为“基于 SSL 的 HTTP”也是准确的。不过,现在通常是“基于 TLS 的 HTTP”。)

舰队司令部指出,解决这一问题的方法之一是获取网站的私钥。然而,还有另一种方法。

当 Web 浏览器收到 SSL 证书(其中包含一些信息,包括 SSL 密钥)时,无论该证书来自实际网站还是来自“中间人”设备,Web 浏览器都会查看该 SSL 证书是否值得信任,以将其自身标识为网站。Web 浏览器执行此操作的一种常见方法是查看其证书存储。让我们看看当有人尝试访问名为 Example.com 的网站时会发生什么的三种不同场景,然后您将看到允许 HTTPS 过滤工作的另一个可能的弱点。

  • 如果您的网站显示“我是 Example.com,并且您通过我的 SSL 证书知道这一点,并且可以看出该证书是由 GoDaddy.com 认可的”,并且如果您的 Web 浏览器使用的证书存储区具有表明信任 GoDaddy.com 认可的所有内容的证书,则 Web 浏览器会感到满意,您也不会抱怨。
  • 如果您去餐厅并连接到试图使用“中间人”技术监视您的 Wi-Fi 设备,并且 Wi-Fi 设备显示“我是 Example.com,您知道这一点是因为我的 SSL 证书,您可以知道该证书得到了 Cyber​​oam 的认可”。但是,您的 Web 浏览器不包含表明应该信任 Cyber​​oam 的证书。因此,Web 浏览器会向用户显示警告,指出与该网站的通信不可信,因为证书似乎无效。
  • 但是,然后你去上班,工作单位说出于安全原因,你的计算机需要加入 Active Directory 域。你同意了,然后你的计算机信任网络的“域控制器”来执行所需的任何安全配置更改。工作单位想要控制 HTTPS 流量,因此域控制器指定 Cyber​​oam 证书应安装到你的计算机的证书存储中。现在,不仅你的工作单位能够监视你的 HTTPS 流量(而你却不知道),而且餐厅附近的 Wi-Fi 设备也可以。

总体而言,许多组织的态度是“我们想要控制一切,而不太关心最终用户是否拥有他们想要的隐私”。以下是发生此类事情的另一个例子:Security.StackExchange.com 问题:“我的大学强迫我安装他们的 SSL 证书”

我想到有多少人只是选择“我同意”,而没有阅读表格并了解安全隐患。只要大多数普通人会在组织说“这是必需的”时配合步骤,并且只要组织倾向于有这种控制态度,市场似乎就成熟了,公司可以继续销售旨在能够使用私钥窥探 HTTPS 流量的设备,组织也可以将这些私钥安装在机器上(以便设备可以有效地执行窥探 HTTPS 流量的预期任务)。

现在我已经讨论了技术,有效地回答了标题中的问题(“在多大程度上可以过滤 HTTPS 流量?”),让我对我看到的另一个问题提供一个直接的答案:

可以阻止网站加载 YouTube 视频等嵌入的 HTTPS 内容吗?

正如舰队司令部的回答所述,防火墙可以简单地注意到目标 IP 地址与 YouTube 相关,并阻止那里的流量。最终用户会知道流量被阻止,因为页面无法加载。

如果部署了 MITM 技术,那么理论上来说,设备可以允许网络浏览器从网站获取某些内容,而其他内容则可能被更改(包括被屏蔽)。例如,视频可能被允许,但评论可能会被更改(反之亦然)。最终用户可能对正在发生的事情一无所知。

答案3

部署 MitM 的主要驱动因素之一是浏览器拒绝显示代理通过 CONNECT 命令返回的任何内容。

最初出现此问题的原因是,一名研究人员能够让浏览器遵循 CONNECT 方法的重定向。他们本应修复浏览器,但却被建议忽略来自 CONNECT 的响应中的任何不可信部分。

问题在于,通过代理处理的 https URL 由浏览器首先通过代理连接(CONNECT 方法)到服务器。如果代理想要拒绝连接,过去它会发回一个阻止页面响应,该响应可以向用户提供有关正在发生的事情、要做什么等信息。随着浏览器的更改以忽略阻止页面响应,用户体验变得非常糟糕,报告一般连接错误,这让人们寻找路由器/电缆等问题。这是目前的情况,我希望我为此给我们带来的每张支持单都能得到一美元。

为了解决这个问题,并强制浏览器显示正确的阻止页面,需要 MitM。IETF HTTP WG 邮件列表中对此进行了长时间的讨论。

除非浏览器允许显示来自代理的有关连接被阻止原因的消息,否则这种情况将一直存在。

相关内容