浏览器指纹脚本是在网页内部运行的一段JavaScript代码,它通过测试某些浏览器功能的存在来工作。
如今,浏览器指纹识别通常被在线广告商用作下一代用户跟踪机制。广告商运行不同类型的指纹识别操作,为每个用户创建一个或多个指纹,然后在用户访问互联网上的其他网站时使用这些指纹跟踪他/她。
由于在线广告商目前使用浏览器指纹识别的方式侵犯隐私,一些浏览器制造商(如Firefox、Chrome、Opera、Brave和Tor Browser)已部署功能来检测和阻止这些类型的恶意代码。
在本月早些时候发表的一篇学术论文中,来自爱荷华大学莫兹拉分校(University of Iowa,Mozilla)和加州大学戴维斯分校(University of California,Davis)的一个学者团队分析了目前网站运营商如何使用流行的浏览器指纹脚本。
根据Alexa网络流量排名,研究小组使用他们自己开发的名为Fp-Inspector的机器学习工具包,扫描并分析了互联网上最受欢迎的10万个网站。
研究小组表示,我们发现,目前超过10%的前10万名网站和超过四分之一的前10K名网站都存在浏览器指纹识别功能。
不过,研究团队也指出,尽管目前有大量网站使用浏览器指纹识别,但并非所有脚本都用于跟踪。一些指纹脚本也用于欺诈检测,因为自动机器人往往具有相同或相似的指纹,而指纹脚本是检测自动行为的可靠方法。
但研究小组还分析了脚本试图提取的浏览器或JavaScript API功能。
研究人员说,我们的主要见解是,浏览器指纹脚本通常不会孤立地使用一种技术(例如,画布指纹),而是将几种技术结合在一起。
研究人员表示,他们发现了采用重复指纹识别技术的集群,但也发现了包含新技术的集群,这些新技术此前并未被报道为潜在的指纹识别途径。这表明,企业正在积极投资,根据浏览器的足迹来发现追踪用户的新方法。
权限指纹-研究人员表示,一些网站会探测浏览器的权限API,以确定用户是授予还是拒绝了权限。学者们表示,他们发现特定情况下,指纹脚本已经探测到用户是否授予了网站通知、地理位置和摄像头访问权限,并正在使用这些信息跟踪用户。
外围指纹识别-研究人员表示,他们还发现了探测网站是否收到连接到游戏板和虚拟现实设备的权限的脚本,并正在使用这些信息跟踪用户。在其他情况下,一些网站通过用户的键盘布局识别用户的指纹,通常通过浏览器的ngetLayoutMap功能暴露出来。
API指纹识别-研究人员表示,一些网站会探测用户的浏览器是否启用了特定的API。例如,一些指纹脚本检查是否有特定的AudioWorklet API函数(仅适用于Chromium浏览器),而另一些脚本则检查某些JavaScript函数(如isetTimeout)或imozRTCSessionDescription函数是否被扩展覆盖。
定时指纹识别-研究人员说,他们还发现一些指纹脚本测量了某些功能执行所需的时间。例如,一些网站使用最高性能API来跟踪预定义操作期间发生的事件,如:ddomainLookupStart、cdomainLookupEnd、cdomInteractive和rmsFirstPaint。
动画指纹识别-这一类别是当今最常见的指纹识别方法之一,但研究人员表示,他们发现了网站滥用AudioContext API的新方式。
传感器指纹识别-就像网络动画相关的功能一样,传感器在指纹脚本中被严重滥用,但研究团队表示,他们发现了一些网站,探测鲜为人知的用户接近度传感器。
有关该团队研究的更多细节可以在一篇名为“指纹打印机的指纹:学习检测浏览器指纹行为”的论文中找到,该论文将于明年5月在IEEE安全与隐私研讨会上发表。
研究团队还表示,他们报告了托管通过FP-Inspector发现的指纹脚本的域名列表,以管理Easylsit/EasyPrivacy和Disconnect,这两个项目管理所谓的阻止列表,这两个项目是可以加载到广告拦截程序中的域名列表。
考虑本研究论文的用户可以通过在其各自的浏览器设置中启用反指纹保护或通过安装广告拦截器扩展来阻止指纹脚本。