ISP 是否可以选择性地阻止 HTTPS,即某些网站不能使用 HTTPS 访问,而其他网站可以?
ISP 可以选择性地阻止 HTTPS 吗?
信息安全
tls
2021-08-20 15:04:48
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。