谷歌 Chrome 浏览器的指纹识别技术,一边反追踪一边搞追踪

最近关于谷歌Chrome浏览器追踪能力的披露引发了新一轮辩论,Chrome浏览器使用一种称为数字指纹识别的复杂技术,在iPhone或Android设备上创建秘密数字ID来识别用户。

这种方法隐形运行,即使用户阻止Cookie或切换到无痕浏览模式,也会持续存在。但这种技术究竟是什么,它如何如此详细地运作?本次黑鸟展示一下Chrome中浏览器指纹识别的机制。

浏览器指纹识别核心机制

浏览器指纹识别是一种追踪方法,它从用户的Web浏览器和设备中收集大量数据点或"signal"来组装成一个独特标识符。与传统Cookie不同,后者可以被删除或阻止,但指纹源于浏览器设置的固有特征,使其更难规避。

在Chrome浏览器中,这个过程通常从嵌入网站的少量JavaScript片段开始,在初始连接期间自动收集信息。然后,这些数据被传输到网站服务器,在那里使用数学算法进行Hash计算或处理,以创建独特的配置文件。

指纹识别的力量在于其高熵性质:收集的数据点越多,标识符就越独特。例如,虽然数百万用户可能在Android手机上使用Chrome,但结合具体细节如确切屏幕分辨率、安装字体,甚至设备如何渲染图形,就可以将用户与其他人区分开来。

研究表明,使用足够多的数据点,指纹可以以近乎完美的准确率识别用户,通常在用户不知情的情况下持续数月。

Chrome浏览器指纹识别详细数据点

Chrome的指纹识别实现特别有效,因为其广泛使用和可定制功能,无意中为追踪者提供了丰富数据。以下是关键技术和涉及的具体数据点的分解:

  1. 基本浏览器和设备属性

UserAgent字符串:

这是基础数据点之一,揭示浏览器类型(例如Chrome)、版本、操作系统(例如Android 15),有时还包括设备型号。

屏幕和显示细节:

指标如屏幕分辨率(例如1080x1920)、颜色深度、像素比率和方向有助于定位设备类型。在手机上,这可以揭示用户是否在使用高端旗舰机或预算型号。

安装字体和插件:

Chrome扫描可用字体(例如通过CSS或Canvas API检查"DejaVu Sans")和扩展。即使用户有常见插件如广告拦截器,它们的组合也往往独特。

语言和时区设置:

浏览器首选语言、键盘布局和时区为指纹添加了文化和地理层。

  1. 高级渲染技术

Canvas指纹技术基于浏览器对Canvas元素的渲染差异来创建指纹。HTML5 Canvas是一个用于绘制2D图形的API,网站可以通过JavaScript在画布上绘制文本、形状和渐变等元素,然后提取渲染结果的像素数据。这些像素数据因设备硬件(如GPU)、操作系统、浏览器版本和字体渲染引擎的细微差异而异,最终通过哈希算法生成一个固定长度的字符串,作为用户的唯一标识。

与其他指纹方法(如用户代理字符串或字体列表)不同,Canvas指纹更具高熵特性:即使在相同浏览器和OS下,不同设备的渲染输出也可能略有不同,导致指纹的唯一性高达99%以上。它特别适用于移动设备和跨会话追踪,因为指纹不易被清除,且在无痕模式下仍有效。

音频指纹识别:

使用Web Audio API(AudioContext),网站通过Chrome发送低频信号并测量处理输出。这揭示音频硬件细节,而无需录音或麦克风访问,添加参数如振荡器行为或增益节点。

WebGL指纹识别:

Chrome对WebGL的支持暴露显卡细节,包括供应商、渲染器和扩展。脚本可以渲染3D场景并散列输出,捕捉阴影或纹理处理的细微差异。

  1. 硬件和性能指标

硬件并发和内存:

关于CPU核心、可用RAM和设备内存的数据(通过navigator.hardwareConcurrency和navigator.deviceMemory)。

传感器数据(移动端):

在手机上,Chrome可通过API间接访问加速计或陀螺仪数据。

网络相关信号:

标头如Accept-Language或连接类型(例如蜂窝与Wi-Fi)与IP地址结合可用于增强追踪。

上述技术通常由广告技术公司通过脚本如FingerprintJS部署,后者无缝集成到网站中,谷歌搜索的广告不例外。

在手机上的Chrome中,移动环境放大了这一点,较小的设备意味着指纹更独特,允许跨应用和网站追踪。

谷歌的立场变化:左右脑互搏

谷歌此前谴责过指纹识别技术,认为它违背用户意愿,还会启动比搜索历史更具暴露性的隐形追踪。

如今谷歌态度转变,允许该技术在智能电视、游戏机等设备上使用,引发外界对其立场一致性的质疑。相关报道显示,谷歌曾在官方博客中明确表示指纹识别违背用户选择、不可取,核心原因是用户无法像清除 Cookie 那样清除指纹信息,难以掌控个人信息的收集方式。现在谷歌彻底逆转立场,重启这项技术并应用于电视、游戏机等智能设备。

谷歌重启指纹识别技术的原因,相关文章分析可能与它在浏览器市场的主导地位有关。Chrome 在 PC 端和移动端均占优势,与 Safari 不相上下,但谷歌缺乏 Safari 那样的内置防护措施,指纹识别由此成为行业竞争的焦点领域。重启该技术或许是谷歌想平衡广告追踪需求与隐私承诺,不过这一行为被认为存在自相矛盾。

指纹识别有一定实用价值,比如银行可通过它检测异常操作、防范欺诈。但对普通用户而言,它会削弱网络匿名性,使得跨网站用户画像分析成为可能,进而可能影响广告推送、商品定价和内容访问权限。

解决方案

1、使用扩展如NoScript选择性地禁用JavaScript。

2、切换到Tor、Brave 等隐私浏览器,其采用随机化或拦截等防护手段或启用Firefox的privacy.resistFingerprinting。

3、Chrome的User-Agent Reduction(用户代理减少)计划,这是谷歌为提升用户隐私而推出的官方举措。该计划旨在逐步简化并标准化浏览器User-Agent(UA)字符串,减少其中暴露的详细设备、操作系统和浏览器版本信息,从而降低浏览器指纹识别的风险(如在广告追踪或隐私泄露中的滥用)。这个计划从2022年开始分阶段 rollout,目前已基本完成,但用户仍需定期更新Chrome以确保获取最新的隐私保护优化。

4、禁用 iPhone 指纹识别方法:

相关推荐
橙子家13 小时前
浏览器缓存之【结构化数据库与缓存】: IndexedDB、Cache storage 和 Storage buckets
前端
user205855615181313 小时前
X6 中边悬浮置顶,规避 `mouseleave` 事件丢失问题
前端
李明卫杭州13 小时前
CSS aspect-ratio 属性完全指南
前端
Pedantic15 小时前
SwiftUI 手势层级(Gesture Hierarchy)详解
前端
飘尘15 小时前
前端转型全栈(Java后端)的快速上手指引
前端·后端·全栈
一颗烂土豆15 小时前
Meshopt 压缩深度解析,为什么它比 Draco 更快
前端·javascript·webgl
浏览器工程师16 小时前
AI Agent 接浏览器任务,先别让它一路点到底
前端·后端
雨季mo浅忆16 小时前
VSCode自动格式化三要素
前端
爱勇宝17 小时前
深扒 Anthropic 1680 位工程师简历:应届生几乎没机会,AI 公司最缺的不是博士
前端·后端·程序员