画布是一种 HTML5 API,用于在网页上绘制 2D 图形和动画。
除了其预期功能外,画布还可在浏览器指纹识别中用作额外的熵。
根据普林斯顿大学 Englehardt 和 Narayanan(2016 年)的一项研究,超过 5% 的网站使用画布进行指纹识别。
总之,画布指纹识别的工作原理是要求浏览器绘制一个隐藏的画布图像。
在不同机器上绘制的图像会略有不同,但如果机器完全相同,则图像会相同。
图像绘制完成后,会转换成哈希字符串,在识别过程中进一步用作附加熵。
有关画布指纹识别工作原理的更详细概述,请访问我们的博客。
通过提供三种不同的操作模式,Incogniton 可让您控制浏览器配置文件的画布指纹:噪音、关闭和阻止。
噪音模式
当网站请求从浏览器读取 Canvas 函数时,在噪声模式下的 Canvas 屏蔽算法会在中途拦截,并在读取时添加随机但一致的噪声。
要理解它的工作原理,最好的比喻就是语音修改器。
当您使用特定预设的声音修改器时,它会改变您的声音,使其与您原来的声音明显不同,但在一段时间内保持一致。
关闭模式
将画布屏蔽设置为 “关闭 “时,网站将看到机器的真实画布指纹。
在某些情况下,将模式设置为 “关闭 “可能会有好处,因为网站会对 100% 唯一或被屏蔽的画布读数产生不良反应。 请记住 在现实世界中,画布指纹哈希值并不是唯一的,因为在世界上其他地方存在着多个与你的机器设置相同的拷贝。
因此,如果泄露了真实的画布指纹,你就只能在拥有相同硬件设置的用户中脱颖而出。
此外,更改其他指纹会增加熵值,使网站无法将您的浏览器配置文件视为独立身份。
要进一步降低浏览器配置文件的熵,从而使其更好地融入用户的正常分布,可以在 Mac 电脑上运行 Incogniton。
因为Mac电脑的构造非常相似,所以它们的Canvas指纹也非常相似。
在大多数情况下,相同的机型会有相同的哈希值。
块模式
阻止模式完全禁止网站读取画布。
当网站尝试在浏览器配置文件中执行读取时,如果将画布设置为 “阻止”,返回的值将是空白。
至于如何处理这种情况,完全由网站自行决定。
不过,如果浏览器在检索画布对象数据的过程中出现错误,那么即使用户没有刻意隐藏自己的画布指纹,也可能发生此类事件。
在多台机器上打开浏览器配置文件
别忘了 如果您创建了一个浏览器配置文件,并将 Canvas 设置为 “噪声”,然后在安装了不同硬件的不同机器上打开它,网站就会发现在多次启动时,Canvas 的哈希值并不是持久的。
添加的噪声是持续存在的。
不过,它是作为滤波器添加到现有机器指纹之上的。
因此,如果机器发生了变化,读数也会随之改变。
下面是一个截图示例。
同一浏览器配置文件在两台不同的机器上打开。
虽然该配置文件的噪音是持续存在的,但画布读数仍然不同。
如果需要在多个设备上使用不变的读数,那么解决方案就不多了:
- 在配置相同的虚拟机(VM)或虚拟专用服务器(VPS)上运行 Incogniton,并将硬件指纹设置为噪声模式。
由于这些机器的设置方式相同,屏蔽的 Canvas 指纹将在多台机器上保持一致。 - 在具有相同硬件、驱动程序和操作系统设置的相同型号 PC 上运行 Incogniton。
由于这些机器具有相同的硬件设置,因此屏蔽的硬件打印在多台机器上将保持一致。 - 在相同的 Mac 电脑上运行 Incogniton。
道理相同,但也有助于更好地融入其中,如上文所述。