关于浏览器指纹追踪技术的学术探讨
作者:互联网
摘要:
浏览器指纹是一种应用广泛的技术,是识别 web 用户并跟踪其在线方式的方法。但是,浏览器指纹会泄露用户足迹和隐私,因此现在,不少软件推出了反浏览器指纹追踪的工具, 以保护用户免受浏览器指纹的侵入。但是, 这些工具在禁用浏览器功能和插件 (如 Flash) 或HTML5 画布元素时会被限制。在本文提出了反浏览器指纹追踪策略, 它可以组织浏览器指纹插件而不停用它, 并提供不可检测的反画布指纹, 使用大量的数据隐藏实际系统和浏览器属性而不丢失浏览器指纹可用性。我们详细讨论了现有反浏览器指纹工具的方法和缺点, 并将它们与我们的增强策略进行了比较。
1 浏览器指纹功能
为了获得一个广泛和最新的浏览器指纹功能列表 ,我们分析了流行的脚本 ,通过 JavaScript、Flash、CSS 或 HTTP 头 检索到的功能: 设备 ID、操作系统 (版本、体系结构、内核 )、屏幕 (分辨率、高度、宽度 )、颜色深度、 CPU类型,时钟歪斜,电池状态,鼠标移动,键盘,加速度计,触摸屏功能, 麦克风, 摄像头, 音频功能。浏览器信息: 浏览器 (版本、供应商 )、用户代理、导航对象、已安装的插件、首选和接受的语言、HTTP 标头、JavaScript 运行时、cookie 启用参数、支持的 MIME 类型、浏览器历史记录、不跟踪、HTML画布元素 , CSS功能 (字体探测 ,显示等 )。网络信息 : IP地址 ,地理位置 , tcp时间戳 ,代理穿孔。闪存功能类 :版本、制造商。随后 ,系统使用函数检查返回每个像素的 RGBA值。同样 ,通过使用函数,可以获得包含画布的整个内容的 Base64-encoded PNG 图像。然后通过哈希算法提取的像素数据来生成唯一的浏览器指纹。
2 系统设计与实现
伪装浏览器为了反浏览器指纹指纹和禁止重新识别用户,可以采用两种主要策略:
(1)隐藏指纹特征以使所有用户看起来相同。
(2)通过随机性隐藏原始特征。
在我们的反指纹研究中,我们发现了这两种策略的优点。利用这些知识,我们通过新的保护机制来增强现有策略,并在一个伪装的浏览器中实现它们。在本节中,我们首先介绍了 DCB的体系结构,随后描述了 DCB的策略、实现和操作。
■ 2…1 架构和实现
我们直接在 DCB浏览器版本 34…0…1847…131中实现,因为三个原因:
第一,通过阻止或拦截 JavaScript回调避免检测指纹对策。
第二,在一个工具中绑定所有指纹保护。
第三,提供更好的性能和浏览器速度。
我们决定不修改浏览器,因为它对指纹可能采取一些阻碍我们策略的对策。为了解决像 Cookie这样的跟踪机制的影响,我们实现了使用私人浏览模式的策略。将我们的实现移植到新版本上所需的努力主要取决于同时在铬源代码中应用的变化。编译我们修改的浏览器需要几分钟。一旦更新和编译,运行时就不会出现性能损失。源代码可用。
DCB依赖于客户端 -服务器体系结构,其中服务器端算法维护真实世界指纹特征的数据库,以在客户端上执行稳定的浏览器配置。在客户端,DCB应用服务器所选择的配置,以及实现的 Flash和画布指纹保护。
DCB允许两种策略来分配浏览器配置到客户端,许多浏览器,一种配置,因为指纹打印机收集大量的指纹特征,多个浏览器共享相同系统属性的可能性相当低。出于这个原因,当指纹打印机观察同一个指纹不止一次时,他们很可能会假定指纹属于同一个浏览器,就像先前的观察一样。略通过配置尽可能多的浏览器来共享相同的配置,从而使所有浏览器看起来与指纹打印机相同,从而阻碍了这种方法。这限制了一个特定用户的重新标识。
浏览器,在策略中的许多配置,实际浏览器和系统配置被隐藏到外部世界,以防止指纹识别器重新识别。DCB不断改变浏览器配置在每一个开始。与现有的工具,如 PrimaRealCube或 FPGARID相比,我们的方法随机化到现实值,并防止不断变化的系统参数。这限制了可探测性。
■ 2…2 配置
服务器每个浏览器都有一个配置(其原件),由单值特征(如 Windows版本)和多值特征(如字体列表)组成。配置服务器负责存储这样的真实世界系统和浏览器属性(指纹特征),并根据所选择的策略为客户端分配配置。为了确保特征的随机随机化,我们使用预存储的 23709个真实世界指纹特征数据集。这些匿名的特征被收集在一个大规模的类似 PANOPICTLIK的库中。此外,在 DCB启动时,客户端将其初始配置发送到服务器,该服务器被添加到数据库中。DCB可以与本地或全局配置服务器一起工作。
■ 2…3 配置组
配置组在更改或隐藏系统和浏览器属性时要注意不一致性和可用性约束。例如,如果特定的操作系统(OS)被传播,则报告的插件列表应该与 OS相匹配。我们决定使用共享相似值的配置组,这样就不会有浏览器修改与实际系统配置相矛盾的配置。一个特定的配置组可以由使用相同操作系统和语言的浏览器的所有用户组成。在这里,这个配置组中的所有浏览器只会得到那些对给定操作系统可用的配置(例如插件列表)。因为大量的配置组在有效隐藏用户方面是适得其反的,所以我们为用户的语言和不同的 Windows版本预定义了配置组(如 Windows版本 NT61&英语或 Windows版本 NT5…0和法语)。存在的组越少,观察任何浏览器的惊奇就越小。根据实际系统和配置组,N:1策略旨在将所有指纹特征设置为该配置组中最频繁的参数,与用户的环境相适应。这保证了健壮性和可用性。在开发的时候,配置包含以下参数:屏幕信息、浏览器语言、用户代理(Chrome和 WebKIT/BLINK版本、Windows体系结构)、时间和日期、系统字体和插件。
3 画布反指纹
现有的画布反指纹工具操纵画布读出函数,从而添加随机像素噪声(例如改变颜色),以防止指纹。如在中所指出的,每当从画布请求图像数据时,不足以添加随机噪声。指纹打印机可以通过随后的相同函数调用检测该噪声,比较结果(图像数据)和滤波器的变化。可以应用各种策略来对抗检测,但是我们认为任何方法都将面临可检测性的共同问题。
相反,在我们的方法中,我们修改画布本身的渲染,并且总是对整个浏览会话执行相同的修改。
■ 3…1 画布指纹保护
不是随机操纵画布读出函数,DCB决定性地改变画布渲染函数直接为每个浏览会话。这个函数覆盖了所有已知的画布指纹方法。此外,该方法可以应用于用于指纹识别的新的绘制函数。我们使用在启动时生成的随机会话标识符来引导修改。由于会话标识符的随机性,可以保证浏览器会话期间返回确定性值,但在随后的浏览器会话中返回不同的值。当调用处理请求的内部方法时,我们首先备份图像缓冲器
(步骤 1),然后等待函数完成将文本(作为指纹打印过程的一部分)复制到缓冲器中(步骤 2)。在下一步,我们将新图像数据保存在缓冲器中并存储已改变的每个像素的位置(步骤3)。我们将使用我们的图像处理算法(步骤4)。
最后,返回图像数据(步骤5)。
■ 3…2 图像处理算法
该算法是在 C++中实现的,因为本机函数将渲染画布元素。图像处理算法以每像素为基础,仅适用于接近颜色边界的像素;即,在其顶部、右侧、左侧和底部相邻的像素不共享相同值的像素。我们将像素 P编码为(R,G,B,A),其中R、B、G、A是红色、绿色、蓝色和 α值R、G、B、A{0、…、255}。我们通过将一个偏移量添加到 R、G、B中来修改 P到 P 0。我们首先在启动时生成伪随机会话标识符S,G,B和 A,应用哈希函数,并调用结果 T。偏移量是从T模的 20个字符中取一个常数块,常数 C,WHIC。默认情况下,H设置为 3。然后,对于每个 R、G、B,我们根据它们的值是否大于或小于 128而增加或减去偏移,导致 P0。注意,图像操作是确定性的,并且由于用户不可见的轻微图像变化(使用默认设置 C= 3)。因此,指纹打印机不可能检测此策略,并从画布中移除或减去任何修改以重建原始图像。使用 C的高值,例如 C= 50,这是不必要的,因为这不会增加算法的有效性,并且只会使变化更明显(模糊图像)。假设一个画布有 1806个像素,总共包含 1030种不同的颜色,并且使用 C= 3的标准值,我们已经得到 3×1030×2…722×10491可能的组合来改变像素值,这足以防止指纹。
4 评估
我们测试了 DCB的两种策略 :1…多浏览器,一种配置和 2…一个浏览器,多个配置,其对真实世界的指纹打印机的有效性。此外,我们还评估了我们的帆布反指纹策略独立于其他特征,以显示我们的方法的实用性。
■ 4…1 一个浏览器,许多配置的目标
策略是建立在每个浏览器启动一个全新的配置(指纹),以便指纹打印机将无法重新识别用户在下一个浏览器会话。此外,该策略应保证现实的设置和不变的用户体验在网络上。通过分析三种流行的指纹打印机:FingerprintJS、CONBASE支付按钮和 BLUECAVA的指纹,验证了 DCB在一模式下运行的有效性。
■ 4…2 许多浏览器,一种配置
策略旨在通过增加共享相同配置的浏览器的数量来减少观察一个浏览器实例的惊奇。因此,评估该策略需要在不同配置的多个系统上执行 DCB。如上所述,我们通过匹配由三个引入的指纹打印机产生的指纹来测试。
■ 4…3 指纹设置
我们实现了我们的对策,指纹结合一战略。我们分离了Addith14的画布指纹脚本(一个流行的指纹识别器),在我们的网站上实现了它,并在广泛的研究中检查了报告的指纹。在 10000个浏览器会话的运行中,我们将每个生成的指纹画布图像存储为 MD5散列在数据库中。为了创建渲染的图像,画布指纹函数用回退字体渲染文本。
■ 4…4 反指纹特征的比较
最后,我们显示了 DCB的优势,通过比较它与其他反指纹工具:Tor Browser版本 4…0…8(36),FiReGrave,
FPARGue,FpBuL。我们能够成功地克服现有的反指纹工具的弱点和缺陷,并另外实现了新的 Flash以及帆布指纹保护。
5 结论和未来的工作
我们实现和评价了两种策略的有效性,这提高了浏览器 /系统指纹保护,并在不停用闪存的情况下使用第一内置闪存指纹保护。策略一旨在通过使用所有用户的相同浏览器配置来减少在 DCB浏览器实例的大集合中唯一可识别的机会。策略二的目的是在每次启动新浏览器时,通过使用真实的 Word属性应用主要浏览器 /系统配置改变来打破指纹。此外,我们证明了第一个解决方案对画布指纹的有效性,与其他方法相比,它既不阻止也不随机地操纵用于检索渲染的
图像数据的任何画布功能。虽然我们的解决方案是通过使用私人浏览模式抵抗 cookies跟踪,但我们没有办法阻止通过 IP地址跟踪。这可以通过使用匿名网络(代理服务器)来解决。关于 Flash二进制文件的操作,我们打算直接在浏览器中实现我们的操作功能,而不是使用外部 Python脚本。此外,当用户不重新启动会话但重新连接到 Web时,计划自动配置更新。在未来的研究中,我们还想研究指纹识别的指纹数据库是否旨在检测配置改变可能被大量错误数据所毒害,这是由于我们的实现的广泛使用。对于未来的工作,我们想要实现进一步的功能,它现在既不在现有工具中实现,也不被使用(主要是因为有限的可靠性和网络延迟)。
写在最后:
浏览器指纹不可忽视
浏览器指纹会记录用户的使用习惯等信息,可以用来区分是否是同一个人操作!因此需要借助像候鸟浏览器这种多开浏览器来配置独立的指纹,隔离环境,防止被识别出来。候鸟防关联指纹浏览器是一款运用模拟浏览器硬件配置文件代替若干电脑的多任务浏览器,实现浏览器指纹防护功能,每个浏览器文件的Cookies、本地存储和其他缓存文件将被完全隔离,浏览器配置文件之间完全独立,无法相互访问。
多个唯一指纹浏览器,每个指纹浏览器都是相互隔离的。可以理解为每个浏览器配置文件就是不同的电脑,再结合切换不同 IP,就是不同地区不同的电脑。
标签:浏览器,配置,DCB,指纹,画布,学术探讨,我们 来源: https://blog.csdn.net/baijiawang123/article/details/117696164