一、 浏览器指纹描述
2010年,电子前沿基金会(EFF)一项研究发现,绝大多数的网络浏览器都可以让用户留下独特的“指纹”,而这些指纹会被用于跟踪用户上网冲浪。这一“指纹”也被称作“浏览器指纹”。 浏览器指纹将用户的浏览器类型、屏幕尺寸与颜色深度、浏览器插件、默认时区设置、用户安装的字体等作为特征参数,通过朴素的字符串匹配方式识别指纹。同时浏览器指纹可以准确识别浏览器;而且,对于安装了Flash和Java的设备中,浏览器指纹的识别率更高达94.2%。
在Peter Eckersley论文中首次完备地阐述了浏览器指纹的采集、识别、变化跟踪等方法,证明了浏览器指纹技术在不使用Cookie等存储机制的情况下可以有效地区分和跟踪用户。
[1] 浏览器指纹的出现,即可以给我们的生活带来便利,又给个人隐私的泄露埋下了隐患: 一方面,浏览器指纹可以用于身份认证,帮助Web应用服务商更好得辨别用户身份,更好地保护用户信息;浏览器指纹也可以更好地帮Web应用服务商完成统计,利用统计结果优化其应用,提升用户体验;同时,分析不同用户的行为习惯可以帮助广告商更有针对性地投放广告,以便帮用户更准确地找到用户需要的东西。
[2] 另一方面,现在已经有很多研究者开始担忧浏览器指纹技术对于用户隐私构成的威胁[3],同时也探讨了浏览器指纹技术对于用户隐私的影响情况。例如Nikiforakis等人详尽分析了三家浏览器指纹公司提供的技术和适用场景
[3]。Wills等人证明了如果可以采集到足够多的用户浏览历史,就可以准确推断每个用户的年龄、性别、婚姻情况、收入情况等
[4]。 因此,浏览器指纹可以改生活带来一定的遍历,但也存在隐患。在现实生活中浏览器指纹不应该被无限制地使用,也不应该被完全禁用,或者说,浏览器指纹的使用需要被限制。
二、 浏览器指纹解决原理
浏览器指纹获取的特征参数具体包括:User Agent,时区、屏幕信息、语言设置、浏览器中安装的插件列表、系统安装的字体、地理位置、MIME Type列表、移动设备加速器和陀螺仪的噪音信号、Canvas/Web Font/WebGL的实现
[2]。 获取浏览器指纹最简单的的方式是直接使用Fingerprintjs[5]:利用Fingerprintjs计算出浏览器指纹后使用ajax将指纹信息传回服务器,这样就可以在用户不察觉的情况下使服务器获取到浏览器指纹。比较复杂的方式也有传统的木马植入、病毒软件等。 虽然获取浏览器指纹的方式众多,但是只要限制与浏览器指纹相关的特征参数的获取,就能从源头上限制浏览器指纹的获取,但是要实现这一点还是比较难的。
首先,有些信息是无法被限制掉的,如HTTP报文中必需的字段,比如User-Agent、Accept-Encoding、Accept-Charset、Host,这些参数并不足以计算出浏览器指纹,但是它们却是浏览器指纹的重要特征参数。服务器需要这些参数来辨别浏览器、保证页面的显示效果等。在一定程度上,浏览器指纹产生也是HTTP本身的缺陷的体现
[6]。 其次,限制浏览器特征参数的获取,需要相应软件的支持,最基本的就是浏览器的支持。目前有的研究者们为了限制浏览器指纹的获取,设计出了FPDetect系统
[7]。该系统使用修改过的Chromium浏览器。该浏览器会记录网站中存在的脚本对于浏览器指纹检测中经常使用的接口的调用,例如对于的navigator.plugins调用。在CasperJS和Selenium的驱动下,该系统可以自动化的检测网站是否有使用浏览器指纹技术跟踪用户的行为。 其他的限制浏览器指纹的方法还包括使用Tor网、使用浏览器的隐私模式等。
目前,网上有人提出“多实例”、“多浏览器”、“多虚拟机”、“动态User Agent”等方式避免浏览器指纹的影响
[8]。这些方式都是通过修改User Agent字段来防范浏览器指纹。虽然一般情况下修改User Agent字段不会影响到浏览器的正常使用,但是这些方式给使用者带来了很大的不便,也影响到正常获取浏览器指纹的应用,并没有达到限制浏览器指纹的目的。
三、 总结 笔者认为,最能从根本上解决问题的方式是像FPDetect系统那样,设计一个浏览器,监测、记录网站中与浏览器指纹相关的脚本的调用,自动检测网站是否有使用浏览器指纹技术跟踪用户的行为。同时设置权限管理,某个站点需要获取浏览器指纹的时候,在用户同意之后将站点加入信任列表,同时用户的浏览器指纹发生改变之后也可以及时得得以更正,提高安全性。
当然,还可以使用巨象指纹浏览器修改或者伪装指纹。
巨象指纹浏览器指纹保护·独家首创的面具指纹, 为多账号防关联而生的指纹浏览器。
1 防指纹检测:巨象指纹浏览器以最严格的方式处理浏览器指纹。引导网站读取和您真实指纹不同的 “面具指纹”,通过这种方法代替阻止网站任何读取你真是指纹的方法。
2 云端同步:巨象指纹浏览器可以将配置好的浏览器环境通过配置文件的方式导入导出,同时加密保存在‘ 云端。通过云端同步浏览器环境配置文件的功能,您可以在任何您登录巨象指纹浏览器账号 的地方获得完整安全的工作体验,账号的登录信息甚至tab页都会为您一一打开 : )
3 团队协作:随时随地的提升效率,支持多个子账号共享浏览器相关配置文件及账号数据。不受时间、空间限制,随时随地团队协作办公,团队之间互不干扰,有效提升工作效率。
4 多开独立浏览器硬件环境
创建一个浏览器配置文件相当于建立一个独立分开的虚拟浏览器环境。每个浏览器文件的cookie、本地存储和其他缓存文件将被,完全隔离分开,每个浏览器配置文件之间无法相互泄漏信息。
5 浏览器指纹隔离保护
通过100%模拟所有电脑软硬件信息,以最原始的技术实现来处理浏览器指纹。允许网站读取和您真实指纹不同的硬件指纹,通过这种方法代替阻止网站读取任何指纹的旧方法。
6 便捷的多账号管理
生成多个独一无二指纹浏览器,每个指纹浏览器都是相互隔离的。也可以理解为每个浏览器配置文件就是不同的电脑,再结合代理IP,就是不同地区不同的电脑,实现全球网站帐号多开管理。
7 IP自动设置
8 代理访问加速等等