Canvas 指纹听起来比实际更神秘。 网站要求您的浏览器绘制一个小图像。 它读取结果并将其与其他访问进行比较。
图像本身并不重要,关键在于结果的一致性。
您的操作系统、字体、浏览器、图形设置和硬件都会影响结果。 两种设备可能会以略有不同的方式绘制相同的内容。 这些差异可以帮助网站识别浏览器,即使在清除 cookie 后也是如此。
Canvas只是浏览器指纹的一部分。 与其他信号结合使用时效果最佳。 该细节很重要,因为 Canvas 结果本身并不是可靠的设备 ID。
什么是Canvas 指纹?
Canvas 是一项 HTML5 功能,用于在网页中绘制图形。 游戏、图表、图像编辑器和动画工具都依赖于它。
指纹识别脚本将相同的功能用于不同的目的。 它为浏览器提供了一组固定的绘图指令。 浏览器可以呈现文本、颜色、形状、阴影或表情符号。 然后脚本读取完成的图像。
微小的差异可能出现在像素级别。 它们可能来自浏览器引擎、操作系统、安装的字体、图形驱动程序或显示设置。
该脚本可以将结果处理为更短的值,称为 Canvas 哈希。 网站可以将该值存储在其服务器上,并将其与未来的访问进行比较。
这不会透露姓名或电子邮件地址。 它描述了浏览器环境的一部分。 网站稍后可能会将该环境与帐户、会话、IP地址或活动历史记录连接起来。
Canvas 指纹的工作原理
该过程通常通过 JavaScript 运行。 它不需要可见图像或用户操作。
1.页面创建Canvas
该脚本创建一个 HTML5 Canvas 元素。 它可能会将元素保留在页面的可见部分之外。
创建画布是正常的。 许多网站都需要一个真正的功能。 当脚本读取测试图像并使用结果进行识别时,重要的操作就会发生。
2.浏览器绘制固定内容
该脚本可能会要求浏览器绘制:
- 选定字体的文本
- 统一码字符
- 表情符号
- 彩色形状
- 渐变
- 阴影
- 透明层
使用相同的指令可以使比较更容易。 如果两个浏览器返回不同的像素,则网站发现了一个可以帮助区分它们的信号。
3.脚本读取图像
JavaScript 可以通过 toDataURL() 和 getImageData() 等方法读取 Canvas 内容。
返回编码图像。 另一个读取底层像素数据。 两者都可以捕捉肉眼几乎无法注意到的细节。
4.结果变成散列
原始 Canvas 图像包含的数据多于大多数系统所需的数据。 散列函数可以将其减少到更短的值。
该值很容易保存和比较。 它不像 cookie 那样存储在浏览器中。 该页面可以在下次访问时再次生成它。
5.添加其他浏览器信号
明智的检测系统不依赖于一个 Canvas 哈希。 它还可能检查:
- 浏览器名称和版本
- 操作系统
- 可用字体
- 屏幕尺寸
- WebGL 输出
- 音频处理
- 语言
- 时区
- 设备能力
- 知识产权信息
完整模式比任何单个值更有用。
画布指纹发生了什么变化?
画布输出来自系统的几个部分。 它通常被描述为 GPU 指纹,但这种描述过于狭窄。
操作系统
Windows、macOS、Linux、Android 和 iOS 使用不同的图形和字体组件。 系统更新也可能会改变某些内容的绘制方式。
浏览器引擎
Chrome、Firefox 和 Safari 并不总是以相同的方式处理图形。 浏览器更新也可以改变渲染行为。
字体
设备上可能不存在请求的字体。 然后浏览器选择一个替换。 即使字体形状或间距的微小变化也会改变最终像素。
字体平滑
操作系统以不同的方式平滑文本的边缘。 结果对于人来说可能看起来相同,但仍然产生不同的图像数据。
图形硬件和驱动程序
GPU 和图形驱动程序会影响部分渲染过程。 硬件加速设置也可能会更改浏览器使用的路径。
并非每个 Canvas 操作都通过 GPU 运行。 有些更多地依赖于软件、字体或浏览器引擎。
显示设置
屏幕缩放、像素密度、设备像素比和颜色设置可能会影响输出。
表情符号
表情符号在 Canvas 测试中非常有用,因为它们的外观因系统和设备制造商而异。 这种差异往往比两种常见字体之间的差异要大得多。
Canvas 指纹是唯一的吗?
并非总是如此。
具有相似操作系统、浏览器、字体和图形设置的设备可能会返回相同的 Canvas 结果。 不同的图像也可能产生相同的缩短的哈希值。
这就是为什么 Canvas 哈希不应被视为硬件序列号。
它仍然有用。 结果可能会将浏览器置于较小的一组相似环境中。 它还可能有助于确认已知浏览器已返回。
在实践中,更强烈的问题是:
- 结果是常见还是罕见?
- 会话期间是否保持稳定?
- 它与之前的访问相符吗?
- 它是否适合所报告的浏览器和操作系统?
- 它与 WebGL、字体和屏幕数据一致吗?
与其余部分相符的稳定结果比充满矛盾的罕见结果更重要。
Canvas 指纹与 Cookie
Cookie 存储在浏览器内。 网站将它们用于会话、首选项、购物车和跟踪。 用户通常可以检查或删除它们。
Canvas 不需要在设备上存储标识符。 该站点从浏览器环境重建信号。
清除 cookie 会删除保存的 cookie ID。 它不会更改字体、图形驱动程序、操作系统或浏览器引擎。 因此,在 cookie 消失后,Canvas 测试可能会返回熟悉的结果。
这并不能使 Canvas 永久存在。 浏览器更新、新字体、系统更改或驱动程序更新可能会改变输出。
有用的区别很简单。 Cookie 通过存储的数据记住浏览器。 Canvas 尝试通过渲染行为来识别它。
Canvas 指纹与 WebGL 指纹识别
画布测试通常使用 2D 文本、形状、颜色和效果。
WebGL 测试更侧重于图形加速。 他们可能会检查渲染器数据、支持的图形功能、着色器和渲染的 3D 场景。
这两种方法有重叠,但不能互换。 画布可以显示字体和图形行为。 WebGL 通常提供有关 GPU 和图形驱动程序的更直接的信息。
检测系统可以比较两者。 如果 Canvas 输出建议一种环境类型,而 WebGL 建议另一种环境类型,那么这种不匹配可能比单独的任何一个值更有趣。
为什么网站使用 Canvas 指纹
Canvas 指纹不仅限于广告。 它还出现在欺诈检测、帐户安全、机器人检查和分析中。
账户和支付安全
平台可以将当前浏览器与早期的可信会话进行比较。 更改的 Canvas 结果可能会影响风险评分。
它不应该单独决定结果。 IP 信誉、帐户历史记录、登录行为和设备更改可能更重要。
Bot 检测
自动浏览器有时会暴露不一致的信号。 所声称的操作系统可能不适合字体、WebGL 渲染器或 Canvas 输出。
检测系统可以利用这些冲突来发现异常环境。 如果配置文件的其余部分没有意义,则看起来正常的哈希值就没那么有用。
分析和跟踪
Canvas 可以帮助估计浏览器在删除 cookie 后是否已返回。 第三方脚本还可以比较不同网站的结果。
这是隐私问题变得更加严重的地方。 这个过程很安静,用户几乎无法直接控制所生成的价值。
私有模式、VPN 或代理是否会停止 Canvas 指纹?
隐私浏览限制本地历史记录并分离一些存储的数据。 它不会取代浏览器引擎、安装的字体、图形驱动程序或操作系统。
因此,私有窗口可能会返回与普通窗口相同的 Canvas 结果。
一些浏览器添加了针对指纹识别的单独保护。 例如,当页面读取 Canvas 数据时,Firefox 可以引入小的变化。 这种保护来自浏览器的隐私功能,而不是来自隐私模式本身。
VPN 和代理在网络层工作。 他们更改可见的IP地址和路由。 它们通常不会改变浏览器绘制图像的方式。
代理浏览器可能会隐藏原始IP,同时保持Canvas、WebGL、字体和其他浏览器信号不变。 这不是代理的故障。 这完全超出了代理的设计目的。
网络身份和浏览器身份是不同的层。 两者都可能需要注意。
如何测试画布指纹
BrowserLeaks、Cover Your Tracks、CreepJS 和 AmIUnique 可以显示 Canvas 数据。
不要通过一个绿色结果或一个哈希值来判断设置。 看看更广泛的模式。
一个有用的测试应该回答这些问题:
- 刷新后 Canvas 结果是否保持稳定?
- 普通窗口和私人窗口是否相似?
- 在其他浏览器中它会改变吗?
- 结果是否适合报告的操作系统?
- Canvas、WebGL、字体、语言和时区是否一致?
实用的 BrowserLeaks 指纹测试 可以显示这些信号如何一起出现。 了解 CreepJS 如何检查浏览器指纹 也很有用,因为 CreepJS 密切关注报告值和浏览器行为之间的冲突。
这些工具是诊断性的。 他们无法预测每个平台决策。
如何减少Canvas 指纹
没有完美的设置可以保留每个网站功能,同时删除每个指纹信号。 更好的方法取决于目标。
使用浏览器隐私保护
某些浏览器会阻止已知的指纹识别脚本。 其他人则限制 Canvas 访问或修改返回的数据。
这些功能可以减少跟踪。 它们还可能影响需要 Canvas 进行游戏、图像编辑、图表或安全检查的网站。
阻止已知的跟踪器
隐私扩展可以在许多第三方跟踪脚本运行之前阻止它们。
他们无法抓住每一次尝试。 网站可以从自己的域运行指纹识别代码。 激进的阻止也会破坏有用的页面功能。
小心对待 Canvas 扩展
返回空白 Canvas 结果听起来可能很安全,但它可能会产生问题。 很少有普通浏览器会为每个请求返回空白数据。
随机噪声也需要一致性。 如果相同的绘图指令每次都会产生新的结果,则浏览器可能看起来不稳定。
这并不意味着每个修改过的 Canvas 都是可疑的。 隐私浏览器出于合法原因使用修改。 实施比标签更重要。
避免创建罕见的浏览器
高度定制的浏览器可以变得更容易识别。
罕见的字体、不寻常的扩展、极端的屏幕设置和一些隐私修改可能会形成很少有其他用户共享的组合。 更多的变化并不总是意味着更少的暴露。
保持长期使用的配置文件一致
对于多帐户工作,稳定性与分离同样重要。
Canvas、WebGL、字体、浏览器版本、操作系统和用户代理应该描述一个可信的设备。 除了代理位置之外,语言和时区也应该有意义。
频繁的随机变化可能比稳定的配置文件产生更多的风险。
MoreLogin 如何处理画布指纹
空白的 Canvas 结果并不是完整的隐私策略。 现实的 Canvas 值也是不够的。 它仍然需要适合浏览器的其余部分。
MoreLogin 反检测浏览器 将 Canvas 作为独立浏览器配置文件的一部分进行管理。 每个配置文件都有自己的 cookie、缓存、本地存储和浏览器设置。
Canvas 可与 WebGL、字体、用户代理、语言、时区和区域设置一起使用。 MoreLogin 可以将这些区域设置与分配的代理的位置进行匹配。
这种方法比追求一个完美的哈希更实用。 网站很少孤立地判断一个价值。 他们着眼于整个环境的行为是否像一台设备。
使用 指纹浏览器进行 Web 自动化 时,同样的原则也适用。 浏览器设置、存储、网络身份和自动化行为都需要保持一致。
MoreLogin 可以帮助分隔这些环境。 它无法控制账户历史、代理质量、用户行为或各个平台的规则。
常见问题解答
Canvas 指纹可以识别一个人吗?
它识别浏览器环境的特征。 它不会直接透露姓名或电子邮件地址。 网站可能会将结果与帐户、IP地址或之前的活动关联起来。
Canvas 指纹是永久性的吗?
不。 浏览器更新、系统更改、字体、驱动程序和图形设置可能会改变结果。 一些 Canvas 值长期保持稳定,而另一些值则更频繁地变化。
删除cookie会重置它吗?
通常不会。 Cookie 删除会删除存储的数据。 它不会更改系统中影响 Canvas 渲染的部分。
私密模式是否会阻止 Canvas 指纹?
隐私模式主要限制存储的浏览数据。 它通常不会改变图形和字体环境。 单独的浏览器隐私功能可能会提供更多保护。
VPN 可以更改 Canvas 指纹吗?
VPN 会更改网络路由和可见的IP地址。 它通常不会改变 Canvas 渲染。 网站可能会检查网络和浏览器环境。
Canvas 指纹可以被阻止吗?
浏览器和扩展程序可以限制或修改 Canvas 访问。 强烈的阻止可能会影响合法的网站功能或创建不常见的浏览器配置文件。 减少暴露通常比尝试消除所有信号更实际。
最后的想法
Canvas 指纹非常有用,因为它将普通的浏览器功能转变为可重复的信号。 它不需要保存 cookie,并且大多数用户永远不会看到测试图像。
它的局限性和它的优势一样重要。 Canvas 哈希并不是完美的设备 ID。 当它保持稳定并与浏览器的其余部分一致时,它就会变得有用。
对于隐私而言,明智的目标是减少不必要的暴露。 对于多帐户工作,目标是保持每个环境独立且一致。 一种 Canvas 设置无法单独解决任一问题。
CTA 按钮:下载MoreLogin

ZH
