浅谈反浏览器指纹追踪
浏览器指纹追踪是在过去五年中出现的一种在网络上追踪用户的方法,为了反制浏览器指纹追踪行为,反浏览器追踪技术也在不断发展。 一、反浏览器指纹追踪技术概述 浏览器指纹识别的原理是根据不同浏览平台所使用的硬件类型、操作系统、浏览器类型、浏览器配置的不同,能够构建出独特的浏览器指纹。这个指纹有三个特性可以用来追踪用户:一、指纹的确定性,具有极低的碰撞率,至少能够从数千台设备中标识某一设备;二、指纹的易获取性,在用户在浏览网页时,Web服务器可以很容易获取指纹。随着浏览器中引入更新更强大的API,指纹追踪将变得更容易;三、指纹的稳定性,用户第一次浏览网页与第N次浏览网页产生的指纹是一样的。 本文简要介绍反浏览器指纹追踪技术。反浏览器指纹追踪只要打破上述指纹追踪的三个特性即可: 指纹的确定性。要使两个浏览平台产生完全一样的指纹,目前暂未发现有效方法; 指纹的易获性。可以使用浏览器的各种设置或插件来减缓追踪 [1],但这种方法可能会影响用户体验,例如无法使用Cookie和JavaScript; 指纹的稳定性。来自法国 INRIA Rennes大学的研究人员皮埃尔·拉普里克斯博士提出了一个解决思路[2],可以组建一个动态的浏览平台,使用户每次浏览网页都产生不一样的指纹。 并且皮埃尔通过两种方法来打破了指纹的稳定性: a) 利用虚拟化和模块化架构自动组合和重新配置多个级别的软件组件,随机生成浏览环境,为每个浏览会话产生随机的指纹,从而来模糊实际设备的指纹。作者开发了一个叫做Blink的原型系统[3]; b) 第二种是通过在指纹识别过程中引入足够的噪音,打破非常特定的指纹技术(Canvas,Audio,JavaScript引擎)的稳定性,使追踪者不能将新鲜的指纹与旧的指纹绑定在一起,从而使得跨越多个会话的跟踪变得不可能。作者基于Firefox开发了FPRandom[4]。 本文下面来重点介绍下Blink。 二、Blink工作原理 每两个浏览平台之间或多或少都存在一些差异,追踪者可以根据这个差异来定位追踪用户,所以浏览平台的多样性是浏览器指纹追踪问题的根源,但同时这也是解决浏览器指纹追踪问题的方案。平台间众多的差异部分为动态的浏览平台提供了的基础。 Blink利用虚拟化和模块化架构自动组合和重新配置浏览平台的组件,使得每次运行产生不同的指纹,追踪者不能轻易地找到彼此的联系[5]。图1