无论你怎么看,WebGL指纹识别在追踪方面都非常有效。现在就来了解它的工作原理以及如何保护自己。

如果你对网络跟踪不太了解,浏览器指纹这个词可能看起来就像是网络跟踪器为你的浏览器生成的一个神奇的ID。实际上,浏览器指纹是通过从你的浏览器和设备中推断出的多个细节生成的多个指纹的组合。

其中一些最突出的指纹类型,如音频指纹、WebGL指纹和Canvas指纹,都是与硬件相关的,难以规避。

本文将重点介绍WebGL指纹。我将讨论你需要了解的关于这种跟踪方法的所有信息,以便保持领先并保护自己。讨论的内容包括WebGL指纹是什么、它的工作原理、如何防止跟踪器获取你的唯一ID,以及跟踪器如何强行突破。


什么是WebGL指纹?

WebGL指纹是根据设备显卡的能力和渲染特性,由网站和网络跟踪器为你的浏览器/设备创建的唯一标识符。生成这个唯一ID的过程被称为WebGL指纹识别。

它使用WebGL API来接口并绘制你不可见的图形,然后使用生成的图形生成一个哈希码。这个哈希码存储在他们的数据库中,用于在不同网站和会话中跟踪你。

WebGL(Web图形库)是一个JavaScript API,用于在网络浏览器中使用设备的底层显卡实现和设计3D图形。由于显卡在渲染特性和能力上的差异,生成的唯一ID在唯一识别方面非常有效。

WebGL API与Canvas API不同,Canvas负责处理2D图形,而WebGL负责处理3D图形。


为什么网络服务使用WebGL指纹?

WebGL指纹用于网络跟踪。Cookies和IP地址很容易被操控和规避。它们已经使用了很长时间,并一直是有用的,直到现在不再如此。用户无需使用任何工具就可以进入设置区域清除Cookies。IP地址也可以通过代理和VPN进行掩盖。

然而,浏览器指纹(WebGL是其中的一部分)并不容易被操控。事实上,尝试这样做甚至可能使你更具唯一性。那么,它有哪些具体的应用场景呢?

  • 广告

在网络广告中,你对用户个人偏好的了解越多,向他们展示的广告就越有针对性。广告服务使用指纹跟踪用户跨域活动,以便了解他们喜欢什么并在线积极互动。过去,Cookies曾经有效,但考虑到第三方Cookies将逐渐消失,指纹识别仍然是可行的选择。此外,用户可以禁用甚至清除Cookies,这使得指纹识别成为最佳选择。

  • 垃圾邮件和欺诈保护

在对抗垃圾邮件和欺诈方面,阻止用户IP地址已失败,因为用户可以使用轮换代理频繁更换IP。通过使用指纹识别,网站能够跟踪用户,无论他们是否清除Cookies或更换IP。这有助于抵御网络上的垃圾邮件和欺诈。通过这种方式,安全公司甚至可以检测到风险设备,并在其执行恶意操作之前将其阻止。

  • 多账户检测

网站可以利用这一点检测在同一设备上管理的账户,无论它们是否共享相同的IP地址。这被用来暂停多个账户或将账户关联在一起。


WebGL指纹是如何工作的?

以下是典型的WebGL指纹引擎工作方式的描述。需要注意的是,WebGL不像Cookies那样在你的浏览器中留下任何痕迹。它作为网站正常运行所需的JavaScript的一部分被偷偷嵌入,并将生成的指纹作为AJAX的一部分,通过AJAX发送的正常请求发送到网站的服务器。

当你访问一个网站时,它会发送给你一堆文件,包括HTML、CSS、JavaScript、图片等。如果要进行WebGL跟踪,代码将包含在你的浏览器加载的JavaScript中。如果你关闭JavaScript执行,网站及其跟踪器将无法生成WebGL指纹。然而,对于某些网站,这将使它们无法使用,因为它们需要JavaScript来渲染内容。

JavaScript代码的作用是请求WebGL上下文。WebGL上下文基本上是JavaScript代码与机器显卡之间的接口。一旦获取上下文,JavaScript代码就能够知道显卡的特性、版本、信号、兼容性和适应性,以及其他所有对其特定操作有用的细节。

这有两个主要原因。首先,它需要知道与哪些图形兼容,以及如何优化图形生成并加快渲染速度。

在获取上述细节后,下一阶段是图形操作阶段,在此阶段绘制用于生成指纹的形状和其他图形。绘制的图形在多个设备上是相同的。然而,由于生产批次的原因,即使是相同的设备和型号在渲染时也可能略有不同。

然后,代码使用渲染的图形生成一个哈希码,这在大多数情况下对于设备来说是唯一的。这个代码被发送到他们的服务器并存储在那里。

每次请求时都会进行此操作,当你的指纹发送到服务器时,服务器会检查其数据库中是否已经存在。通常,不会使用非唯一的数据库。已经存储的唯一指纹意味着用户之前与他们有过互动。


WebGL指纹识别的效果如何?

WebGL指纹识别的有效性不在于将其作为单一的跟踪方法使用,而是与其他指纹方法结合使用,如基本的浏览器信息和其他高级方法,如Canvas和音频指纹识别。

根据电子前沿基金会(EFF)进行的一项研究,80% – 90%的隐私意识强的个体已经通过浏览器指纹被唯一识别。如果研究范围扩大到非隐私个体,这个百分比将会更高。

这就是网络浏览器指纹的有效性。这部分是由于软件版本和模块以及硬件(如图形和音频卡)的差异。例如,相同的GPU(显卡)型号可能会因为生产批次的不同而生成不同的唯一ID,从而导致哈希的细微差异。

然而,正是这种细微差异导致了唯一ID。如果考虑到使用了超过10到20个标识符,你可以判断出你很可能是独一无二的,并且已经被跟踪,除非你在过去尝试过防止这种情况发生。


WebGL指纹识别的副作用

WebGL指纹识别有一些缺点,使其在某些方面显得不道德,仅凭这些原因,你就需要保护自己免受这种做法的侵害。这些影响包括隐私和安全问题。

隐私问题

WebGL指纹识别不仅可以跟踪你在一个网站上的活动,还可以在整个互联网范围内跟踪,只要你访问的网站上安装了跟踪器。这是一种侵犯隐私的行为,可能被用于恶意活动。

这种技术唯一的好用例是网络服务可以确定访问你账户的设备是否是你已知的设备,并要求对新设备进行额外验证。除此之外,我想不出对你有益的用例。广告公司建立你的偏好档案对你没有好处,反而会创建一个系统,用烦人的广告来打扰你。

安全问题

安全问题并不简单,需要非常熟练的人才能执行。拥有大量指纹数据的黑客可以利用这些数据检测特定设备的漏洞,然后使用这些ID来确定哪些设备是易受攻击的。这可以帮助他们准备攻击,并提高成功率。


如何防止WebGL指纹识别

如果您只关注 WebGL 指纹识别,以下是一些可以降低被指纹识别风险的方法。

禁用 WebGL

WebGL 可以禁用吗?可以,但是会有什么副作用吗?可以,但仅限于依赖 WebGL 渲染 3D 图形内容的网站。问题是,禁用 WebGL 并不容易。过去,您只需通过 Chrome 即可完成此操作。

然而,在 Chrome 的更高版本中,这已从配置页面(about:flags)中获取。您需要通过命令行来禁用它。在 macOS 中,命令行称为终端。启动它并输入以下命令,

open -a “Google Chrome” –args –disable-webgl

在Firefox中,你可以通过在地址栏中访问`about:config`,然后搜索`webgl.disabled`,将其值设置为true来禁用WebGL。其他浏览器的步骤可能不同,但也可以实现。请查阅如何在你的浏览器中进行此操作。

如前所述,禁用WebGL会导致某些网站无法正常运行。

使用 WebGL Fingerprint Defender

WebGL Fingerprint Defender 是一款浏览器扩展程序,可用于 Chrome,也可作为 Firefox 的附加组件。这是目前推荐的对抗 WebGL 的方法,因为它不能阻止指纹识别。

相反,它每次请求 WebGL 指纹时都会向生成的指纹添加随机噪声,从而每次提供的值都与之前生成的指纹不匹配。您可以在此处下载适用于 Chrome 的版本,在此处下载适用于Firefox 的版本。


WebGL指纹识别的防范措施有效吗?

防范WebGL指纹识别几乎不起作用。如果你拒绝访问WebGL,一些服务和跟踪器将使用替代方法结合缺乏访问权限来生成一个独特的指纹,这违背了最初阻止它的原因。对于某些网站来说,他们不会使用替代方法,但你的活动会显得可疑,只需一个错误的举动就可能被封禁。

唯一有效的方法是每次请求WebGL指纹时都进行伪装,像WebGL指纹防御器这样的工具是一个不错的选择。然而,这并不是100%有效。这是因为网络服务和跟踪器在检测伪装方面变得越来越先进。

例如,如果一个伪装工具生成随机噪声来添加到指纹中,一些跟踪器会在DOM加载之前和加载完成之后分别请求两次。如果值不同,那么就有一个活跃的伪装器,它将拒绝使用该值并使用替代方法。

与其试图保护自己免受WebGL指纹识别,不如更关注浏览器指纹识别,因为大多数网络服务使用多种指纹识别方法来跟踪和记录你的网络活动。


结    论

WebGL指纹在未经你同意的情况下有效地唯一识别你的在线身份。如果你关心隐私,不希望有人监控你的网络活动,那么你应该关注WebGL和其他形式的指纹识别,因为即使声称这些标识符是匿名的,它们仍然具有唯一识别你的能力。

这篇文章有用吗?

点击星号为它评分!

平均评分 / 5. 投票数:

到目前为止还没有投票!成为第一位评论此文章。

No more articles