词汇表·指纹识别
浏览器指纹
浏览器和设备特征的组合,可以识别没有 cookie 的浏览器。
定义
浏览器指纹是网站可以从浏览器及其设备读取的一组特征,例如浏览器版本、时区、语言、安装的字体、编解码器和屏幕尺寸,这些特征组合成标识符。 MDN 将指纹识别描述为通过收集和组合这些区别特征来识别浏览器,进而识别用户。
它是如何运作的
- 有些值随每个请求被动到达,例如 User-Agent 和 Accept-Language 标头。 W3C 将其称为被动指纹识别。
- 其他信息由页面上运行的 JavaScript 或 CSS 主动收集:屏幕分辨率、时区、字体列表、Canvas 或 WebGL 渲染输出等等。
- 每个值都是共同的;结合起来,它们可以将浏览器范围缩小到一个小组或单个设备。没有一个属性必须是唯一的。
为什么这很重要
- 指纹可以在没有 cookie 的情况下链接跨站点的访问,W3C 指出,清除 cookie 或使用 VPN 并不能阻止这种关联。
- 网站还使用指纹进行欺诈和滥用检测,例如发现来自一台设备的多个帐户。
- 对于合法的多帐户工作(机构、质量检查、单独的客户帐户),了解指纹可以解释为什么存在单独的浏览器配置文件。
限制和常见误解
- “隐身模式隐藏了我的指纹。”私有窗口清除存储的数据,但页面可以读取的设备特征基本保持不变。
- “随机指纹是最安全的。”不一致的值(例如,具有桌面屏幕的移动用户代理)可能比常见的一致设置更具特色。
- “指纹识别是可以消除的。” W3C 指南指出,通过广泛部署的技术手段完全消除坚定对手的指纹识别是难以置信的;缓解措施可以减少它。
示例: 具有相同浏览器版本的两台笔记本电脑在时区、安装的字体和 GPU 方面仍然可能不同。即使在清除 cookie 后,读取这些值的脚本加上 Canvas 渲染也可以区分它们。
没有浏览器或代理可以保证帐户不会受到限制。遵守各个平台的规则。
相关术语
- 画布指纹识别 — 通过渲染 HTML 画布绘图的微小差异来识别设备。
- WebGL 指纹识别 — 使用 WebGL 图形信息和渲染输出来识别设备。
- 用户代理(用户代理字符串) — 浏览器在 User-Agent 标头中发送并公开给 JavaScript 的浏览器和操作系统标识。
- 浏览器配置文件 — 一组独立的浏览器数据 — cookie、历史记录、设置、扩展 — 与其他配置文件分开。