当用户使用非标准窗口尺寸的浏览器进行网页浏览时,浏览器的独特尺寸可以让网站有效追踪用户身份,即使用户已经禁用了 JavaScript 和 Cookie 等传统身份追踪(Fingerprinting)手段的媒介。这篇文章将教您如何在 Firefox 中启用 Letterboxing 功能来预防此种身份追踪手段。
Letterboxing 简介
Firefox 在 2019 年发布的 67 版本中加入了从 Tor Browser 引进的 Letterboxing 功能,此功能直至出稿为止(2020 年 6 月 12 日)在 Firefox 中都还是一个隐藏功能。Letterboxing 可以在浏览器的内窗口周围创建一些空白 padding,使浏览器的内窗分辨率保持为 100px 的倍数(例如 1600x800),而不是更容易识别的精确数字(例如 1632x821)。
下图中的浏览器窗口就没有启用 Letterboxing,可以看到该窗口的尺寸(1583x791)很独特,很容易和其他浏览器区分开来。即使用户更换了 IP 地址并且删除了 Cookie,独特的浏览器尺寸仍然会暴露用户身份。
没有启用 Letterboxing 的浏览器窗口
下图中的浏览器窗口和上图中的窗口尺寸一致,但是启用了 Letterboxing。这项技术可以让窗口尺寸始终保持为 100px 的倍数,从而防止浏览器的尺寸暴露用户身份。
启用了 Letterboxing 的浏览器窗口
启用 Letterboxing
Letterboxing 在最新版本的 Firefox(出稿时为 77)中仍然是一个隐藏设定。在 about:config
中用户即使搜索 letterboxing
也无法看到相应的设定,必须要手动添加一个新的键值。
Firefox 中无法找到该设置
添加设置的方法也很简单,首先在地址栏输入 about:config
进入 Firefox 设置界面,此时 Firefox 会警告用户手动修改参数的风险,点击接受风险并继续来进入修改界面。注意胡乱修改此界面中的值可能会损坏 Firefox。
about:config 警告
然后在搜索栏输入 privacy.resistFingerprinting.letterboxing
,选择 Boolean,并点击右侧的加号创建新的键值。
创建新的 Letterboxing 键值
此时一个新的键将会被创建,并且值为 true。这样设置就完成了。此时重启 Firefox 即可看到效果。
新创建的键值
测试 Letterboxing
当 Letterboxing 启用后,可以前往 How Big is My Browser 这样的网站测试自己的窗口尺寸。可以看到,网站识别出的尺寸是 letterboxing 过后的尺寸。
How Big is My Browser 测试
并且,在控制台调用 window API 输出的数字也是 letterboxing 之后的尺寸了。
控制台输出 window API 尺寸
一些尚未解决的问题
当前往 BrowserLeaks.com 这样的网站测试自己的浏览器时,可以看到虽然传统的窗口尺寸已经是 letterboxing 之后的尺寸(还被标记了开启了 letterboxing),但是 viewport 尺寸仍然未改变。即使是在隐私方面走在最前端的 Tor Browser 仍然可以被这种方法 fingerprint。如果网站采用了这种方式进行身份追踪,仍有可能成功。
所以,如果需要完全的匿名性,还是应该使用 Tor Browser 在 Windows 等常见系统下使用默认窗口尺寸进行浏览。
viewport 尺寸泄漏
还有一个问题就是,当启用了 letterboxing 后,Firefox 的窗口滚动条不再在窗口边缘,而在窗口内部。所以想要把鼠标放在滚动条上可能会更困难。可能这也就是 Firefox 在正式版中迟迟未在 privacy.resistFingerprinting
启用时也同时默认启用 letterboxing 的原因。是否要为了隐私而牺牲便利性,牺牲到什么程度,每个人都有不同的答案。
滚动条不再在窗口边缘
相关网站
- Panopticlick:EFF(电子前沿基金会)推出的浏览器 fingerprinting 测试网站,使用了真正的追踪程序提供商来测试浏览器,可以看到浏览器泄漏了哪些独特信息并给出一个评分
- BrowserLeaks.com:检测各种浏览器泄漏的信息
- How Big Is My Browser?:一个直观的浏览器尺寸显示网站
最后修改于 2020-06-12