阅读 387

「译」浏览器指纹识别:简介和未来的挑战

img-fingerprint_0.png

在过去的几年中,一种称为浏览器指纹识别的技术由于会给隐私带来风险而备受关注。它是什么?如何使用?Tor浏览器在做什么呢?在这篇博客文章中,我在这里回答这些问题。让我们开始吧!

什么是浏览器指纹识别?

自从网络开始以来,浏览器在显示相同网页时的行为方式并不完全相同:某些元素可能显示不正确,它们可能位于错误的位置或整个页面可能被错误的HTML破坏标签。为解决此问题,浏览器开始包含 user-agent header。这会通知正在使用的浏览器上的服务器,以便它可以向设备发送针对其优化的页面。在90年代,这开始了一个臭名昭著的时代,即“ Best on IE”或“ Optimized for Netscape”。 
在2019年,user-agent header 仍在使用,但此后发生了很多变化。Web作为平台在功能方面要丰富得多。我们可以听音乐,看视频,进行实时通信或沉浸在虚拟现实中。我们还可以使用平板电脑,智能手机或笔记本电脑等多种设备进行连接。为了提供针对每种设备和用途进行了优化的体验,如今仍然需要与服务器共享配置信息。“这是我的时区,这样我就可以知道NBA总决赛的确切开始时间。这是我的平台,以便网站可以为我提供感兴趣的软件的正确版本。这是图形卡的型号,以便我在浏览器中玩的游戏可以为我选择图形设置。”
所有这些使Web成为一个真正美丽的平台,因为它使我们能够舒适地浏览它。但是,这也同样可以免费收集所有可用来优化用户体验的信息,以构建浏览器指纹

fingerprint-firefox60.png

在图1中,您可以看到从我的Linux笔记本电脑上获取的浏览器指纹。指纹中的信息是通过带有接收到的HTTP标头的HTTP以及运行小脚本的JavaScript 收集的。“User Agent”表示用户正在Fedora Linux发行版上使用Firefox 67。

content-language”标题表示用户希望接收带有“ US”变体的英语页面。时区的“ -120”表示格林尼治标准时间+2。最后,WebGL渲染器提供有关设备CPU的信息。在这里,笔记本电脑正在使用具有Kaby Lake Refresh微体系结构的Intel CPU。

此示例是指纹中可以收集的内容的一瞥,随着引入新的API和修改其他API,确切的列表会随着时间的推移而发展。如果您想查看自己的浏览器指纹,我邀请您访问AmIUnique.org。这是我在2014年启动的网站,用于研究浏览器指纹识别。利用我们从超过100万名访问者那里收集的数据,我们对其内部工作有了宝贵的见解,并且推动了该领域的研究。

是什么使指纹识别对在线隐私构成威胁?

这很简单。首先,不需要征集所有这些信息的权限。在浏览器中运行的任何脚本都可以在您不知道的情况下静默构建设备的指纹。其次,如果浏览器指纹的一个属性是唯一的,或者多个属性的组合是唯一的,则可以在线识别和跟踪您的设备。在那种情况下,不需要其中有ID的cookie,有指纹就足够了。希望正如我们将在下一部分中看到的那样,在防止用户具有其唯一指纹并因此避免跟踪方面已经取得了很大进展。

Tor +指纹

Tor浏览器是最早在2007年就解决指纹识别所带来的问题的浏览器,甚至在“浏览器指纹识别”一词问世之前。在2007年3月,Tor按钮的更改日志表明包含Java语言挂钩以屏蔽Date Object的时区
最后,Tor开发人员选择的方法很简单:所有Tor用户都应具有完全相同的指纹。无论使用哪种设备或操作系统,您的浏览器指纹都应与任何运行Tor浏览器的设备相同(更多详细信息可以在Tor设计文档中找到)。

fingerprint-tor.png

在图2中,您可以找到运行Tor浏览器8.5.3版的Linux计算机的指纹。
与Firefox相比,我们可以看到明显的不同。首先,没有运行OS Tor浏览器的资料,您将始终具有以下用户代理:
Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0

由于Windows是地球上使用最广泛的操作系统,因此TBB声称它在Windows机器上运行,从而掩盖了底层操作系统。Firefox 60是指TBB所基于的ESR版本。 
其他可见的更改包括平台,时区和屏幕分辨率。

另外,您可能想知道为什么在最大化浏览器窗口时会出现以下消息(请参见图3):“最大化Tor浏览器可以使网站确定您的监视器大小,该大小可以用来跟踪您。我们建议您将Tor浏览器窗口保留其原始默认大小。”

这是由于指纹。由于用户的屏幕尺寸不同,因此确保没有差异的一种方法是让每个人都使用相同的窗口尺寸。如果您最大化浏览器窗口,则最终可能会是在此特定分辨率下使用Tor浏览器的唯一窗口,因此在线识别风险更高。

banner-screen-size-2.png

在浏览器引擎下,已进行了许多修改以减少用户之间的差异。
已引入默认的后备字体以减轻字体和画布的指纹。
默认情况下,WebGL和Canvas API被阻止,以防止秘密收集渲染。
诸如performance.now之类的功能也已进行了修改,以防止浏览器中的计时操作可用于微体系结构攻击。
如果要在后台查看Tor团队所做的所有工作,可以查看Bug跟踪器中的指纹标记。
为了实现这一目标,正在进行许多工作。为了减少指纹,我还开发了一个名为FP Central的指纹网站。 帮助Tor开发人员找到不同Tor版本之间的指纹回归。 
最后,作为Tor Torlift计划的一部分,TBB中出现的越来越多的修改已进入Firefox。

我们在哪里

在过去的几年中,有关浏览器指纹识别的研究已大大增加,并涵盖了该领域的许多方面。在这里,我们将快速概述学术界所做的研究以及指纹在行业中的使用方式。

学术研究

1.带有指纹的跟踪是现实,但它不能替代基于标识符的不同跟踪方案。多年来,已发表了不同的研究试图评估网络上连接的现代设备的多样性[1,2]。我在2018年参加的一项研究[3]令我们感到惊讶,因为它表明,如果唯一性百分比较低,那么大规模跟踪可能是不可行的。无论如何,从这些研究中得出的一个明显结论是:尽管一些浏览器供应商正在尽最大努力减少设备之间的差异,但这并不是一个完美的过程。如果您的浏览器指纹(或组合密码)中有一个没有人拥有的值,那么您仍然可以被跟踪,这就是为什么要谨慎对待指纹的原因。

2.随着网络的日益丰富,新的API进入了浏览器,并且发现了新的指纹识别技术。最新的技术包括WebGL [4,5],Web Audio [6]和扩展指纹[7,8]。为了为用户提供保护,密切注意该领域的任何新进展以解决可能出现的任何问题非常重要。
从过去学到的教训涉及BatteryStatus API。添加它是为了向开发人员提供有关电池状态的信息,以便他们可以开发节能应用程序。最早于2011年起草,直到2015年,研究人员才发现该API可被误用于创建短期标识符[9,10]。最后,这提醒我们,在浏览器中引入新API时必须非常谨慎。在将其部署到最终用户之前,必须进行深入分析以消除或减轻隐藏的指纹向量。为了给Web规范作者提供指导,W3C编写了一份文档,说明如何在考虑指纹风险的同时最好地设计API。

3.如今,还没有解决浏览器指纹问题的最终解决方案。由于它的起源植根于互联网的开始,因此没有一个补丁可以永久修复它。因此,设计防御措施非常困难。多年来,已经尝试并评估了许多方法,每种方法各有优缺点。示例包括阻止属性,引入噪声,修改值或增加指纹多样性。但是,一项重要的发现是,有时没有特定的防御要比拥有特定的防御要好。由于解决方案的设计或编码方式,某些解决方案删除了一些指纹矢量,但在收集的指纹中引入了一些伪影或不一致性。

例如,假设一个浏览器扩展在发送指纹之前更改了指纹的值。除了开发人员忘记覆盖navigator.platform值的事实外,其他所有功能都可以正常运行。因此,用户代理可能会说浏览器正在Windows上运行,而平台仍指示它在Linux系统上。这将创建一个实际上不应该存在的指纹,从而使用户在网上更加可见。这就是Eckersley [1]所说的“可指纹的隐私增强技术的悖论”。通过增加在线隐私,您安装了扩展程序,这些扩展程序最终使您比以前更加可见。

行业

1.要识别使用浏览器指纹识别的网站,可以简单地转向隐私策略。在大多数情况下,您永远不会在其中看到“指纹”一词,而是像“我们收集特定于设备的信息以改善我们的服务”这样的句子。所收集的属性的确切列表通常不准确,其确切用法从分析到安全到市场营销或广告,信息可能是非常不透明的。

使用指纹识别网站的另一种方法是直接查看在浏览器中运行的脚本。这里的问题是,要区分一个良性脚本和一个指纹识别脚本,可能会带来挑战,以改善用户体验。例如,如果某个站点访问您的屏幕分辨率,它是要调整HTML元素在屏幕上的大小,还是构建设备指纹的第一步?两者之间的界线可能很细,并且准确识别指纹脚本仍然是尚未适当研究的主题。

2.较鲜为人知的指纹识别用途之一是用于机器人检测。为了保护他们的网站,一些公司依靠在线服务来评估与外部连接相关的风险。过去,大多数阻止或接受连接的决定完全是基于IP信誉。现在,浏览器指纹用于进一步检测篡改或识别自动化迹象。为此目的使用指纹识别的公司示例包括ThreatMetrix,Distil Networks,MaxMind,PerimeterX和DataDome。

3.在防御方面,越来越多的浏览器供应商正在直接在其浏览器中添加指纹保护。如本博客文章中先前所述,Tor和Firefox通过限制被动指纹和阻止主动指纹矢量而处于这些工作的最前沿。 自最初发布以来,Brave浏览器还包含针对它的内置保护
苹果在2018年对Safari进行了更改以限制它,谷歌在2019年5月宣布了它打算对Chrome进行同样的操作

结论:未来是什么

浏览器指纹在过去几年中增长了很多。由于该技术与浏览器技术紧密相关,因此难以预测其发展,但其使用目前正在发生变化。我们曾经认为可以代替cookie作为最终跟踪技术的事情根本不是真的。最新研究表明,尽管它可以用于识别某些设备,但它无法跟踪每天浏览网络的用户数量。相反,现在使用指纹来提高安全性。越来越多的公司发现它的价值超越了传统的IP分析。他们分析指纹的内容以识别机器人或攻击者,并阻止对在线系统和帐户的有害访问。

指纹识别方面尚待解决的一大挑战是其使用规范。对于cookie,很容易检查cookie是否由特定网站设置。任何人都可以进入浏览器首选项并检查cookie存储。对于指纹识别,则是另一回事。没有直接的方法可以检测指纹尝试,并且浏览器中没有机制可以完全阻止其使用。从法律的角度来看,这是很成问题的,因为监管机构将需要寻找与公司合作的新方法,以确保尊重用户的隐私。

最后,要完成这篇文章,指纹仍然存在吗?至少在不久的将来,是的。该技术植根于网络开始以来存在的机制,因此摆脱它非常复杂。尽可能消除用户之间的差异是一回事。完全删除特定于设备的信息是完全不同的。只有时间才能证明指纹在未来几年中将如何变化,但是随着Web开发的疯狂步伐必将带来很多惊喜,因此它的发展值得密切关注。


非常感谢您一路阅读这篇文章!如果您想进一步研究该主题,我邀请您阅读有关我们最近在线提供的主题的调查 [11]。如果有任何机会在Tor浏览器中找到任何新的指纹识别矢量,强烈建议您在Tor错误跟踪器上打开一个票证,以帮助Tor开发团队做出出色的努力,更好地保护用户的在线匿名性!

参考文献

[1] P. Eckersley。“您的网络浏览器有多独特?”。在国际隐私增强技术专题讨论会(PETS'10)中。[[PDF]](panopticlick.eff.org/static/brow…) 
[2] P. Laperdrix,W。Rudametkin和B. Baudry。“美女与野兽:转移现代Web浏览器以构建独特的浏览器指纹”。在IEEE安全与隐私专题讨论会(S&P'16)中。
[[PDF]](hal.inria.fr/hal-0128547…) 
[3] A.Gómez-Boix,P。Laperdrix和B. Baudry。“躲在人群中:大规模浏览器指纹识别的有效性分析”。在The Web Conference 2018(WWW'18)中。[ PDF ] 
[4] K. Mowery和H. Shacham。“像素完美:HTML5中的指纹画布”。在Web 2.0安全性和隐私(W2SP'12)中。[ PDF ] 
[5]曹Y,李S.和E. Wijmans。“(通过操作系统和硬件级别功能的(跨)浏览器指纹识别”。在网络和分布式系统安全研讨会(NDSS'17)中。[ PDF ] 
[6]
 S. Englehardt和A. Narayanan。“在线跟踪:一百万个站点的测量和分析”。在ACM SIGSAC计算机和通信安全会议(CCS'16)中。[ PDF ] 
[7] A.Sjösten,S。Van Acker和A. Sabelfeld。“通过Web可访问
资源发现浏览器扩展”。在ACM关于数据与应用程序安全性和隐私的会议(CODASPY'17)上。[ PDF ] 
[8] O. Starov和N. Nikiforakis。“ XHOUND:量化浏览器扩展的指纹识别能力”。在IEEE安全与隐私专题讨论会(S&P'17)中。[ PDF ]
[9] Ł。Olejnik,G.Acar,C.Castelluccia和C.Diaz。“漏电的电池”。在国际数据隐私管理研讨会(DPM'15)中。[ PDF ] 
[10] Ł。Olejnik,S。Englehardt和A. Narayanan。“不包括电池状态:评估
Web标准中的隐私”。在国际隐私工程研讨会(IWPE'17)中。[ PDF ] 
[11] P. Laperdrix,N。Bielova,B。Baudry和G. Avoine。“浏览器指纹识别:调查”。[ PDF-预印本 ]

关注下面的标签,发现更多相似文章
评论