浏览器指纹识别完全指南 – 它是什么以及它如何影响你

Shanika W.

By Shanika W. . 30 3 月 2024

网络安全分析师

Miklos Zoltan

Fact-Checked this

在这份指南中,我们将讨论什么是浏览器指纹识别以及它如何影响你的在线隐私,以及你如何避免它。

本文将回答以下问题:

  • 什么是浏览器指纹识别
  • 浏览器指纹识别是如何工作的
  • 浏览器指纹识别技术
  • 浏览器指纹识别的目的是什么
  • 如何测试你的浏览器指纹识别
  • 如何防止浏览器指纹识别

快速总结
浏览器指纹识别通过创建用户的独特档案,使网站能够在数百万用户中识别他们。

指纹识别最令人担忧的方面在于网站能够收集大量信息来为每个人打造独一无二的浏览器指纹。

关键方法包括使用Javascript、Flash、Canvas、WebGL、媒体设备和音频指纹识别技术。

虽然浏览器指纹识别的主要目的是针对性广告,但它也在提升欺诈检测和识别机器人网络方面提供了好处。

许多网站提供服务,让用户发现可以在线追踪到他们的信息有多少。

预防措施总是更好的选择;存在各种策略来阻止网站收集形成你的浏览器指纹所需的数据。

什么是浏览器指纹识别

什么是浏览器指纹识别?

每个人的指纹都是独一无二的,浏览器指纹也是如此,它是网站用来识别和追踪你在众多用户中的独特档案。

浏览器指纹识别,也称为设备指纹识别或在线指纹识别,是一种最初用于安全目的的在线追踪技术。但现在,它比浏览器cookies更侵犯隐私。

网站通过收集你的设备的不同硬件和软件设置来创建这种数字指纹。比如,操作系统、用户代理、CPU核心数量、支持的语言、你的时区、是否启用了cookies、屏幕分辨率、插件、使用广告拦截器、字体等等。

这些数据形成了一个独特的数字指纹,浏览器可以在数百万用户中识别你,其准确性在90到99%之间

与cookies不同,这种技术不会在用户的设备上存储任何关于指纹的信息,使其无状态。这些数据越是独特,网站就越容易创建这种指纹。

创建指纹通常是通过一个在后台默默工作、不知情和未经同意的脚本完成的。浏览器指纹识别使你在更长时间内可被追踪,即使你的设备、软件或浏览器配置发生变化。研究证明,即使你的数据频繁变化,长期追踪也是可能的

浏览器指纹识别

浏览器指纹识别是如何工作的?

这就是浏览器指纹识别的工作方式:

浏览器指纹识别技术

Javascript 和 Flash

网站收集你设备信息的方式有很多。当你访问一个网站时,他们使用带有javascript的脚本来收集关于你的设备的信息,以正确地在你的浏览器中显示内容。

因此,这些脚本大多是合法的,阻止它们将无法正确渲染内容。此外,安装在你浏览器中的 Adobe Flash 插件可以提供很多信息,如你的操作系统、时区、屏幕分辨率等。

网站从所有这些数据中生成一个哈希或一个独特的指纹。

Canvas 指纹识别

这种技术利用 HTML5 canvas 元素秘密收集用户的图形卡、驱动程序和 GPU 的信息。当你访问包含 canvas 指纹识别脚本的网站时,它会强制浏览器用随机的字体和大小绘制一个图像或文本。

由于每个设备都有不同的图形硬件、软件和驱动程序,所以该图像的渲染在每个设备上都略有不同。

然后,指纹识别脚本识别出你的浏览器是如何渲染那个图像的,并通过此推断出你的设备图形、GPU型号和其他信息。

然后,指纹识别脚本将数据转换为 Base64 编码格式并计算 canvas 指纹哈希。

这种技术准确且处理速度快,使其成为最广泛使用的指纹识别技术之一。

WebGL 指纹识别

WebGL 指纹识别与 Canvas 指纹识别非常相似,它强制浏览器渲染图像或文本。然后使用这些图像来检索设备屏幕分辨率、图形卡等信息。

WebGL 指纹识别

媒体设备指纹识别

设备指纹识别揭示了你设备上所有媒体设备的信息,尤其是它们的 ID,这意味着它可以揭示内部媒体组件(如音频和视频卡)和外部媒体组件(如耳机、麦克风和外部扬声器)。

但这种技术使用并不广泛,因为指纹识别脚本需要用户允许才能访问像相机和麦克风这样的媒体设备。

音频指纹识别

这种技术采用与 canvas 打印相同的指纹识别方法。但不是创建一个图像,这种技术测试你的设备如何播放声音。

由于浏览器和设备的音频配置差异,从声音产生的声波是不同的。因此,这种方法可以解密设备的信息,如声音硬件和软件、CPU架构等。

音频上下文指纹识别

音频上下文指纹识别是一种相对较新的技术,由普林斯顿大学的研究人员发现,基于现代浏览器中的AudioContext API。它使用设备的音频签名的特征而不是播放在设备上的声音。

网站可以使用这个AudioContext API来识别音频波形中的变化,从而提取出一个指纹,这个指纹是机器音频栈的一个属性

有一个来自普林斯顿大学的测试页面,可以测试浏览器的指纹识别,使用的是AudioContext和Canvas API。你可以看到音频上下文指纹的图像以及用于生成它的属性。

浏览器指纹识别的应用

  • 定向广告 – 浏览器指纹识别的主要目的是在不经用户同意的情况下秘密跟踪用户。从广告到欺诈检测公司的多个行业都在利用这些指纹来了解顾客的行为。在线广告商和市场营销行业利用它们提供个性化广告。
  • 动态定价 – 指纹还有助于实现动态定价。例如,假设你访问了另一个国家,那里你喜欢的产品的价格因为浏览器指纹数据给出的位置设置而不同,在这种情况下,广告商可以相应地调整价格。
  • 识别潜在的欺诈者 – 银行可以探查其账户的可疑在线行为;例如,当用户在短时间内通过多个位置访问账户时,他们可以使用这个独特的指纹来识别这是否是通常访问账户的用户。因此,他们可以识别并标记任何试图从配置不同的机器上访问账户的黑客。
  • 机器人网络识别 – 此外,浏览器指纹识别还有助于识别机器人网络,因为机器人网络使用不同的设备与目标机器建立连接。Redware Bot Manager就是一个利用指纹作为其检测技术之一的示例机器人管理器。

如何测试你的浏览器指纹?

有几个专门的网站可以检测你的浏览器指纹,给出其独特性的评分以及他们通过指纹跟踪的信息类型的细分。让我们看看这一部分的浏览器指纹检测工具。

我独一无二吗

这个开源网站 amiunique.org 让你发现自己在互联网上的可识别度。

他们的主要目的是“研究浏览器指纹的多样性,并提供数据帮助开发者设计出好的防御措施。”它实现了画布和WebGL指纹识别,为用户提供许多全球统计数据和浏览器特性。

访问它的主页并点击“查看我的浏览器指纹”链接。它将生成指纹并提供用于创建指纹的数据列表。

你也可以下载这个指纹,并使用它的浏览器扩展程序来持续跟踪你的指纹。

该网站会收集你的浏览器指纹,并在你的浏览器上放置一个cookie,为期四个月,以帮助他们的研究目的。

我独一无二吗允许用户下载他们的浏览器指纹,并提供了一个Chrome的浏览器扩展,可以随时间跟踪你的指纹。

掩盖你的踪迹

掩盖你的踪迹是由电子前沿基金会提供的一个网站,它允许你了解你的浏览器指纹的独特性。

这是一个研究项目,调查在线追踪者的工具和技术。一旦你在其主页上点击‘测试你的浏览器’链接,它将生成以下信息。

  • 浏览器是否阻止跟踪广告
  • 浏览器是否阻止不可见的追踪器
  • 你是否受到指纹识别的保护

除此之外,它还提供了关于不同跟踪属性的详细信息。这些信息也帮助电子前沿基金会评估第三方追踪器并识别保护方法。

Privacy.net

Privacy.net让你了解当你访问网站、广告或小工具时,它们能发现关于你的哪些信息。该网站有几个测试,分步骤评估你的浏览器隐私。

  • 基本信息测试揭示了像你的IP地址、位置、浏览器、屏幕分辨率、操作系统以及设备是台式机还是笔记本电脑,以及其中剩余的电池电量等基本信息。
  • 自动填充测试揭示你是否启用了该功能
  • 用户账户测试揭示了你已登录的用户账户
  • 浏览器能力测试提供了你的浏览器特性、能力、请求参数和插件信息
  • 指纹分析基于画布指纹技术生成唯一指纹,并列出了用于生成它的信息。

设备信息

设备信息是一个浏览器安全和隐私测试及故障排除工具,它列出了网站可以收集关于你设备的所有信息。

这份列表如此之长,你可能会惊讶于可以收集和提供给外部的信息有多少。以下是一些它可以揭示的有趣信息。

  • 登录的账户
  • 电池状态
  • 蓝牙
  • 浏览器插件
  • 国家
  • CPU
  • 网络摄像头数量
  • 内存(RAM)
  • ISP
  • 显卡名称
  • 是否支持画布指纹识别
  • 麦克风
  • 鼠标位置
  • 最后按下的键是什么

Hidester

Hidester,一家VPN公司,也提供一个免费工具来测试浏览器指纹。你可以首先查看你的浏览器是否启用了Adblock,是否通过HTTP或navigator启用了不跟踪,以及浏览器的指纹。

额外的信息揭示了计算指纹所需的时间以及关于你的设备和浏览器的基本信息。

如何防止浏览器指纹识别?

现在你已经知道网站用于浏览器指纹识别的信息有多少,你一定在想是否可以完全防止它。浏览器指纹识别是一种相当强大的方法;因此,要完全停止它是挑战性的。

你可以采取一些安全和隐私措施来控制它,但也有一些缺点。所以,这里有一些你可以采取的步骤来避免这种情况。

禁用JavaScript

可用信息越多,浏览器指纹识别你的准确性就越高。浏览器中的JavaScript是提取此类信息的关键技术。

禁用JavaScript意味着网站将无法获取创建指纹的关键信息,如你的插件、系统字体、语言等。

浏览器将只有少量信息,如用户代理名称、HTTP访问头等。因此,在浏览器上禁用JavaScript是保护自己免受指纹识别的有效方法。

但另一方面,它也会影响访问某些网站,因为大多数网站严重依赖于JavaScript,这会影响你的浏览体验。

Disable JavaScript

使用常见的浏览器

使用常见的浏览器是一个简单的技巧,可以使你的指纹尽可能地不独特,从而减少跟踪。因为使用一个常见或流行的浏览器意味着许多用户都在使用它,你就不太可能成为目标。

例如,根据2021年浏览器市场份额统计,Chrome和Safari是全球使用最多的网络浏览器,而Microsoft Windows是最常用的操作系统。

然而,始终使用你打算使用的浏览器或操作系统的最新版本,因为每个操作系统和浏览器都可能有最新的安全更新,以对抗设备指纹识别。

例如,最新的Mozilla浏览器可以防止指纹识别,通过阻止那些已被识别为参与指纹识别的公司的第三方请求。

使用TOR浏览器

Install TOR on Android

如果你非常关心防止浏览器指纹识别,使用TOR可能是最好的解决方案。

因为Tor被设计为为用户实现最大程度的隐私保护,当你用Tor浏览器连接互联网时,它会进入Tor网络。它连接Tor节点加密和私有化你的数据。

这隐藏了源或目的地IP地址。它将通过标准化几种浏览器特征进一步防止浏览器指纹识别。

当你将Tor浏览器与VPN一起使用时,可以进一步减少跟踪能力。例如,你可以选择某些安全级别,这可以禁用javascript,限制字体选项,禁用HTML Canvas渲染等。

Tor的一些设置对每个用户都是相同的,这使得指纹技术能够根据其余的特征生成独特的浏览器指纹。然而,使用Tor浏览器配合VPN可能会降低你的浏览速度。

使用防指纹浏览器

像Tor浏览器一样,防指纹浏览器比普通浏览器提供了更多的隐私保护,这些浏览器默认阻止跟踪。例如:

  • Avast私密浏览器可以阻止在线跟踪并掩盖你的数字指纹。
  • Brave浏览器是基于Chromium的开源浏览器,不收集关于你在线活动的任何信息。此外,它自动阻止追踪器,并通过添加或移除APIs和随机化值,使浏览器实例相似具有防指纹保护
  • DuckDuckGo自动阻止广告,第三方追踪器,并在其浏览器上使用HTTPS加密,使浏览体验尽可能私密。现在,你还可以通过其Chrome扩展程序在Chrome上使用它。

使用隐身模式或私密浏览

在Chrome、Edge、Safari和Firefox等浏览器中使用隐身或私密浏览模式是另一种简单的方式,可以减少生成独特指纹的机会。

当你通过隐身模式浏览时,它不会保存你的在线活动,如搜索历史、密码和cookies。一旦你关闭这样一个私密窗口,它将清除你的浏览会话。

使用这种模式完全阻止网站组装你的指纹是不可能的。然而,通过使用隐身或私密浏览,你仍然可以减少网站能够获得用于指纹识别的数据点。

Browser Incognito Mode

使用VPN

每次上网时使用虚拟私人网络(VPN)是减少浏览器指纹识别影响的另一种方式。VPN在你的设备和VPN服务器之间创建一个加密隧道,隐藏你的IP地址。

因此,浏览器指纹不会使用与设备IP地址相关的任何信息。使用一个流行的VPN并与其他预防技术结合使用是好的。

然而,这不是避免指纹识别的最佳方法,因为除了IP地址之外,还有许多其他信息是可以访问的。

使用反恶意软件软件

反恶意软件软件为浏览器指纹识别和设备的整体安全提供了额外的保护层。这些软件可以防止与浏览器指纹直接相关的有害脚本、广告、恶意软件或间谍软件。

它们可以扫描整个系统并检测任何包含脚本的下载文件。

使用安全插件

你可以安装一些安全插件,它们会阻止指纹识别脚本或追踪器。像隐私獾断开连接AdBlock PlusNoScript这样的插件可以阻止任何监视你的有害广告和任何第三方追踪器。

例如,隐私獾可以自动学习阻止不可见的追踪器。此外,你可以允许这些安全插件仅在某些可能对顺畅渲染至关重要的特定网站上运行脚本。

总结

浏览器指纹识别已经成为在线隐私的威胁之一。网站不仅收集像IP地址这样的常规信息,浏览器指纹识别还使用大量数据点来创建你独特的浏览器指纹。

随着技术的进步,我们将看到更精确的浏览器指纹识别方法的发展,这意味着完全避免它将变得困难。

因此,我们建议智能地使用本文讨论的安全浏览方法组合,以加强你的隐私保护,停止成为浏览器指纹识别的目标。

总结:本文讨论了浏览器指纹识别以及它如何影响你的在线隐私。
浏览器指纹识别生成用户的独特指纹,使网站能够在数百万其他用户中跟踪他们。

文章解释了浏览器指纹识别的工作原理以及收集数据的技术,如Javascript和Flash、Canvas、WebGL、媒体设备和音频指纹识别。

浏览器指纹识别的主要目的是针对性广告,但它也可以用于欺诈检测和机器人网络识别。

文章提供了如何测试你的浏览器指纹识别以及如何通过禁用JavaScript、使用常见浏览器或TOR浏览器、使用隐身模式或私密浏览、使用VPN、防恶意软件或安全插件等方法来预防的信息。

常见问题解答

一些人发现这些问题的答案很有帮助

浏览器指纹识别和基于Cookie的跟踪相似吗?

不。Cookies和浏览器指纹识别完全不同。Cookies存储在用户设备上,用户可以删除它们或让它们过期。但浏览器指纹不会留在用户设备上。此外,随着用户设备和浏览器的变化,指纹也可以更新。因此,它们比Cookies更可靠,存留时间更长。


浏览器指纹识别合法吗?

是的,在世界许多地区都是合法的。例如,尽管欧洲联盟的通用数据保护条例(GDPR)对基于Cookie的跟踪有规定,但与浏览器指纹识别相关的法律尚未生效。


什么是跨浏览器指纹识别?

一篇研究论文《基于操作系统和硬件级特征的(跨)浏览器指纹识别》揭示了浏览器指纹识别在多个浏览器上比单一浏览器指纹识别更准确。之前,浏览器指纹识别仅限于单个网络浏览器。这意味着,如果你定期切换到另一个浏览器,你的指纹不能在其他浏览器上使用。


如何在Firefox中阻止指纹识别?

Firefox有一个新的指纹阻止器,你可以通过几个步骤启用。打开Firefox并点击设置,然后是隐私与安全标签。在结果页面上选择标准浏览器隐私选项,这将自动阻止指纹。


浏览器指纹识别可靠吗?

研究发现,浏览器指纹识别是识别独特用户的一种非常准确的方式。例如,在一项收集了3615个指纹、持续三个月的研究中,浏览器指纹识别的成功率达到了99.2%。