如何通过图标来识别网站用户指纹

访客4年前关于黑客接单813

背景知识

现代浏览器提供了各种各样的功能来改善和简化用户体验。其中一个特性就是所谓的favicon:favicon是一个小的(通常是16×16或32×32像素)logo,由web浏览器使用,以可识别的方式标记网站。多数浏览器通常在地址栏和书签列表中的页面名称旁边显示favicon。

为了在他们的网站上提供favicon,开发者必须在网页的标题中包含一个属性。如果此标记确实存在,则浏览器会从预定义源请求图标,如果服务器响应包含可以正确呈现的有效图标文件,则浏览器会显示此图标。在任何其他情况下,都会显示一个空白的favicon。

<link rel="icon" href="https://www.freebuf.com/favicon.ico" type="image/x-icon">

favicon文件对于浏览器来说,必须是可以很容易访问到的。因此,它们被缓存在系统上一个单独的本地数据库中,称为favicon缓存(F-cache)。F-Cache数据项包括访问的URL(子域、域、路由、URL参数)、favicon ID和生存时间(TTL)。虽然这为Web开发人员提供了使用各种各样的图标来描绘其网站的各个部分的能力,但是它也导致了一种可能的跟踪场景。

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

威胁模型

本文将介绍一种可能的威胁模型,该模型允许为每个浏览器分配一个唯一的标识符,以便得出关于用户的结论,并且即使在应用了反指纹措施的情况下也能够识别该用户,例如使用VPN、删除Cookie、删除浏览器缓存或操纵客户端标题信息等等。

一台Web服务器可以判断是否已经加载了favicon,因此当浏览器请求网页时,如果favicon不在本地F-cache中,则会对favicon发出另一个请求。如果该图标已存在于F-Cache中,则不发送进一步的请求。通过组合浏览器特定URL路径的已传递和未传递favicon的状态,可以为客户端分配唯一的模式(标识号)。当网站重新加载时,Web服务器就可以根据客户端发送的favicon丢失请求来重建标识号,从而识别浏览器。

支持该攻击场景的浏览器如下(包含移动端浏览器):

关于Supercookie

Supercookie可以使用favicon来给网站的访问者分配唯一的标识符。跟传统的用户追踪技术不同,这种ID标识符几乎是可以永久存储的,而且用户无法轻易删除或修改。

值得一提的是,这种跟踪技术即使是浏览器处于匿名模式下也是可以正常工作的,而且无法通过刷新缓存、关闭浏览器、重新启动系统、使用VPN或安装AdBlockers来清除。

工具安装

Docker

要求:Docker守护进程

首先,我们需要使用下列命令将该项目源码克隆至本地:

git clone https://github.com/jonasstrehle/supercookie

接下来,更新supercookie/server/.env中的.env文件:

HOST_MAIN=yourdomain.com #or localhost:10080

PORT_MAIN=10080

?

HOST_DEMO=demo.yourdomain.com #or localhost:10081

PORT_DEMO=10081

现在,使用下列命令运行容器:

cd supercookie/server

docker-compose up

此时,我们的Web服务器就已经在运行了。(https://yourdomain.com)

本地设备安装

要求:Node.js

首先,我们需要使用下列命令将该项目源码克隆至本地:

git clone https://github.com/jonasstrehle/supercookie

接下来,更新supercookie/server/.env中的.env文件:

HOST_MAIN=localhost:10080

PORT_MAIN=10080

?

HOST_DEMO=localhost:10081

PORT_DEMO=10081

现在,使用下列命令运行服务:

cd supercookie/server

node main.js

此时,我们的Web服务器就已经在运行了。(http://localhost:10080)

工具演示

演示地址:【点我查看

项目地址

Supercookie:【GitHub传送门

参考资料

https://supercookie.me/workwise

https://supercookie.me/

https://www.cs.uic.edu/~polakis/papers/solomos-ndss21.pdf

https://heise.de/-5027814?

相关文章

中国驻德大使出席在德中资企业(机构)视频座

  中新网柏林1月1日电 据中国驻德国大使馆官网消息,中国驻德国大使吴恳日前出席了在德中资企业(机构)视频座谈会,与部分在德中资企业(机构)负责人视频联线并作形势报告。座谈会由王卫东公使主持,许永权公...

回收二手手机赚钱吗(倒卖二手手机盈利)

回收二手手机赚钱吗(倒卖二手手机盈利)

请专家教授告诉我一千元除了收手机能做赚钱好方法做什么赚钱(无须给他人打工就可以了),倾听意见。 现如今他人收旧手机一文不值,都是之后卖零配件,除非是是他人是刚买不久的新设备, 赚钱 你好 回收旧手...

房产知识:如何办居住证

相信现在有很多的朋友们对于如何办居住证都想要了解吧,那么今天小编就来给大家针对如何办居住证进行一个介绍吧,希望小编介绍的内容能够为大家起到帮助哦 东莞居住证办理,是要求公民在东莞居住而且办理居住登记满...

怎么查老公出轨已删除的微信聊天记录(查男人出轨最好方法)

怎么查老公出轨已删除的微信聊天记录(查男人出轨最好方法)

   创建肆虐全球网络Satori僵尸网络的黑客—Mirai Okiru,日前创建了一个名为Masuta的新型Mirai恶意软件变体。而一名被称为Nexus Zeta的黑客,进而开发了Masuta...

毕业季营销怎么做?复盘2020年经典案例,我总结出如下四点

毕业季营销怎么做?复盘2020年经典案例,我总结出如下四点

编辑导语:结业季营销是每年的营销热点,往往会有不少的乐成营销的履历值得我们去进修。本文作者复盘了2020年结业季的乐成营销案例,看看这些案例乐成的要害到底是什么?又有哪些处所值得我们去进修。 又是一...

手机拨号盘隐藏应用(如何在拨号盘页面隐藏应用?)

手机拨号盘隐藏应用(如何在拨号盘页面隐藏应用?)

本文目录一览: 1、oppo手机拨号隐藏应 2、oppo手机拨号盘隐藏功能 3、oppo手机拨号键输入什么显示隐藏应用? 4、oppo拨号界面唤醒隐藏软件 5、华为手机在拨打电话键盘上...