Canvas指纹的技术原理,如何隐藏canvas指纹?

canvas指纹的技术原理

canvas是一种在网页上绘制2D和动画的技术,通过html5的canvas接口,在网页上绘制一个隐藏的画布图像。

在不同操作系统、不同浏览器上,产生的图片内容不完全相同(我们肉眼是无法区分的)。

在图片格式上:不同浏览器使用了不同的图形处理引擎、不同的图片导出选项、不同的默认压缩级别等。

在像素级别来看:操作系统各自使用了不同的设置和算法来进行抗锯齿和子像素渲染操作。即使相同的绘图操作,产生的图片数据的CRC检验也不相同。

计算机程序通过计算这张图片数据的哈希值,能够识别不同硬件设备渲染结果的细微区别。通过这种方式,技术上就能够通过计算用户设备的canvas指纹来标识用户。

值得注意的是,如果用户的设备,操作系统,浏览器都一样的话,计算出来的canvas指纹是一样的。换句话说:canvas指纹不具备唯一性,要和其他的浏览器指纹相互结合利用来进一步计算出区分度更高的指纹标识。

如何隐藏自己的canvas指纹?

目前主要用2种方式:
1. 安装浏览器插件

谷歌应用商店有随机修改canvas指纹的插件(CanvasFingerprintBlock)。其原理是,每次随机往canvas画布里面注入一个随机的噪音,从而影响图片数据的CRC校验结果。

2.拉力猫指纹浏览器

拉力猫指纹浏览器可模拟多种操作系统的浏览器,如PC端的window、mac os和linux系统,移动端的IOS、Android和Lumia系统,适用于全球的电商网站/社交媒体/广告联盟等多平台业务不受限制。

拉力猫指纹浏览器通过模拟电脑或手机设备的软硬件指纹信息,使得每个浏览器文件的Cookies、本地存储等将被完全隔离,防止因浏览器指纹相同而网络账号出现关联情况