为什么在 Tor 中禁用 JavaScript?

信息安全 javascript 匿名
2021-08-20 01:50:23

为什么不建议在 Tor 中使用 JavaScript?然而,使用 JavaScript,您无法获取用户的 IP 地址,除非通过外部网站。将 JavaScript 与 Tor 一起使用怎么会暴露一个人的身份?

3个回答

我不知道你从哪里得到这些信息,但无论你从哪里得到它,官方文档都更可靠:

我们将 NoScript 配置为在 Tor 浏览器中默认允许 JavaScript,因为许多网站在禁用 JavaScript 的情况下将无法运行。

如果您默认禁用 JavaScript,但随后允许一些网站运行脚本(大多数人使用 NoScript 的方式),那么您选择的列入白名单的网站将充当一种 cookie,使您可识别(和可区分),从而损害您的匿名性。

Firefox 和 Chrome 不同的是,Tor 浏览器没有实现WebRTC,它允许向 STUN 服务器发出请求,这些请求将为用户返回本地和公共 IP 地址。

有许多已知漏洞已被用于通过利用 JavaScript 对 Tor 用户进行去匿名化。

发生这种情况的第一个重大事件是联邦调查局扣押“自由托管”。FBI 保持服务器在线,然后安装了 javascript paylods,利用了 Firefox 中的零日漏洞。这导致计算机从其真实的、非匿名的 IP 回调到 FBI 服务器,从而导致各种用户的去匿名化。您可以在Ars Technica 中阅读有关它的更多信息

一般来说,启用 JavaScript 会为针对 Web 浏览器的更多潜在攻击打开表面区域。对于像国家支持的实体(例如联邦调查局)这样的严重对手,他们可以访问零日漏洞。如果这些零日漏洞的向量被禁用(例如 JavaScript),那么即使他们可以访问零日漏洞等,它们也可能很难找到可行的漏洞利用。

Tor 项目允许在 Tor 浏览器中默认启用 JavaScript 的唯一原因是可用性。许多 Tor 用户并不精通技术,在现代网站中,JavaScript 通常与 HTML5 一起使用。禁用 JavaScript 会导致许多网站无法使用,因此默认启用。

作为一种最佳实践,应该在 Tor 浏览器中禁用 JavaScript,并为所有站点启用 NoScript,除非您有非常令人信服的理由不这样做。

我相信这是为了停止“浏览器指纹识别”。Javascript可以获取很多信息,比如字体在电脑上的安装顺序、屏幕大小等;- https://panopticlick.eff.org/有一个很好的例子

如果您在同一台计算机上绕过 TOR 访问另一个站点,那么这两个站点可能能够比较笔记,并意识到您可能是同一个人。

Panopticlick 说,通过它的方法,85% 的访问者都是唯一可识别的。另一个站点https://valve.github.io/fingerprintjs/似乎更深入地挖掘了已安装的插件,并给出了“94% 的准确度”。

具有讽刺意味的是,由于只有一小部分用户会做诸如阻止 cookie 之类的事情,这样做实际上会增加您的独特性,并使您更容易使用这些技术来识别。