自 Chromium 148 起,Math.tanh 现在可被指纹识别,用于关联底层操作系统
Chromium 148 的一项变化意味着 `Math.tanh` 和一些相关数学函数现在依赖宿主操作系统的 libc,使其精确输出可被用来可靠推断底层操作系统,并强化浏览器指纹识别。评论者讨论了这对隐私的严重程度,指出其他许多向量已经存在,而完全隐藏 OS 和浏览器特征在实践中可能是不可能的。帖子还审视了商业抓取服务的伦理和动机,以及用 LLM 生成的博客文章来宣传此类指纹识别技术的问题。
新的 Math.tanh 指纹识别向量
- Chromium 148+ 现在会通过宿主 libc 路由
Math.tanh(以及 CSS 三角函数),从而在相同输入上产生特定于操作系统的结果。 - 这会创建一种可靠的 OS 和版本范围指纹,尤其是与声称的 User-Agent 结合时。
- 有人认为这只是众多现有版本检测技巧中的一个小补充;也有人觉得它值得注意,因为数学函数原本被认为应当在跨平台时保持确定性。
- 一种缓解思路是在 V8 中实现 tanh,采用一致的舍入,并让 CSS 从那里调用,但这可能在性能和复杂度上带来取舍。
- 朴素地用 JS 覆盖
Math.tanh被认为是可检测的,而且它本身也可能变成一种指纹。
浮点数 vs 定点数,以及正确舍入
- 关于定点数与 IEEE-754 浮点数的讨论相当充分:
- 支持浮点:硬件支持普及、范围更好、对非专家来说更容易做对;通过谨慎的工具链可以做到确定性;定点数较小众,而且很难正确实现。
- 支持定点:绝对精度统一、误差建模更简单、在某些 DSP/仿真场景中能更有效利用 32 位;当 f64 不可用或很慢时也更合适。
- 正确舍入的超越函数(exp、sin、tanh、pow 等)被描述为在数学上原则上已经“解决”,但在实践中很难,有时也很慢。
- 文中提到 glibc 和 CORE-MATH 正朝着正确舍入方向推进;pow 和双变量函数仍然棘手(table-maker’s dilemma、Ziv’s rounding)。
LLM 生成的文章与内容质量
- 许多评论者把这篇博文形容为“LLM slop”:冗长、重复、信息密度低。
- 有人指出 AI 免责声明是在发布后才加上的;这让一些人对其可信度更低。
- 也有不少人认为作者本该直接发布简洁的笔记、表格和代码,而不是一篇由 AI 写成、经过填充的文章。
- 另一些人说,只要技术内容准确且已披露,他们并不在意作者身份。
抓取、指纹识别与伦理
- 这篇文章背后的公司出售可绕过反爬虫措施的抓取基础设施;一些人认为这篇文章是试图削弱防御的内容营销。
- CDN/反机器人检测视角:大规模恶意抓取(包括用于 LLM 训练)是激进指纹识别的主要驱动因素,并损害网站容量。
- 对于抓取是“盗窃”还是只是复制公开提供的数据,存在分歧;同意、带宽和意图是争论的核心。
- 有人担心一刀切的反爬虫措施和对 UA 的歧视会进一步巩固大型 CDN 看门人的地位,并伤害合法的小规模自动化。
隐私、合法性与反指纹识别的可行性
- 有人建议将指纹识别(或某些用途)直接定为非法,类似窃听;也有人认为这很难定义,而不会把合法诊断和反欺诈也一并禁掉。
- 讨论中把识别回访用户与在许多“商店”之间偷偷追踪他们作了类比。
- 许多人认为,由于存在大量侧信道(JS 行为、渲染怪癖、TCP 栈差异、屏幕/窗口指标、时序),完全隐藏 OS 或抵抗指纹识别在实践中是不可能的。
- 有人主张禁用 JS 或大幅减少 header;也有人指出这本身可能成为独特信号,并且常常与现代网站和 CDN 的需求相冲突。