一个新的 用于识别浏览器实例的技术。 方法 基于Favicon的图像处理功能 在网站的帮助下,站点可以确定在书签,选项卡和浏览器界面的其他元素中显示的图标。
浏览器将Favicon图像保存在单独的缓存中,不与其他缓存重叠,在所有操作模式下都是通用的,并且不会由标准缓存和浏览历史记录清除程序清除。
这个功能 即使在隐身模式下工作也允许使用标识符,并且 使其难以移除。 使用建议的方法进行身份验证也不受VPN和广告拦截插件的使用的影响。
识别方法基于以下事实:如果浏览器未请求页面参数中指定的Favicon图像,则可以在服务器端通过分析有关Favicon负载的信息来确定用户先前是否已打开页面。 ,则该页面较早被加载,并且图像从缓存中显示出来。
自从浏览器允许您配置自己的Favicon 对于每一页, 有用的信息可以通过顺序转发进行编码 从用户到多个唯一页面。
链中的重定向次数越多,可以确定的标识符就越多(标识符的数量由公式2 ^ N确定,其中N是重定向的数量)。 例如,有4个用户可以处理两个重定向,分别为3-8、4-16、10-1024、24-16百万,32-4亿。
这种方法的缺点是拖延时间长-精度越高,重定向打开页面所花费的时间就越长。
32个重定向会为所有Internet用户生成标识符,但会导致大约三秒钟的延迟。 对于一百万个标识符,延迟大约是一个半秒。
该方法涉及两种模式的工作:写作和阅读:
- 写作方式 生成并存储首次访问该网站的用户的标识符。
- 阅读模式 读取以前存储的标识符。
模式的选择取决于网站主页上Favicon文件的请求:如果请求了图像,则不缓存数据,并且可以假定用户之前未访问过该网站或缓存了内容。过时了。 根据研究人员的说法,通过指定HTTP Cache-Control标头,可以在缓存中实现Favicon长达一年。
在阅读模式下,打开网站时,则用户通过其Favicons和 HTTP服务器解析从服务器请求的Favicons 并显示了这些数据,而无需从缓存访问服务器。 请求的存在编码为“ 0”,不存在编码为“ 1”。 为了在以后的调用中保留标识符,将显示404错误代码以响应Favicon请求,也就是说,下次您打开站点时,浏览器将尝试再次加载这些favicon。
在写模式下,在重定向循环中 对于编码为“ 1”的页面, 返回Favicon的正确答案, 存放在浏览器缓存中(当重复该循环时,将从缓存中返回Favicon数据,而无需访问服务器),并且对于编码为“ 0”的页面-错误代码404(如果重复重定向循环,则页面数据将会再次被请求)。
该方法可在Chrome,Safari,Edge和Firefox中部分使用。 在用于Linux的Firefox中,阻止浏览器缓存Favicon的功能妨碍了Favicon作为Supercookie的使用。
有趣的是,身份验证方法的作者大约在一年前通知Firefox开发人员此功能,并指出缓存中存在错误,但未提及其工作,并且更正该错误将导致用户识别的可能性。
数据来源: https://www.cs.uic.edu