0%

广告技术-用户指纹生成技术

追踪用户身份是广告和内容推荐系统的基础,现有许多非常流行的用户追踪技术,如注册账户系统,服务端Session Mapping等技术,客户端的Cookie以及ID Mapping,客户端设备ID(IMEI,IDFA)信息等。

以上技术受系统权限,用户设置等因素无法实现跨平台跨站点、许多网站和跟踪软件都开始利用canvas指纹技术。能够实现无需用户注册,无需复杂的Mapping技术就可以定位唯一用户。

普林斯顿大学和比利时鲁汶大学安全研究人员发表了一篇研究报告指出,即使是电脑高手,面对基于canvas指纹的跟踪技术,也很难保护好自已的隐私。

这篇报告提出了三种在线跟踪机制,canvas fingerprinting, evercookiescookie syncing可以在用户完全不知情的情况下来跟踪和识别用户。这种技术已经在众多网站得到广泛使用。

Canvas指纹技术的原理是:每个浏览器生成不一样的图案从根本上来说,每一种浏览器都会使用不同的图像处理引擎,不同的导出选项,不同的压缩等级,所以每一台电脑绘制出的图形都会有些许不同,这些图案可以被用来给用户设备分配特定编号(指纹),也就是说可以用来识别不同用户。

相同的,通过浏览器设备的差异信息来追踪用户身份,推荐了解FingerPrintJS的实现,综合使用客户端的差异信息,用户识别精度能够超过94%。

Canvas跟踪在广告领域的应用

在线广告公司常常进行跟踪用户的行为,他们希望能通过建立每个用户的兴趣档案来理解消费者的行为。

通常,如果用户清除了他们电脑上的cookie或者阻止了cookie,广告主就不会知道访客是否访问了他们的广告,这使用广告效果大大降低,也使得广告公司的收入减少。所以这些广告公司一直致力于尝试更新更好的方法来了解网站访客的信息。一些大的广告公司已经把先前基于flash的广告转换成了HTML5动画广告。

研究人员指出:“Canvas指纹是浏览器指纹的最近研究成果,还没有被公开报道过。我们的调查结果得出排名前100000的网站中5%都使用了这种技术。

HTML5 canvas不仅局限于图片处理,它还能监听用户的键盘输入、鼠标移动、以及触摸事件。你可以在Mozilla的官方网站上找到详细说明,Github上也有一些实例。

Canvas指纹被所有主流浏览器支持

HTML5 canvas技术被所有主流浏览器支持,可以通过大部分的PC、平板、智能手机访问。可以通过这个链接测试当前浏览器是否支持canvas指纹。

目前来说canvas指纹很难被阻挡,只要你用浏览器上网,你的行踪就相当于是公开的。

Canvas FingerPrint实现

为了利用客户端设备的差异(操作系统,GPU,系统色深等信息),经过以下几个步骤就可以获取客户端的Canvas指纹。

  • 绘图(Canvas.print)
  • 获取内容(base64/dataURL)
  • 产生内容摘要(CRC/MD5)
1
2
3
4
5
6
7
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
...
// 绘制图片、字符串
var dataUrl = canvas.toDataURL();
var fingerPrint = crc(dataUrl);
console.log(fingerPrint)

参考文章