跳至正文

Canvas指纹是什么?如何防止浏览器指纹识别

当我们在浏览网站时,通常都会被追踪和识别,指纹识别技术通过收集用户设备的多项信息,建立独特的“指纹”,从而在没有Cookies或账号登录的情况下识别用户,那么如何防止浏览器被指纹识别呢?本文将为你介绍什么是Canvas以及怎么避免浏览器指纹识别。

一、什么是Canvas指纹识别

Canvas指纹识别可以做到追踪用户行为/个性化广告等功能,所以相比cookie识别,它是目前更流行的追踪技术,Canvas指纹识别是通过HTML5的Canvas元素获取用户计算机硬件和软件的细微差异,从而创建一个指纹,具体来说就是Canvas指纹识别利用浏览器中的绘图功能来生成一张图像,然后提取图像的渲染信息(例如颜色、字体等)并将其转化为用户的唯一标识,每个设备和浏览器在渲染同一图像时的差异会由于操作系统、图形驱动、字体、GPU等因素而有所不同。

二、Canvas指纹识别原理

  • 请求Canvas绘制图像:当用户访问网站时,网站的JavaScript脚本会请求浏览器在Canvas上绘制一张图像。通常,这张图像是非常简单的形状,比如一个矩形,里面填充了随机文本或图案。
  • 获取渲染结果:在图像绘制完成后,浏览器会返回一个由图像像素组成的数据块(通常是一个Base64编码的字符串)。这就是Canvas的图像数据。
  • 分析渲染差异:由于不同的操作系统、浏览器、设备硬件和驱动程序会影响图像的渲染结果,生成的图像数据将因这些因素而有所不同。即使两个用户使用的是同样的浏览器,运行相同版本的操作系统,渲染图像的差异依然会存在。系统细节,如图形卡的型号、字体渲染方式、抗锯齿技术等,都会影响最终的图像数据。
  • 生成唯一指纹:利用这些渲染差异,网站可以将图像数据转化为一个哈希值,作为该设备的“指纹”。通过这个指纹,网站就可以在没有Cookies或登录凭证的情况下识别和追踪用户,即使用户多次访问相同的网站,也能确定他们是同一位用户 。

三、怎么绕开浏览器指纹识别

1、禁用JavaScript和Canvas

Canvas指纹识别依赖于JavaScript来动态绘制图像和捕获渲染信息,你可以通过浏览器的隐私设置来禁用JavaScript,或者使用插件(如NoScript)来手动阻止Canvas绘图,但是,这种做法有一个缺点:许多现代网站依赖JavaScript来呈现重要内容,所以禁用这些功能可能会影响浏览体验。

2、安装浏览器插件

  • Canvas Defender:这是一款专门用来伪装Canvas指纹的插件,它会自动修改Canvas绘图过程中的图像,打乱追踪者所依赖的差异。每次绘制Canvas时,插件都会生成一个与真实设备不同的“伪Canvas”,使得追踪者无法从Canvas图像中提取出唯一标识
  • Privacy Badger:它虽然主要用于拦截广告和追踪器,但也会通过阻止某些JavaScript代码的执行,间接减少Canvas指纹识别的风险
  • CanvasFingerprintBlock:其原理是,每次随机往 canvas 画布里面注入一个随机的噪音(人肉眼是看不到的),从而影响图片数据的CRC校验结果

3、使用指纹浏览器

阻止或禁用Canvas指纹并不能从根本上解决问题,最好就是使用指纹浏览器帮助替代你的浏览器指纹,创建多个与真实设备指纹不同的虚拟指纹,每次你使用一个新的浏览器环境时,网站看到的Canvas指纹都会有所不同,从而降低识别风险。

比如使用Maskfog指纹浏览器,通过自定义多账号矩阵中每个账号浏览器的Canvas指纹,可以模拟不同账号设备,帮助多账号绕过指纹识别的风险:

  • 随机化设备特征:比如操作系统信息和浏览器配置,使得设备指纹无法被精准识别
  • 隔离账号环境:为每个账号创建独立安全的登录环境,避免出现设备指纹相同的情况
  • 团队协作:多个账号可在同一界面操作多个不同指纹的浏览器环境,提高管理效率

四、总结

Canvas指纹识别是互联网隐私追踪技术中的一种高效手段,能够通过浏览器生成的图像来识别用户的设备。虽然有绕开的方法,但是禁用会影响网站功能的正常使用,最好还是选用指纹浏览器帮助建立独立的账号环境,实现环境隔离,避免出现指纹识别。