ISP 可以用其他东西替换网站的 HTML/JavaScript/HTTP 标头吗?

信息安全 javascript 饼干 网络服务商
2021-08-20 21:44:53

在我看来,“是的,他们可以”。正如我在某些国家/地区看到的那样,输入成人内容只会发出警告消息,表明该站点已被阻止。有些地方甚至以类似的方式屏蔽 Facebook。

如果是,那么从技术上讲,ISP 可以通过使用错误的 HTML、JavaScript、HTTP 标头、CORS标头更改合法 HTML 和 JavaScript 来窃取网站的用户数据,从而将 cookie/localstorage 中的数据发送到https://somewhereelse.example.com

注1:这只是一些想象的情况

注 2:HTTPS 现在被用作标准。

3个回答

根据定义,您的 ISP 是MITM(中间人),因此可以为您提供它想要的任何内容。

您提到了 HTTPS,这当然会改变游戏规则。是的,当您访问 Facebook 时,ISP 可以提供任何任意内容,但它无法访问Facebook 的私有服务器证书,并且您的浏览器会检测到它没有与正确的服务器通信

现在到了关键部分 -用户将收到警告并且必须决定如何处理它。如果用户忽略警告并告诉浏览器加载虚假网站,浏览器将遵守。有安全意识的用户会意识到发生了一些奇怪的事情,离开网站,甚至可能进一步调查。

这意味着,您的 ISP 可以提供它喜欢的任何内容,但只要您使用最先进的 TLS 加密并验证服务器证书,您就有能力检测到发生了一些篡改。

是的他们可以。重要的部分是 HTTP 仍然是 2020 年的默认协议。

现在大多数网站都使用 HTTPS,但它首先会执行一个不安全的请求,该请求将重定向到 HTTPS。

这意味着,由于 ISP 控制默认 DNS 服务器,因此 ISP 可以使用其 DNS 服务器指向他们自己的反向代理。这个反向代理可以做任何你喜欢的操作。

它当然会在您的浏览器中显示为“不安全”,但您不会遇到可怕的证书错误。

这不适用于在HSTS预加载列表中注册的站点(大多数或所有大型站点都是),或者如果用户之前访问过该站点并且该站点启用了 HSTS。

您的 ISP 可以完全控制所服务的流量。鉴于以下条件为真,他们无法在不检测到任何流量的情况下篡改任何流量:

  1. HTTPS 用于请求。如果使用 HTTP,那么 ISP 可以控制任何事情。
  2. 服务器允许 HTTPS 流量。ISP 可以拒绝转发安全流量,迫使用户在 ISP 篡改的不安全访问或根本不访问站点之间做出选择。
  3. 证书经过安全验证。如果证书没有经过安全验证,那么 ISP 可以冒充 Web 服务器,而 Web 服务器无能为力。
  4. ISP 想要的信息不在元数据中(主题备用名称、服务器 IP 等)。

对于第一个条件。使用 HTTP 请求仍然是许多配置的默认设置,因为浏览器不知道站点是否在有限条件之外支持 HTTPS。在这些限制条件之外,浏览器无法告诉 ISP 正在积极阻止 HTTPS 并篡改来自不支持 HTTP 的站点的 HTTP 请求,因此在支持现有站点方面会出错。这些有限的条件是,如果网站在 HSTS 预加载列表中(值得注意的是 .bank、.insurance、.dev 和 .app tld 都在列表中),或者用户之前曾通过非恶意连接访问过该网站以检索HSTS 标头。或者,用户可能已经设置了浏览器(例如使用 HTTPS 无处不在的扩展)以禁用 HTTP 回退。

对于第二个。如果 ISP 阻止该站点,那么对于任何一个用户都可能决定接受 ISP 的篡改以换取任何服务。特别是如果用户不了解风险,或者依赖 ISP 提供 IT 支持,这很容易发生。

证书经过安全验证:这是最大的弱点。验证过程依赖于拥有一组受信任 CA 的用户,这些 CA 可以被信任,因此他们为几乎任何域颁发的任何证书都可以验证该域。任何在计算机上具有管理员权限的用户/程序都可以安装额外的 CA 证书,这在公司过滤环境中很常见。如果安装了附加证书,则发行实体可以模拟任何站点。哈萨克斯坦一直在政府范围内尝试这样做。这可以由 ISP 以某种形式的家长控制或类似工具的形式在用户不理解的情况下完成。

此外,系统使用复杂的代码来解析和验证证书。在此代码中经常会发现错误,恶意 ISP 可能会利用这些错误。

最后是元数据。为了允许将请求正确路由到其目的地,并且因为 ISP 可以清楚地看到和控制所有名称解析尝试,ISP 可以准确地看到用户正在尝试连接的站点,即使他们不能见页面。这可能足以允许对某些类别的站点进行全面封锁。例如,可以通过阻止对 facebook.com 的所有请求来阻止 facebook。这不允许篡改。