Clicky

硬件指纹:WebGL

Updated 12/9/18 by Yvonne

WebGL是一种JavaScript浏览器API,用于在网页上呈现3D图像。网站可利用WebGL来识别您的设备指纹。通常,网站可以用两种方法来做到这一点:

  • WebGL报告——完整的WebGL浏览器报告表是可获取、可被检测的。在一些情况下,它会被转换成为哈希值以便更快地进行分析。
  • WebGL图像 ——渲染和转换为哈希值的隐藏3D图像。由于最终结果取决于进行计算的硬件设备,因此此方法会为设备及其驱动程序的不同组合生成唯一值。这种方式为不同的设备组合和驱动程序生成了唯一值。

您可以通过Browserleaks test检测网站来查看网站可以通过该API获取哪些信息。

WebGL图像噪声功能

当您在WebGL设置中选择噪声模式时,Multilogin会拦截网站所请求的WebGL读出,并向其加上一个特殊噪声。噪声值在浏览器配置文件中保持一致性,这意味着该文件的所有WebGL图像读出都会以相同的方式被更改。举个例子,不同页面上同样的WebGL图像会以相同的方式被更改;不同浏览器会话中相同的图像也会以相同的方式被更改。

这使得一个浏览器配置文件中唯一的指纹具有持续性。

由于WebGL图像读出被添加了随机的噪声,如果网站应用了数据分析技术,便会发现指纹是100%唯一的。

WebGL元数据掩蔽

当您将WebGL设为噪音模式时,WebGL元数据就会被Multilogin所掩蔽。这是一种旧有机制,以后我们将通过分别隐藏WebGL元数据和图像来改进这一功能。

启用元数据掩蔽后,Multilogin将根据从指纹数据库中获取的值来更改WebGL供应商和渲染器参数。

关闭模式

将WebGL屏蔽设置成关闭模式后,网站将会得到您设备的真实WebGL报告和图像哈希值。

设置成关闭模式在某些情况下是有利的,比如当网站对100%唯一的或监测到WebGL读出被拦截这些情况有较糟糕的回应时。

请注意!在真实环境中,WebGL指纹的哈希值并不是唯一的,因为世界各地有着与您的设备相同的副本。所以如果您显示了真实的WebGL指纹,您只会被划分到使用同一硬件的用户群。此外,通过变更其他指纹,您可以增加网站将您的浏览器配置文件视为单独身份的熵值。

我们发现了一种进一步降低浏览器文件熵值、使其更好地处于正常用户分布范围内的方法,即在Mac电脑上运行Multilogin。因为Mac都拥有非常相似的出厂设置、WebGL指纹。大多数情况下,同样的模型会拥有相同的哈希值。

在多台电脑上打开浏览器配置文件

请注意!如果您创建了一个将WebGL设置为噪声模式的浏览器配置文件,并且在装有不同硬件的多个设备上打开它,网站就会知道WebGL的哈希值在多平台上运行时并不是持续的。

虽然添加的噪声是持续的,然而它在运行的设备上起到的只是过滤器的作用。所以,如果设备改变了,那么读出也会改变。

以下是一个例子的截图。同一个浏览器配置文件在两个不同的设备上被打开。虽然这个浏览器配置文件的噪声是持续的,但WebGL读出却仍旧不同。

如果您需要在多个设备上获得不变的读出,您可以尝试以下几种解决方法:

  1. 在硬件指纹设置为噪声模式的情况下,在配置相同的虚拟机(VM)或虚拟专用服务器(VPS)上运行Multilogin。由于这些设备是由同一种方式设置的,添加噪声后的音频指纹在多个设备上会保持一致。
  2. 在有着相同硬件、驱动程序、操作系统的同一PC型号上运行Multilogin。由于这些设备有着同样的硬件设置,被掩蔽后的系统指纹在多设备上会保持一致。
  3. 在同样的Mac电脑上运行Multilogin。同样的原理,同上述一样,这有助于团队更好地融合。



Was this article helpful?