如何伪造浏览器指纹?

信息安全 隐私 指纹识别
2021-08-24 17:47:23

我正在开发基于 Google Chromium 的浏览器,并牢记隐私就是自由;但我需要知道如何保护我的浏览器用户免受指纹识别。

我正在考虑拦截与指纹相关的请求,例如以下请求:

  1. 浏览器插件详细信息和用户代理字符串
  2. HTTP_ACCEPT 标题
  3. 屏幕尺寸和颜色深度
  4. 时区和系统字体

并且总是发送相同的(假的)响应。我想在不为最终用户破坏任何东西的情况下做到这一点。

例如,如果用户试图全屏观看视频,而该网站询问屏幕尺寸适当调整其大小,浏览器将发出一个假的屏幕尺寸,但实际上会显示在真实屏幕尺寸。

这甚至可能吗?是否真的可以拦截这些请求并隐藏这些信息而不使站点无法正常工作?

2个回答

是的,这是可能的,但它比你想象的要困难得多,无论如何你最终都会破坏一些东西。以您的全屏视频为例,不是网站要求屏幕尺寸,而是网页上运行的 Javascript,并且在请求时您无法知道它是否会使用尺寸来调整视频,或对浏览器进行指纹识别。

Tor浏览器套件试图与合理的成功做到这一点。我建议研究它以了解它是如何工作的,以及如何改进它。

我刚刚找到了一个 Firefox RAS的开源扩展,因为它是开源的,你可以深入研究代码并将其移植到任何你想要的平台......我已经为 Firefox 测试了这个插件一段时间,只要你不这样做t欺骗PC上的移动浏览器和手机上的PC浏览器应该没问题。

到目前为止没有问题,除非扩展程序随机选择欺骗旧浏览器版本,但您可以排除旧浏览器版本并仅欺骗当前版本。

此扩展程序可以:

  • 禁用授权标头
  • 发送欺骗的 If-None-Match 标头
  • 发送欺骗的 X-Forwarded-For 标头
  • 发送欺骗通过标头
  • 欺骗Referer标头
  • 欺骗接受的文件
  • 欺骗接受的编码
  • 欺骗接受的语言
  • 时区欺骗 (UTC)
  • 屏幕尺寸欺骗
  • 使用标准字体集

还有更多,我不会在这里告诉细节,你可以看到他们的文档在这里将插件默认设置为“点击播放”也是一个好主意,但让javascript默认允许不破坏数千页。