ISP 可以选择性地阻止 HTTPS 吗?

信息安全 tls
2021-08-20 15:04:48

ISP 是否可以选择性地阻止 HTTPS,即某些网站不能使用 HTTPS 访问,而其他网站可以?

4个回答

当前的浏览器都执行 SNI(服务器名称指示),以便可以在同一 IP 上设置不同的主机名,但使用不同的证书。为了完成这项工作,目标服务器的主机名明确包含在来自客户端的初始握手包(ClientHello)中。

如果 ClientHello 在 SNI 扩展中包含特定字符串,则通过选择性地阻止它,防火墙可以阻止特定的 SSL 站点,即使不影响同一 IP 后面的其他 SSL 站点。在功能较弱的防火墙(无需更深入的检查)上,您可以简单地使用更广泛的规则来阻止对特定 IP 的访问。

因为这是 SSL 并且防火墙无法访问真实证书,所以它无法向客户端发送正确的错误页面,因此客户端只会在浏览器中收到奇怪的错误消息,因为连接要么被重置,要么超时,具体取决于防火墙处理阻塞。

从技术上讲,ISP 可以阻止任何流量,因为它们是您通往 Internet 其余部分的路径。他们可以阻止任何端口、网站等。

如果您询问他们是否可以将您使用 HTTPS 请求的站点降级为常规 HTTP,他们可能会为您提供这样的页面。但它不会显示为 HTTPS,您会看到 URL 为 HTTP,并且不会看到锁定图标等。在数据包级别,HTTPS 和 HTTP 看起来不同,并提供不同的信息。

ISP 可以做什么

  • 作为网络运营商,ISP 可以阻止所有进出端口 443 的 IP 地址的所有流量,该端口是用于 HTTPS 的标准 TCP 端口。这可能是一个简单的防火墙规则。“阻塞”是指完全阻止 TCP 连接的建立。(通过 HTTPS 发回拒绝页面更具挑战性——理论上是不可能的。)
  • 如果您请求http://example.com/并且服务器通常会发回一个 HTTP 重定向,告诉您的浏览器改为转到https://example.com/,则 ISP 可能会拦截该重定向响应。

ISP 不能做什么

让我们假设 ISP 无法破解或以其他方式解决密码学问题。

  • ISP 无法区分对https://example.com/some/permissible/location的请求https://example.com/some/objectionable/location,因此无法选择性地阻止一个网站内的 URL。
  • 如果两个虚拟主机都托管在同一 IP 地址上,并且它们共享通配符 SSL 证书,则ISP 无法区分https://virtualhost1.example.com/和。https://virtualhost2.example.com/但是,可以通过欺骗 DNS 来实现这一点——见下文。

注意事项

  • 如果用户不小心忽略了所有 SSL 证书不匹配警告,那么这会破坏 SSL 通常提供的所有中间人保护。
  • 如果用户的浏览器将损坏或受损的证书颁发机构识别为权威,那么 ISP 也可以利用这种错误的信任来解密所有 HTTPS 流量,就好像它没有加密一样。
  • ISP 运行 DNS 服务器,您很可能使用他们的 DNS 服务器。他们的 DNS 服务器可以配置为返回欺骗性响应,virtualhost2.example.com或者encrypted.google.com映射到他们阻止的 IP 地址。

是的他们可以。例如,与谷歌的 https 连接在中国被阻止,而用户可以通过 https 访问其他网站,例如 Bing。