为什么不建议在 Tor 中使用 JavaScript?然而,使用 JavaScript,您无法获取用户的 IP 地址,除非通过外部网站。将 JavaScript 与 Tor 一起使用怎么会暴露一个人的身份?
为什么在 Tor 中禁用 JavaScript?
有许多已知漏洞已被用于通过利用 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 之类的事情,这样做实际上会增加您的独特性,并使您更容易使用这些技术来识别。