安装的扩展对浏览器指纹(唯一性)有什么影响?

信息安全 隐私 javascript 火狐 浏览器扩展 指纹识别
2021-09-10 22:30:46

动机

我想开发一个自定义的本地 Firefox 扩展并调查它的安装是否对浏览器指纹有任何影响。

背景

一段时间(几年?)前,有文章建议不要安装过多的浏览器扩展,因为它们会通过利用更多独特的指纹(如果我没记错的话)使浏览器客户端更易于识别和跟踪。

今天,我总体上获得了更多关于 JavaScript 及其 API 的经验,尽管仍然缺乏关于 Firefox Web 扩展 API 的知识来批准或伪造上述文章的声明。经过一番研究,我找不到任何 JavaScript API 可以让网站读取我安装的扩展或类似的列表。amunique.org也不提供此信息。因此,我想了解此建议的可能原因(不记得出处,抱歉)。

我猜想,Mozilla 同时也强化了其扩展 API(是 v60 吗?),这可能会使声明无法与现状相提并论。

问题

  1. 到今天为止,是否有任何 JavaScript API 允许读取已使用/已安装的扩展列表,以便网站可以使用此信息来创建我的浏览器客户端的更独特的指纹?

  2. 使用自定义的、本地开发的(或更一般而言的)扩展程序是否会对浏览器指纹产生影响?

  3. 浏览器 API 在查询已安装的扩展方面是否更加“慷慨”,所以这个建议在过去是有意义的?

2个回答

没有明确的 API 可以枚举浏览器扩展。但这并不意味着它们不可检测或即使未检测到特定扩展名也不能包含在指纹中。

浏览器扩展通常是有目的的,这个目的可能会产生副作用,比如操作 DOM(删除广告、更改视觉表示、使用更多附加信息丰富内容......)或更改操作时间。这些副作用是可以测量的,并且可以包含在浏览器指纹中。即使特定扩展名未知,也可以这样做,即,即使私有扩展名的影响也可以包含在指纹中。

除此之外,可以通过探测其内部资源来检测特定扩展的存在,有关详细信息,请参阅如何检测浏览器扩展

虽然从来没有网站代码可用的已安装扩展列表,但几年前,浏览器提供了一个可靠的“插件”列表,称为navigator.plugins. 这些与扩展并不完全相同,因为它是一种较旧的技术(例如,shockwave、quicktime、pdf),但一些扩展将插件添加到列表中,人们经常将两者混淆。

无论如何,这些列表已被淘汰,不再用于说明安装了什么;他们只是列出了一些内置的常用功能,例如 Native Client 和 PDF 处理程序。与 相同navigator.mimeTypes,它可以在浏览器之外显示已安装的应用程序,例如 Word。这些更改是明确进行的,以提供隐私并减少指纹表面。

简而言之,除了可能的副作用(例如,广告无法加载)和伪影(例如,表单字段上的快捷方式图标)之外,目前没有任何关于扩展的内在揭示。