什么是 Canvas 指纹识别,工作原理是什么?

341 阅读4分钟

一、背景

对于 Amazon、Facebook、Instagram 等网站,访客身份信息对维护安全、分析行为和提升服务质量很重要。过去常用 cookie 跟踪用户,随着隐私受重视,浏览器指纹技术兴起,其中 Canvas 指纹识别技术备受关注。本文将探讨它是什么、如何工作、作用、优缺点以及如何绕开跟踪。

二、什么是 Canvas 指纹识别

Canvas 指纹是基于网页 HTML5 Canvas 元素进行用户跟踪的技术。HTML5 Canvas 用于绘制图形,不同设备浏览器渲染会因硬件和软件差异产生不同结果,如字体大小、线条粗细等。2012 年,加州大学研究人员首次提出该技术,通过分析 Canvas 元素渲染图形的独特方式生成标识符来识别和追踪用户。它不依赖用户设备存储信息,即使禁用 cookie 或使用 IP 匿名化工具也能追踪,收集设备型号、浏览器等多种信息形成 “指纹”,准确率高达 99%。

三、Canvas 指纹识别的工作原理

  1. 通过 HTML5 Canvas API 实现当用户访问有 Canvas 指纹脚本的网站,脚本会绘制随机字体和大小的文本及随机背景,然后将 Canvas 像素数据转换成 Base64 编码格式,再通过哈希函数转换成独特指纹。
  2. 依赖的数据和因素依赖操作系统、浏览器、显卡、显卡驱动程序、客户端安装的字体等数据。不同计算机在图像格式层面因图像处理引擎等因素,系统层面因字体、算法等因素,渲染相同 Canvas 图像会有差异。
  3. 哈希函数的作用哈希函数将任意大小数据转换为固定大小数值且保持唯一性。输入稍有变化,哈希值就不同,这使得 Canvas 指纹能利用微小差异生成唯一哈希值。
  4. 具体步骤步骤一:网站通过 JavaScript 代码请求浏览器渲染 Canvas 对象。步骤二:JavaScript 代码指定绘制任务,如线条、几何图形、扭曲背景。步骤三:Canvas 对象根据指令绘制图形,遵循数学公式。步骤四:不同计算机根据自身特性渲染出有差异的图形。步骤五:Canvas 像素数据被编码并哈希处理,形成 Canvas 指纹。它利用已有资源,需数据库存储指纹信息,通过比对哈希值识别用户。

四、Canvas 指纹识别的运用

  1. 内容个性化内容提供商和电子商务网站用它追踪用户行为提供个性化服务,如 Netflix、Amazon 和 Spotify 等使用该技术。
  2. 个性化广告74% 的网站用用户追踪系统用于个性化广告,Canvas 指纹识别可精准定位潜在客户,增强广告效果。
  3. 分析和追踪网站分析需精准追踪系统区分新访客和回访者,Canvas 指纹识别常与其他技术联合应用确保数据分析精确性。
  4. 防止滥用和保护用户账户能识别与垃圾邮件或恶意行为有关的设备,保护账户安全,确认用户真实性,还可保护付费内容安全和实施访问速度限制,对游戏和电子商务平台重要。

五、Canvas 指纹识别的优缺点

  1. 优点唯一性:由硬件配置等因素导致每台计算机生成的指纹具有高度唯一性。跨越传统跟踪防御:能绕过 VPN 等隐私保护工具。
  2. 缺点准确性问题:在移动设备环境下效果不理想,因移动设备硬件和软件标准化,可能导致用户共享指纹,使数据分析复杂。合法性问题:目前法律对其使用规定不明确,在某些场景可能处于灰色地带。隐私问题:未征得用户同意收集数据,虽只采集浏览器和操作系统信息,但仍引起隐私担忧。

六、如何绕开 Canvas 指纹跟踪

  1. 完全阻止 Canvas 指纹使用阻拦扩展,如 AdBlock Plus 等,但少数人使用可能形成独特指纹;禁用 JavaScript 会影响网站功能。
  2. 创建随机 Canvas 指纹使用反侦测工具,如 Firefox 的 CanvasBlocker 插件等对关键浏览器属性随机化处理;手动选择退出基于兴趣的广告;使用指纹浏览器随机生成符合设备特征的 Canvas 指纹掩盖真实指纹。

七、结论

虽然有方法绕开 Canvas 指纹跟踪,但不是长期解决方案。禁用可能使页面无法正常加载,“替换” 往往比 “禁用” 更有效,可采用伪造随机 Canvas 指纹满足网站数据需求又保护隐私。市场上有相关插件但效率和安全性需评估,使用专业指纹浏览器是较便捷方式,可通过 BrowserScan 检测验证掩盖效果。