首页 / 科技 / 正文

我清了三遍 Cookie,网站还是认出我了——浏览器指纹到底记住了什么?

昨天下午,一个朋友在微信上问我:他清了缓存,删了 Cookie,甚至换了个 VPN,某个购物网站还是给他推上周看过的那双鞋。他说,感觉像被人跟着。

我懂那种感觉。有点像你在新街口逛街,一回头,发现有个人一直跟你保持十五米距离。你没证据,但你就是知道。

技术上讲,这时候多半是浏览器指纹在起作用。

一、无痕模式,其实一点也不“无痕”

先破一个特别常见的误会。

Ctrl+Shift+N 打开的那个小窗口,右上角戴帽子的小人,它做的事其实非常有限:不存历史、不存 Cookie、关掉窗口就忘。就这些。

它管的是“这台电脑上留下什么”,不是“别人能不能认出你”。

Cookie 像什么?像店家给你发的一张会员卡。你把卡扔了,店家就不知道你是谁了——前提是,他只认卡。

可如果他同时记住了你的身高、口音、走路时脚尖外八的角度、左手小指上那道疤呢?卡扔了,他照样一眼认出来。

浏览器指纹,就是后面那套东西。

浏览器无痕模式窗口界面截图

二、它到底在看什么

你打开一个网页,看起来只是几个字和几张图。但在这几毫秒里,网页上的脚本可以问你的浏览器一堆问题,而浏览器基本都会老实回答。

屏幕多大?1920×1080。系统是 Windows 还是 macOS?时区东八区?系统语言是中文?装了哪些字体?显卡什么型号?CPU 几个核心?内存大概多少?支不支持触摸?有没有装广告拦截插件?

单看每一条,都不稀奇。一千万人用 1920×1080 呢。

问题是它们会叠在一起。

然后是更微妙的那部分——Canvas 指纹。

脚本会在你屏幕外悄悄画一段字,或者画一个渐变色块,然后把渲染出来的像素读回来。同样是画一个“Hello”,你的显卡、驱动版本、字体渲染方式、系统缩放比例,会让这几百个像素产生极细微的差别。肉眼看不出来,但转成数字之后,就是另一回事了。

音频也类似。WebAudio 那边,一段音频经过你的硬件处理,出来的结果会带上一丁点属于你的特征。

把这一堆东西拼起来,得到的那个字符串,就是你这台设备在网上的“长相”。

浏览器开发者工具查看设备与渲染信息界面截图
浏览器开发者工具查看设备与渲染信息界面截图

你可以自己搜一下“浏览器指纹检测”,随便找个网站试一下。它多半会告诉你:你的指纹在这批访问者里,是独一无二的。

这个“独一无二”不是夸奖。

三、反常识的地方:你越装,可能越好认

三、反常识的地方:你越装,可能越好认
三、反常识的地方:你越装,可能越好认

很多人第一反应是:那我改啊。

改 User-Agent,装插件,把时区设成冰岛,屏幕分辨率调成个奇怪的数字。

结果往往更糟。

因为正常用户的特征是有统计分布的。一百万人里,绝大部分都落在几种常见配置的组合上。而一个时区写着冰岛、语言却是简体中文、分辨率是 1234×567、还关着 JavaScript 的访问者——他不独特,谁独特?

指纹识别里有个概念叫“熵”。越少见的信息,熵越高,越容易把你从人群里拎出来。你精心伪装出来的那套参数,很可能熵高得离谱。

就像一个人想混进人群,穿了一身夜光迷彩。他确实不是原来那个人了,但他现在更显眼。

所以真正做隐私保护的浏览器走的是另一条路:让很多人长得一样。Tor Browser 的思路就是这个,它努力让所有用户呈现出几乎相同的指纹。你藏在人群里,而不是藏在一张假脸后面。

Firefox 有个 resistFingerprinting 的开关,Brave 会给指纹加随机噪声,Safari 这些年也在做类似的事。思路都差不多。

四、那这事该慌到什么程度

四、那这事该慌到什么程度
四、那这事该慌到什么程度

说实话,不用太慌,但也别当它不存在。

它主要被用在两个方向。一个是广告和统计——你刷到的那些阴魂不散的推荐,多半来自这里。另一个是反欺诈:银行、票务、电商平台用它识别同一台设备反复注册、批量刷单。

前者让人烦,后者其实在保护你。

有点意思的是,普通用户在这件事上能做的确实不多,而且很多操作收益不高、麻烦不小。你为了躲广告装仨插件,插件本身又变成了新的指纹特征。绕回来了。

我的建议比较朴素。

日常上网,别为了这个把自己搞太累。真在意的话,用 Firefox 或者 Brave,防护开到标准档就行,别去折腾那些花里胡哨的伪装。

如果你是做开发、或者手上管着用户数据,那这条最实在:能不收集的就不收集,指纹这种东西,存下来就是负债。

还有一点,别把“无痕模式”当隐身衣。它只是不在你电脑上留痕迹,跟“别人认不认得你”是两码事。这个误会,我见过太多人踩。

最后说个让我有点感慨的地方。

我们花了不少力气去记密码、开二次验证、发消息前检查一遍措辞。但真正把我们钉在这个网络上的,往往是那些从没注意过的东西——你的屏幕、你的显卡、你系统里安安静静躺着的那几款字体。

它们替你说了一句:“是他。”