硬件指纹:WebGL
WebGL是一种JavaScript浏览器API,用于在网页上呈现3D图像。网站可利用WebGL来识别您的设备指纹。通常,网站可以用两种方法来做到这一点:
- WebGL报告——完整的WebGL浏览器报告表是可获取、可被检测的。在一些情况下,它会被转换成为哈希值以便更快地进行分析。
- WebGL图像——渲染和转换为哈希值的隐藏3D图像。由于最终结果取决于进行计算的硬件设备,因此此方法会为设备及其驱动程序的不同组合生成唯一值。这种方式为不同的设备组合和驱动程序生成了唯一值。
指纹检测
您可以通过Browserleaks网站来查看网站可以通过该API获取哪些信息。
WebGL模式
在Multilogin中,您可以通过添加随机的持续性噪声来控制WebGL的读出,或允许网站获取您设备的真实音频指纹。
WebGL图像噪声模式
当您在WebGL设置中选择噪声模式时,Multilogin会拦截网站所请求的WebGL读出,并向其加上一个特殊噪声。噪声值在浏览器配置文件中保持一致性,这意味着该文件的所有WebGL图像读出都会以相同的方式被更改。举个例子,不同页面上同样的WebGL图像会以相同的方式被更改;不同浏览器会话中相同的图像也会以相同的方式被更改。
这使得一个浏览器配置文件中唯一的指纹具有持续性。

WebGL元数据掩蔽
当您将WebGL设为噪音模式时,WebGL元数据就会被Multilogin所掩蔽。这是一种旧有机制,以后我们将通过分别隐藏WebGL元数据和图像来改进这一功能。
启用元数据掩蔽后,Multilogin将根据从指纹数据库中获取的值来更改WebGL供应商和渲染器参数。

关闭模式
将WebGL屏蔽设置成关闭模式后,网站将会得到您设备的真实WebGL报告和图像哈希值。
设置成关闭模式在某些情况下是有利的,比如当网站对100%唯一的或监测到WebGL读出被拦截这些情况有较糟糕的回应时。

我们发现了一种进一步降低浏览器文件熵值、使其更好地处于正常用户分布范围内的方法,即在Mac电脑上运行Multilogin。因为Mac都拥有非常相似的出厂设置、WebGL指纹。大多数情况下,同样的模型会拥有相同的哈希值。
在多台电脑上打开浏览器配置文件
虽然添加的噪声是持续的,然而它在运行的设备上起到的只是过滤器的作用。所以,如果设备改变了,那么读出也会改变。
添加噪声后的AudioContext哈希值并不一致
以下是一个例子的截图。同一个浏览器配置文件在两个不同的设备上被打开。虽然这个浏览器配置文件的噪声是持续的,但WebGL读出却仍旧不同。

如果您需要在多个设备上获得不变的读出,您可以尝试以下几种解决方法:
- 在硬件指纹设置为噪声模式的情况下,在配置相同的虚拟机(VM)或虚拟专用服务器(VPS)上运行Multilogin。由于这些设备是由同一种方式设置的,添加噪声后的音频指纹在多个设备上会保持一致。
- 在有着相同硬件、驱动程序、操作系统的同一PC型号上运行Multilogin。由于这些设备有着同样的硬件设置,被掩蔽后的系统指纹在多设备上会保持一致。
- 在同样的Mac电脑上运行Multilogin。同样的原理,同上述一样,这有助于团队更好地融合。