画布指纹被伪造。这是什么意思?

画布指纹被伪造。这是什么意思?

我最近访问了一个显示设备信息的网站,其中“Canvas 指纹:被欺骗”引起了我的注意。这是什么意思?我该如何恢复它?

设备信息网站 #1:

设备信息网站 #1

设备信息网站 #2:

设备信息网站 #2

答案1

画布指纹 是其中的一部分 设备指纹 在许多可能的方法中(它实际上是较弱的方法之一)。指纹识别具有商业动机,可帮助网站了解您的兴趣和习惯,以便显示相关广告,即使您尚未登录网站来识别自己。

您的浏览器已设置为阻止此方法,但任何想要在世界上唯一识别您的网站都会有许多其他方法可用。仅欺骗 Canvas 方法远远不够。

您可以保持欺骗功能开启或禁用它,因为在这两种情况下,如果网站使用其他方法,您的浏览器仍会被指纹识别。

为了说服自己,请访问 我是独一无二的吗 它将测试是否可以生成唯一指纹来识别您的浏览器(和计算机)。该网站还会告诉您哪些测试组合使其能够计算出您的指纹。

您可以在帖子中找到更多信息 唯一的浏览器/用户 ID?

答案2

你不会想恢复它。从维基百科的画布指纹-页:

Canvas 指纹识别是用于跟踪在线用户的众多浏览器指纹识别技术之一,它允许网站使用 HTML5 Canvas 元素而不是浏览器 Cookie 或其他类似方式来识别和跟踪访问者

帆布欺骗是您的浏览器用来保护用户免受 Canvas 指纹攻击的一种技术。维基百科的设备指纹页面有一节专门讨论欺骗和其他缓解技术。

答案3

画布是网站可以绘制的“工作”区域。拥有该工作区域的大小或详细信息意味着网站可以准确地绘制到浏览器窗口的边缘。

但这也有缺点。虽然许多人可能会在“全屏”模式下使用浏览器,但有些人要么拥有特殊的屏幕分辨率(例如 Surface Pro 系列的分辨率为 2736 x 1824),要么将浏览器设置为仅使用屏幕的特定区域。

这些设置提供了几乎“独特”的浏览器画布大小,可用于分析用户。广告商喜欢任何他们可以获得唯一识别用户的数据。对于您作为用户来说,这是一件坏事,因为它本质上意味着您可能会泄露有关您自己的信息,而您并不想泄露这些信息。

伪造画布指纹有利于保证安全和隐私。

如果您想启用或禁用 Canvas 指纹欺骗,则取决于您的浏览器。

答案4

我能想到两种网站知道你的画布被欺骗的方法。为了理解它,请阅读其他答案或本文关于画布指纹。

方法1)

几年前,流行使用一种称为“噪音”的方法来伪造画布指纹。反检测浏览器可以修改渲染的 HTML 画布图像:如果它们随机更改图像中单个像素的颜色,人眼将无法识别差异,但 png 哈希将完全不同。

根据browserleaks.com要从画布创建签名哈希,我们必须使用 toDataURL() 函数从应用程序的内存中导出像素,该函数将返回二进制图像文件的 base64 编码字符串。然后我们可以创建此字符串的 MD5 哈希,甚至可以从位于每个 PNG 文件末尾 16 到 12 字节处的 IDAT 块中提取 CRC 校验和,这将是我们的画布指纹。

根据Kameleo 反检测浏览器网站正在使用机器学习算法来检测画布噪音。使用高级浏览器指纹识别系统的网站有一个哈希数据库,可以显示画布图像在现有真实设备上的呈现方式。这些带有哈希的图像被存储起来,一旦有新访问者,它们就会使用访问者的浏览器生成哈希。然后他们可以在数据库中查找,如果找到匹配的哈希,他们就会知道这个哈希以前出现过。他们还将获得有关设备的信息,因为基本上相同的哈希只能在具有相同配置的设备上生成。一旦将“画布噪声”应用于图像,哈希值将不会匹配任何有效配置,它将 100% 唯一,并且很明显应用了“噪声”欺骗。

方法2)

反检测浏览器的工作方式不同。浏览器扩展和基本的反检测供应商仅通过覆盖 javascript 函数来伪造浏览器指纹值。很难在不“留下任何痕迹”的情况下覆盖这些函数。这些痕迹检测的新方法也一次又一次地被发现,因此通常会检测到较旧的方法。因此,在您的情况下,可能不是检测到的画布噪音,而是反检测浏览器正在改变 javascript 引擎的行为这一事实。

概括

为了正确地欺骗画布,您需要选择一个使用多种技术来改变浏览器指纹的供应商,而不仅仅是 Javascript 函数覆盖,也不只是在值中添加噪音。

如果你想了解更多关于如何正确伪造画布指纹的信息,我建议你查看这个视频

相关内容