做截流绕不开一个问题:你一台电脑上挂十几个号,平台为什么有时候一眼就把它们认定是同一个人操作的?

一台电脑挂十几个号,平台凭什么认出它们是同一台

做截流绕不开一个问题:你一台电脑上挂十几个号,平台为什么有时候一眼就把它们认定是同一个人操作的?

答案不在 IP 上——IP 你可以一个号配一个代理,随便换。真正的关键,是一个叫“设备指纹”的东西。它才是平台识别“多号关联”的主力。

这篇就把设备指纹到底是什么、平台怎么用它抓人、指纹浏览器又在里面改了什么,一次讲透。

做截流绕不开一个问题:你一台电脑上挂十几个号,平台为什么有时候一眼就把它们认定是同一个人操作的?

先纠正一个误解:设备指纹不是 UA

很多人以为设备指纹就是 User-Agent(UA),那一串写着浏览器版本、操作系统的字符串。改个 UA 不就完事了?

差得远。

UA 只是最表层的一个参数,而且是最容易伪造的——它就是一段文本,你想写什么写什么。平台当然知道这一点,所以它根本不靠 UA 来认人。

真正的设备指纹,是一堆“你的设备无意中暴露的、很难造假的特征”组合起来的指纹。

设备指纹到底是什么:几十个参数拼出来的唯一标识

打开一个网页,浏览器会向网站暴露大量跟硬件、系统、环境有关的信息。单独拎一个出来,都不唯一;但把它们组合到一起,就几乎能唯一地指向你这台机器。

常见的有这么几类:

Canvas 指纹:让浏览器在画布上画一段特定的图形,不同显卡、驱动、系统渲染出来的像素细节会有微小差异。肉眼看不出,程序一比对就能区分。

WebGL 指纹:显卡的渲染器、厂商信息,暴露你的显卡型号。

字体指纹:系统里装了哪些字体、按什么顺序排列,不同系统的字体集都不一样。

屏幕参数:分辨率、色彩深度、可用区域。

音频指纹:声卡处理音频信号的微小特征。

还有时区、语言、硬件并发数、电池状态等等。

单个参数,可能有几百万人和你一样;但 Canvas 加 WebGL 加字体加屏幕这么一组合,撞车的概率极低。这就是“指纹”——像人的指纹一样,组合起来独一无二。

平台怎么靠它抓“多号关联”

理解了指纹是什么,平台抓多号的逻辑就清楚了。

你在同一台电脑上开十个号,这十个号的设备指纹会高度相似——因为底层是同一台机器、同一块显卡、同一套字体。平台只要两两比对,发现相似度超过一个阈值(业内常说 85% 左右),就判定:这十个号大概率是同一台机器在跑。

一旦判定关联,轻则限流,重则一锅端。

更阴的是“自相矛盾”型穿帮。比如你 UA 写着 iPhone,字体列表里却冒出 Windows 专属的“微软雅黑”;或者屏幕分辨率写的是手机,Canvas 渲染出来的却是 PC 显卡的特征。单看每个参数都“正常”,组合起来却互相打架——平台一比对,当场标红。

这就是为什么“只改 UA”没用:你改了一个表层参数,底层那一堆特征还在原样暴露着,反而显得更可疑。

指纹浏览器,到底改了什么

指纹浏览器(像比特浏览器这类)干的,就是从根本上解决这件事:给每一个窗口,配一套独立、且互相自洽的设备指纹。

注意两个词:独立,且自洽。

独立,是说每个窗口的 Canvas、WebGL、字体、屏幕都不一样,十个号是十套不同的指纹,平台比对不出相似性。

自洽,是更关键的——这套指纹内部不能打架。UA 写 iPhone,那字体就得是 iPhone 的字体集,屏幕得是手机的分辨率,Canvas 得是移动端显卡渲染出来的特征。每一个参数都得对得上,整套逻辑严丝合缝。

很多人用便宜的方案,只做到了“独立”没做到“自洽”——给每个号随机分配一堆参数,结果 UA 和字体对不上、屏幕和显卡对不上,反而比不改还容易被抓。

难点不在“多”,在“自洽”

这一节单独强调,因为它是这套技术最容易栽跟头的地方。

把指纹搞得多、搞得花哨,不难,随机生成就行。难的是让整套指纹在逻辑上站得住脚:你声称是一台什么设备,那这台设备的所有特征都得对得上,一个都不能露馅。

这背后其实是一张庞大的“设备特征对照表”——某型号手机该有什么字体、什么分辨率、什么显卡渲染特征,都得有真实数据支撑,不能瞎编。做得好的指纹方案,本质是在维护这张表的真实性。

这也是为什么这事儿没法靠一个简单脚本搞定——它考验的是对真实设备数据的长期积累。

指纹只是五层之一

最后把视角拉回来。

我第三天聊过,平台识别爬虫是好几层一起打分:IP、签名、TLS、设备指纹、行为。设备指纹,只是其中一层。

把指纹这层搞定,意味着平台没法靠“多号关联”一口端掉你。但这不等于安全——你还有行为层这关要过:十个号如果点击节奏一模一样、操作轨迹像复制粘贴,照样会被识别成机器。

指纹解决的是“你是谁”,行为解决的是“你在怎么动”。两层都得过。


上一篇
下一篇
发表列表
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~