Canvas、WebGL、Audio 指纹:看不见的硬件签名
2026-06-17
在浏览器指纹里,有三类特别"硬核"的特征,因为它们直接反映你的硬件与驱动:Canvas、WebGL 和 Audio 指纹。它们不需要任何权限,网页在后台悄悄跑一下就能拿到。
Canvas 指纹
网页让浏览器在一块看不见的画布上绘制一段文字和图形,再读取像素数据算出哈希。同样的代码,在不同的显卡、驱动、操作系统和字体渲染设置下,产出的像素会有极其细微但稳定的差异——这个差异就成了你的"画布签名"。
WebGL 指纹
WebGL 用于 3D 渲染,它能进一步暴露你的显卡厂商与型号(例如 "NVIDIA GeForce RTX..."),以及渲染复杂图形时的细微差异。显卡型号本身就极具区分度,再叠加渲染哈希,唯一性很高。
Audio 指纹
Audio 指纹不会播放任何声音。它用 OfflineAudioContext 在内存里合成一段波形,经振荡器、压缩器处理后读取输出数值。不同设备的音频栈实现略有差异,数值因此可作为又一个稳定特征。
为什么难防
这三项反映的是真实硬件,普通用户很难改变;而刻意随机化又可能让你显得"与众不同"。它们也是为什么"换个 UA、清个 Cookie"基本拦不住指纹追踪的原因。
怎么应对
- 使用带反指纹保护的浏览器(会对 Canvas/WebGL 加噪或返回统一值)。
- 避免安装大量罕见字体或插件,减少额外区分度。
- 在本站首页查看自己的 Canvas/WebGL/Audio 指纹哈希,了解暴露程度。