Supercookie:通过Favicon进行浏览器指纹识别

2021-02-09 20:04:41

Supercookie使用网站图标为网站访问者分配唯一的标识符。与传统的跟踪方法不同,此ID几乎可以永久存储,并且用户不容易清除。

跟踪方法甚至可以在浏览器的隐身模式下工作,并且无法通过刷新缓存,关闭浏览器或重新启动系统,使用VPN或安装AdBlockers来清除。 🍿现场演示。

超级Cookie的演示以及此存储库源代码的发布旨在引起人们对使用favicon跟踪可能性的问题的关注。

现代浏览器提供了广泛的功能来改善和简化用户体验,其中之一就是所谓的网站图标:网站图标是网络浏览器用来商标的小徽标(通常为16×16或32×32像素)。以可识别的方式访问网站。大多数浏览器通常在地址栏中显示书签图标,并在书签列表中页面名称旁边显示这些图标。

要在其网站上投放收藏图标,开发人员必须在网页标题中添加属性。如果确实存在此标记,则浏览器会从预定义的源请求图标,并且如果服务器响应包含可以正确呈现的有效图标文件,则浏览器将显示此图标。在任何其他情况下,都会显示一个空白的图标。

必须使浏览器可以轻松访问收藏夹图标。因此,它们被缓存在系统上一个单独的本地数据库中,称为favicon缓存(F-Cache)。 F-Cache数据条目包括访问的URL(子域,域,路由,URL参数),网站图标ID和生存时间(TTL)。尽管如此,Web开发人员仍可以使用多种方法来描述其网站的各个部分单个路由和子域的图标集,也可能导致跟踪情况。

当用户访问网站时,浏览器会通过查找所请求网页的快捷图标链接引用的源来检查是否需要网站图标。浏览器会在本地F缓存中初始检查包含活动网站URL的条目。如果存在网站图标条目,则将从缓存中加载该图标,然后显示该图标。但是,如果没有条目(例如,因为从未在此特定域下加载过图标图标),或者缓存中的数据已过期,则浏览器会向服务器发出GET请求以加载网站网站图标。

在这篇文章中,解释了一种可能的威胁模型,该模型允许为每个浏览器分配一个唯一的标识符,以便得出有关用户的结论,并且即使在应用了防指纹措施(例如使用)的情况下也能够识别该用户。 VPN,删除cookie,删除浏览器缓存或操纵客户端标头信息。

Web服务器可以得出有关浏览器是否已加载网站图标的结论:因此,当浏览器请求网页时,如果网站图标不在本地F缓存中,则会再次请求该网站图标。如果该图标已经存在于F-Cache中,则不会再发送任何请求。通过结合浏览器特定URL路径的已交付图标和未交付图标的状态,可以为客户端分配一个唯一的模式(标识号)。重新加载网站后,Web服务器可以使用客户端发送的针对丢失图标的网络请求来重建标识号,从而标识浏览器。

似乎所有顶级浏览器(Chrome,Firefox,Safari,Edge)都容易受到这种攻击。移动浏览器也受到影响。

通过更改与重定向到子路径的数量相对应的位数,这种攻击几乎可以任意扩展,它可以区分2 ^ N个唯一用户,其中N是客户端的重定向数量。读写操作随着可区分的客户端数量的增加而增加。为了使重定向次数尽可能少,N可以具有动态长度。

我是来自🇩🇪德国的20岁学生。我喜欢从事软件设计和开发工作,并且对IT安全领域感兴趣。

此存储库,包括建立演示门户的过程,是在两天内创建的一个私人研究项目的一部分,该项目的主题是“ Web上的跟踪”。