普通浏览器降低指纹识别,常见的做法有三条:少向网站提供一些信息,让很多用户交出相近的值,或者让同一项结果不稳定。这三条路,都是浏览器在处理自己交给网站的值。

指纹浏览器是另一件事。它按窗口填写一套参数,让网站在这个窗口里读到您填的那一套。下面这三条路,都不是按窗口单独填参数。

学习目标

阅读本文后,您将能够:

  • 分清少提供、看起来差不多和结果不稳定这三条路
  • 判断无痕模式算不算这三条路
  • 理解随机结果可能在同一页里前后对不上

少提供一些信息

网站读不到的项,就没法拿来区分这个浏览器。

有的浏览器会缩短 User-Agent,不再写明完整的系统版本。有的不向页面报告精确的设备内存。有的限制页面试探本机安装了哪些字体。一旦不提供这些项,或者只给出一个粗略的值,网站能用来比较的材料就少了一块。

让更多人看起来差不多

很多人交出同一组值时,网站就很难把其中一个人分出来。

同一版本的浏览器,交出的 User-Agent 相近,接口集合也相近。网站在大量用户身上读到同一组值,这组值就不再指向某一个浏览器。缩短 User-Agent,走的就是这条路:声明写得笼统了,交出相同声明的人就多了。

让结果不稳定

同一项前后读到的结果如果会变,网站就很难用它长期认出这个浏览器。

有的浏览器给画布或音频加上噪声。您这次打开页面,网站读到一个结果;下次打开,结果可能不同。这一项就很难当作长期不变的标记。

噪声也可能被看出来。网站在同一页里把画布再读一次,如果两次结果对不上,就知道这项不稳定。EnvTrace 的稳定性检查,就是在同一页里把画布、音频和 WebGL 再读一次,看前后两次读到的是否一致。

在这个浏览器里测一次

这和按窗口改参数有什么不同?

降低指纹识别,是让网站更难用这些值把这个浏览器从很多人里分出来。指纹浏览器是让每个窗口按配置交出您填的那一套。如果一个窗口既改了参数,又让画布每次读出来都不同,网站在这个窗口里读到的值可能互相对不上。

三条路各做什么

  • 少提供:网站读不到的项,无法用来区分。
  • 看起来差不多:很多人交出同一组值。
  • 结果不稳定:同一项前后可能不同,同一页里读两次也可能对不上。

常见问题

无痕模式算降低指纹识别吗?

不算。无痕少留的是历史和 Cookie。屏幕、版本和画布结果通常还是这个浏览器原来的那一组。

给画布加噪声之后,检测会怎样?

网站在同一页里两次读到的画布结果对不上时,EnvTrace 的稳定性检查会反映这个差别。

把 User-Agent 缩短,指纹就没有了吗?

没有。缩短的只是浏览器声明这一项。屏幕、画布和其他照常提供的项,网站还是能读到。