术语表
设备熵
一台设备对外声明的属性带有多少可用于识别的信息——以比特衡量,靠显得普通而不是靠隐藏来降低(device entropy)。
也称:指纹熵。
这里的熵是信息论意义上的熵:一个值把「你可能是谁」缩小了多少。半个互联网都共有的属性带 1 比特;几乎没人能复现的 Canvas 哈希带 20 比特以上。指纹识别就是把这些比特加起来——平台、语言列表、时区、屏幕尺寸、GPU 字符串、音频哈希——直到这个组合指向唯一一台设备。几项单看毫不起眼的属性,合起来足以下定论。
反直觉的地方,也是屏蔽之所以是差策略的原因:拒绝回答通常会抬高你的熵,而不是降低它。一个不上报屏幕尺寸的浏览器,远比一个上报着普通尺寸的浏览器罕见,于是这次拒绝本身就成了标识。目标是显得普通且内部自洽,而不是沉默:一组描述出一台可信机器的值,整套一起生成,而不是逐个字段打乱——因为每一个独立随机的字段,都是又一次互相矛盾的机会。完整的论证在指纹页面。
术语表里的更多条目
TLS 指纹
根据客户端建立 TLS 连接的方式算出的标识——ClientHello 里的密码套件、扩展及其排列顺序(TLS fingerprint)。
Cookie 注入
把一份保存好的 Cookie 写进一个全新的浏览器环境,让它一打开就已经是登录状态,无需输入密码(cookie injection)。
无头浏览器
在没有可见窗口的情况下运行的真实浏览器引擎,通常受自动化驱动。大批量跑起来便宜,也越来越容易被网站认出来(headless browser)。
无浏览器采集
用普通 HTTP 直接向网站自己的列表接口取数,全程不启动浏览器——快、便宜,且只在数据本就结构化的地方可行(browserless collection)。
验证码代解
把一次挑战交给第三方服务去作答。偶尔有用,但远不能替代「不触发这次挑战」(CAPTCHA solving)。
时区与地理位置伪装
让浏览器报出与会话自称所在地相符的时钟——有时还有坐标——而不是机器实际所在地的(timezone spoofing)。
所有条目都列在术语表索引上。