Canvas指纹是什么?网站如何在无Cookie下识别你
Canvas指纹把浏览器中一次“看不见的绘图”转化为几乎唯一的设备标识。
Canvas指纹是从浏览器渲染HTML5 Canvas隐藏图像的方式中提取的设备指纹——网站只需把结果哈希成一串字符,就能认出你,无需Cookie。
Canvas指纹是一种通过浏览器渲染(绘制)HTML5 Canvas上一段隐藏文字或图形的方式来识别设备的技术。由于每台设备的GPU、驱动、字体和操作系统不同,绘制出的像素会有细微差异;网站只要把结果哈希成一串字符,就得到一枚能追踪你的指纹——即使你清除了Cookie或使用无痕模式,它依然有效。本文从零讲起,无需技术基础。
快速摘要(TL;DR) • Canvas指纹 = 从浏览器渲染HTML5 Canvas图形的方式中提取的设备指纹。 • 它无需Cookie、悄然运行,用户几乎无法察觉。 • 差异来自GPU、显卡驱动、字体、操作系统与浏览器内核。 • 清除Cookie或开无痕都无法去除Canvas指纹。 • 要安全做多账号(防关联),需要能在每个环境层面改写指纹的指纹浏览器,例如GPM Login。 |
目录
● Canvas指纹是什么?
● Canvas指纹是如何工作的?
● 为什么每台设备的Canvas指纹都不同?
● 网站用Canvas指纹做什么?
● Canvas指纹和Cookie有什么区别?
● 如何检测与防护Canvas指纹?
● 常见问题
Canvas指纹是什么?
Canvas指纹是利用浏览器如何用HTML5的<canvas>元素绘制一张隐藏图像,从而生成的一枚设备标识。网站让浏览器在屏幕外绘制一段文字和几个图形,再读回每一个像素并哈希成一串短字符。由于每个人的软硬件不同,这串字符几乎是唯一的,而且在多次访问间保持稳定。
该技术最早由论文《Pixel Perfect: Fingerprinting Canvas in HTML5》(Mowery 与 Shacham,加州大学圣地亚哥分校,2012年)提出,并在《The Web Never Forgets》(Acar 等,ACM CCS 2014)中被证实已被大量热门网站实际使用。换句话说,它并非理论——已在网络上悄悄运行超过十年,是整体浏览器指纹的关键组成部分。
Canvas指纹是如何工作的?
Canvas指纹的工作分为四步,整个过程只需几毫秒,屏幕上不会显示任何内容:
Canvas指纹的四个步骤——同一段代码,但每台设备生成的哈希都不同。
● 下达绘图指令:网站的JavaScript要求浏览器在隐藏的画布上绘制一行文字(常带特殊字体、重音符号或emoji)和几个图形。
● 设备渲染:浏览器把绘制交给GPU和操作系统——指令相同,但每套软硬件填出的像素略有不同。
● 读回像素:网站调用toDataURL()或getImageData(),取回刚绘制图像的原始像素数据。
● 哈希成标识:数据经过哈希函数(生成类似a3f9c1b8…的字符串)。这串字符就是Canvas指纹,通常每次访问都一样。
为什么每台设备的Canvas指纹都不同?
因为图形渲染取决于每台机器独特的软硬件组合。同样绘制“Cwm fjord”,你的笔记本和别人的机器在字母边缘、抗锯齿处理、颜色混合上都不会得到完全一致的像素。主要影响因素包括:
让两台设备极少拥有相同Canvas指纹的六个主要因素。
● GPU型号(显卡芯片)与显卡驱动版本。
● 操作系统及其版本。
● 已安装字体及字体渲染方式。
● 抗锯齿(anti-aliasing)算法。
● 浏览器与其内核(Chromium 或 Firefox)。
差异越多叠加,两人相同的概率就越低——这正是Canvas指纹区分能力强的原因。
网站用Canvas指纹做什么?
网站使用Canvas指纹主要是为了重新识别用户和检测欺诈,即便用户未登录或已清除Cookie。常见用途包括:
● 在支付与广告中对抗欺诈和机器人。
● 无需Cookie即可追踪用户以投放行为广告。
● 限制免费试用被滥用。
● 识别来自同一台设备的多个账号,从而一并标记或封禁——对多账号运营者尤为关键。
如果你在一台机器上运营多个店铺、多个广告账号或撸空投的钱包,相同的Canvas指纹正是让平台起疑的信号之一。
Canvas指纹和Cookie有什么区别?
核心区别在于:Cookie是网站存到你机器上的数据,而Canvas指纹是从你机器自身特征推断出来的——所以你无法像清除Cookie那样“删掉”它。
对比项 | Cookie | Canvas指纹 |
本质 | 存储在设备上的数据文件 | 从渲染方式推断出的标识 |
用户能看到吗? | 能(在设置中) | 几乎看不到 |
能删除吗? | 能,清除即可 | 不能——须改写或掩盖 |
无痕有用吗? | 通常有用 | 没用,仍会被识别 |
需要同意吗? | 通常需要(弹窗) | 常常悄然进行 |
这也是为什么很多人惊讶:明明清空了Cookie、开了无痕窗口,却还是被认出来——Cookie没了,Canvas指纹却还在。
如何检测与防护Canvas指纹?
你可以用免费工具检测自己的Canvas指纹(如EFF的Cover Your Tracks或AmIUnique.org),并通过以下几种思路防护:
● 使用注重隐私的浏览器:Tor会在读取canvas前屏蔽或询问;Firefox提供resistFingerprinting;Brave会做轻度随机化。
● 使用屏蔽指纹脚本的扩展。
● 使用指纹浏览器(防关联浏览器),让每个环境携带各自稳定的指纹——适合需要安全运营多账号的场景。
这正是GPM Login要解决的问题:每个环境都拥有独立的一套指纹,其中Canvas值被有控制地改写,让同一台机器上的多个账号不会共用同一个可疑读数。实际运营数百个环境时,这往往决定了账号是长期存活,还是被成批封禁。
如果你刚入门,建议先看基础篇什么是浏览器指纹,把全局搞清楚再深入。
常见问题
Canvas指纹合法吗?
技术本身在多数地区并未被禁止,但用它来追踪用户可能受GDPR等数据保护法约束。是否合法取决于用途与所在地区。
清除Cookie或用无痕能去掉Canvas指纹吗?
不能。Cookie会被删除,但Canvas指纹是从你机器渲染图形的方式推断出来的,因此在无痕模式和清除Cookie后依然存在。
VPN能隐藏Canvas指纹吗?
不能直接隐藏。VPN只改变IP地址,而Canvas指纹基于浏览器和硬件,与IP无关。你需要能改写指纹本身的工具。
指纹浏览器如何防护Canvas指纹?
它为每个环境提供各自稳定的Canvas值——通常是向像素数据加入受控噪声——让同一台机器上的不同账号看起来来自不同设备。
结语
Canvas指纹是网络上最隐蔽、最顽固的识别技术之一:它直接从你机器绘制图形的方式提取指纹,无需Cookie,也不会被无痕清除。对多账号运营者而言,控制好Canvas指纹是让账号不被关联、不被封禁的关键。
想让每个账号都拥有独立的浏览器身份?了解GPM Login如何按环境管理指纹。 免费试用 GPM Login →



