如何从 Internet 站点隐藏我正在使用的操作系统?

信息安全 操作系统 互联网
2021-08-20 10:49:45

我目前正试图从我访问的网站中屏蔽我正在使用的操作系统系统。我这样做是为了增加一层安全性。我将如何从网站上隐藏操作系统?

4个回答

目前无法从网站隐藏操作系统类型

针对一般指纹识别和获取有关您的系统的更具体信息的解决方案是使用 Tor 浏览器并将安全滑块设置为高(以禁用 JavaScript)。它在设计时考虑了指纹阻力,试图看起来与浏览器的所有其他实例相同。它以多种方式提供阻力:

  • 与常规连接或 VPN 不同,Tor 公开出口节点的网络堆栈,而不是您自己的计算机,因此您不必弄乱高级 TCP 选项破坏防火墙或修改操作系统中的低级网络代码。

  • 在禁用 JavaScript 的情况下,系统特定的行为,如高分辨率数学库(某些三角函数为每个操作系统提供独特的结果)和数据格式化函数(以特定于操作系统的方式格式化数据)。

  • 用户代理是标准化的。仅从用户代理本身无法知道底层系统是什么。随机更改用户代理会使您成为少数这样做的人中的一员,因此首选使用标准用户代理。

  • 默认窗口大小是标准化的,因此获取窗口大小的 CSS 和 JS 函数无法根据任务栏大小等因素猜测您的操作系统。

但是,即使在 Tor 浏览器上,阻止一般类型的操作系统被知道的任务目前也是不可能的。提供了列入白名单的字体列表以防止字体渲染利用或字体指纹识别,但由于需要使用系统字体,Linux、OSX 和 Windows 的白名单有所不同。目前没有办法解决这个问题。除非您找到一种方法来提供系统字体而无需透露您正在使用的操作系统类型,否则您将无法锁定。

另请注意,EFF 的 Panopticlick 仅旨在提高人们对指纹识别问题的认识。它寻找的签名非常有限,并且不分析有代表性的样本。相反,您应该查看https://amiunique.org/,它是根据当前对浏览器指纹的最广泛研究而设计的。

指纹识别一般如何工作?

虽然无法隐藏您正在运行的操作系统的一般类别,但您可以使其与所谓的“匿名集”融​​为一体。您可以对浏览器进行指纹识别的方法列表,并附上一些注释,以防有帮助:

  • TCP/IP 堆栈指纹识别——TCP 协议提供了一些额外的扩展来改变其行为,例如窗口大小(与浏览器窗口大小无关)、最大段大小 (MSS)、生存时间 (TTL) 等。它还由 nop 选项填充,该选项除了确保选项的大小一致之外什么都不做。不同类别的操作系统使用不同的值。例如,Linux 将 TTL 设置为 64,而 Windows 使用 255。此外,这些选项的顺序以及插入 nop 的位置因操作系统而异。

  • 浏览器公开的通用设置 - 某些内容(例如标题的顺序和标题本身)可以唯一地标识浏览器。这包括系统区域设置、DNT 状态、cookie 状态等。这实际上是 EFF 的 Panopticlick 寻找的所有内容,以及其中的一小部分。

  • WebGL 指纹识别——启用某些类型的硬件加速后,浏览器将获得对 GPU 的低级访问权限。通过告诉 GPU 生成具有特殊图形属性(纹理、光线、透明度等)的某些 3D 形状,并对其应用各种变换,然后对生成的像素图进行散列处理,可以识别特定 GPU 特有的怪癖。这允许识别浏览器,而不管它运行在什么操作系统上。

  • Audiocontext 指纹识别 - 与 WebGL 指纹识别类似,可以告诉浏览器生成三角波音频,然后对其进行压缩,然后增加增益并对生成的音频缓冲区进行哈希处理。无论您启动到什么,此散列对于您的系统都是唯一的。无需实际播放音频即可使其正常工作。

  • 时区指纹 - 在环境变量中设置的系统时区可通过 JavaScript 获得。

  • 数学库指纹* - 当使用某些三角函数时,例如计算值 10 的正弦,系统的数学库被调用,这对于每个操作系统都不同。在各种操作系统中可能是相同的。

  • 画布指纹** - 通过生成可视画布元素并对其进行散列处理,可以获得浏览器独有的结果。

  • 窗口大小指纹** - CSS @media 元素可用于根据浏览器窗口的(通常是唯一的)大小有选择地加载资源。一个网站可以创建大量资源并查看您的浏览器加载哪些资源来判断窗口大小。

  • 字体列表指纹识别 - 您的字体列表通常是相当独特的,并且在不同的操作系统之间有所不同。如前所述,没有实用的方法可以避免这种情况。保留列入白名单的系统字体列表会降低您正在运行的一般操作系统类别的指纹识别准确性。

  • 日期格式指纹* - 如果您Date().toLocaleFormat()在浏览器中调用,输出字符串将取决于您使用的操作系统。Linux、OSX 和 Windows 7 上的输出分别为“Thu 26 Mar 2015 03:43:35 PM EDT”、“Thu Mar 26 15:38:55 2015”和“Thursday, March 26, 2015 3:45:下午 1 点”。

  • 虚拟核心指纹* - hardwareConcurrency JavaScript 功能可用于自动生成多个线程以提高性能。通过从一个开始并逐渐增加,同时给浏览器一个 CPU 繁重的工作负载,可以根据更多线程不再提高性能的点来猜测虚拟内核的数量。

* Tor 浏览器仅在禁用 JavaScript 时缓解这些问题。

** Tor 浏览器在用户的帮助下缓解了这些问题,因此用户必须遵循其建议。

因此,在请求网站时会泄露不同的信息(从用户代理、TCP 连接的源端口到 TCP 数据包上的 TTL。

朝着正确方向迈出的几个好步骤是:

  • 更改使用浏览器的每个请求发送的用户代理字符串,
  • 禁用 JavaScript 和其他脚本语言,
  • 使用多平台浏览器,
  • 使用不允许识别操作系统的 TCP 堆栈。

虽然最后一点在不改变操作系统的情况下很难做到,但其他点“只是”降低了可用性。

最大的影响可能是由用户代理字符串的更改引起的,因为这通常由 Web 服务器记录,但禁用脚本语言也会产生很大的影响。

正如评论所指出的,隐藏你的操作系统并不等同于获得隐私。情况恰恰相反。虽然代理服务器可以解决大部分问题,但没有很好的方法可以在不失去很多舒适的情况下获得隐私。Cookie 和 JavaScript 可以轻松识别您的身份,禁用它们会使网络变成一个毫无用处的地方。

多年来,EFF(电子自由前沿)制作了一个“我的网络配置有多独特”页面,https://panopticlick.eff.org

你可以看到你是多么独特。我怀疑结果会非常令人担忧。

Web 服务器通常会尝试并尝试通过使用浏览器指纹来了解您正在使用的操作系统。

他们可能会使用一些 Javascript 代码来利用 Windows 7 和 html 或 Mac 和其他一些 html 调用的已知问题。

Web 服务器还可以 - 使用从早期会话中识别您的 cookie,或者可以尝试猜测 IP 范围(尽管这似乎不太可能,因为客户端的 NAT 更为普遍)。

这个问题至少在过去 3 年里就已经存在,并且有不少报道表明一些商业网站这样做是为了改变定价。

请参阅https://www.cnet.com/news/mac-users-pay-more-than-pc-users-says-orbitz/

它表明,Mac 用户的收费高于 Windows 用户(约 30 美元);我猜测 Mac 硬件的成本表明更多的可支配收入。

最后,如果您想下载和混淆 Web 服务器,出色的wget命令行实用程序将允许您伪造您的连接。

您可以在http://www.danielmayor.com/how-to-fake-a-browser-connection-with-wget获得更多信息

如果您想为 TOR 或您的 VPN 提供另一层额外的隐私,您可以尝试一个名为Tails的项目。

它是一个基于 Debian 的操作系统,可以安装在 USB 记忆棒上,旨在:

它旨在保护您的隐私匿名性,并帮助您:

  • 匿名使用互联网规避审查;所有到 Internet 的连接都必须通过 Tor 网络;
  • 除非您明确要求,否则不要在您使用的计算机上留下任何痕迹;
  • 使用最先进的加密工具来加密您的文件、电子邮件和即时消息。

注意

这个操作系统不会隐藏你在互联网上的指纹检查。但是,它会隐藏一些信息,例如 MAC 地址供应商,在其他情况下:本地网络扫描。尾部MAC地址欺骗

这是一个关于 Tails 和指纹的 SO 问题 Tails Linux 如何保护您的设备指纹?

以下是其他以隐私为重点的操作系统的列表