一个国家/地区如何阻止/审查加密网站 (HTTPS)?

信息安全 tls 审查制度
2021-08-09 13:22:15

鉴于站点X使用 HTTPS,它怎么会被一个国家/地区阻止?

我的浏览器显示:128 位加密 | ECDHE_RSA 作为密钥交换。

我说它被阻止了,因为当我使用 Tor 时,它工作正常。

需要指出的重要一点是,它并没有像我们通常看到的那样被阻止,它清楚地显示了一个说它被阻止的页面,相反,站点X被阻止的方式是我的浏览器只是不加载页面并显示错误:

此网页不可用,错误代码:ERR_CONNECTION_RESET

对于 HTTPS 版本,并且在请求 HTTP 版本时该常规“页面被阻止”页面。

请注意,没有其他 HTTPS 站点被阻止就这一个!我认为这是排除端口阻塞和协议阻塞的证据。但是,它会留下 DPI;但还有其他 HTTP 阻止的网站,其 HTTPS 版本仍在运行!如果他们可以 DPI 阻止站点X,为什么他们不能以相同的方式阻止其他 HTTPS 站点?

4个回答

TL;DR:TLS 仅保护消息的内容。不是元数据。

通过透明网络进行通信时,重要的是要记住给定通信的某些部分无法使用标准技术进行保护。除非您使用 TOR 之类的东西,否则即使您使用 TLS,您的 ISP 也将能够确定您正在与谁交谈。

打个比方,想象一下通过邮政服务发送一个信封。除了收件人之外,任何人都完全无法访问信封的内容。即使邮递员以某种方式查看内容,他们也无法理解(也许您首先通过凯撒密码运行它?呵呵)。

但是,为了让邮政服务将其发送到正确的地址,信封的外部必须标有目的地地址的清晰可读表示。如果邮政部门不希望任何人能够向“Joe Schmoe, 123 Fake street”发送信件,那么他们就无法投递任何带有该地址的信件。

由于邮政服务无法读取邮件的内容,他们无法识别信件的意图。他们拥有的唯一信息是预期收件人是 Joe Schmoe。他们不能只筛选他们认为是恶意的信件;要么全无。

类似地,IP 协议(​​TCP 在其上运行的路由协议)清楚地标记了“发送者”和“接收者”字段。TLS 无法对此进行加密有两个原因:

  • TLS 在 TCP/IP 之上运行,因此无法修改属于这些协议的部分数据包。
  • 如果 IP 部分被加密,那么运营商服务(ISP 路由器)将无法识别数据包需要到达的位置。

您的 ISP 或国家/地区强制所有流量通过的防火墙无法检查 TLS 流量。他们只知道 TCP/IP 协议提供的元数据。他们还认为您要访问的网站是坏的多于好的,因此无论内容如何,​​他们都会放弃进出该网站的所有流量。

有一种方法可以保护在线通信的元数据,但它速度慢且可扩展性不强。TOR 隐藏服务是实现这一点的一种尝试。当然,隐藏服务只能在 TOR 网络中工作,只有先通过明网连接到机器才能访问。这意味着 ISP 或防火墙仍然知道您正在通过洋葱代理您的数据。无论您如何尝试,您总是会泄漏一些元数据。如果他们愿意,他们可以重置与 TOR 节点的所有连接,以及他们当前阻止的站点。

如果您尝试通过防火墙建立与特定 IP 的直接连接,并且防火墙有明确的规则来终止进出该给定 IP 的任何流量,那么直接连接到该 IP 将始终没有结果。您必须通过 TOR、VPN 或其他代理服务间接连接到它。

许多政府网络过滤器是通过 DNS 过滤实现的。

为了连接https://www.example.com,您的浏览器首先连接到您的互联网服务提供商的 DNS 服务器,并询问您的 IP 地址www.example.com然后,它会与它获得的 IP 建立加密连接。因此,政府指示 ISP 配置他们的 DNS 服务器,以便为他们想要阻止的网站返回不返回 IP 地址或返回虚假 IP 地址。

要对此进行测试,您可以将网络设置配置为使用不同的 DNS 服务器,例如 Google 的8.8.8.8. 如何执行此操作取决于您的操作系统,但应该很容易找到指南。

Web 过滤的另一种方法是通过 IP 地址本身。ISP 只需将其防火墙配置为阻止所有流向example.com. 这样的过滤器比 DNS 过滤器更难规避,但会造成更多的附带损害。大型网络托管商通常在同一个 IP 地址上托管数千甚至数百万个完全不相关的网站。当 ISP 通过 IP 阻止时,他们无法阻止特定站点而不阻止所有其他共享 IP 的站点。

当您连接到 HTTPS 网站时,您要连接的网站的主机名作为TLS 握手的一部分以明文形式通过网络传输。服务器的证书始终包含主机名,因为这是服务器向客户端验证自己的方式:“根据 Jim-Bob 的诱饵商店和证书颁发机构,我是被授权为 提供内容的服务器。” 现代浏览器1还在“服务器名称指示”消息中以明文形式将主机名从客户端发送到服务器,这使得在一个 IPv4 地址上托管许多 HTTPS 网站成为可能。www.foo.example

这是必要的,因为建立安全通道的数学运算方式。基本上,服务器必须在“密钥协商”过程开始之前以明文形式对其主机名(以及其他一些东西,最重要的是它的“公钥”)进行密码不可伪造的断言,否则客户端无法确定中间没有拦截通讯。

但缺点是,“深度数据包检测”防火墙可以得知您正在尝试连接到特定网站,并阻止访问(例如通过伪造 TCP RST 数据包),即使它无法窃听您的通信内容与该站点,即使您从未透露要以任何其他方式与之通信的站点的主机名。

1在这种情况下,“你现在可能遇到的一切,除了 Windows XP 上的 IE 和 3.0 之前的普通 Android 浏览器之外的明显例外;不幸的是,这两者都比我们想要的更常见”。

HTTPS 不会也不能隐藏网站的 IP 和主机名或您正在连接它的事实。一旦建立,它只会加密通过该连接发送的流量

鉴于此,控制线路的人终止特定站点的任何连接是微不足道的。HTTPS(希望)阻止他们做的是监视或修改与站点交换的信息,但您连接到它的事实始终是可见的。