Firefox/隐私
本文概述了如何配置 Firefox 以增强安全性和隐私性。
配置
以下是以隐私为中心的调整,旨在防止浏览器指纹识别和跟踪。
跟踪保护
Firefox 增加了一个增强跟踪保护的选项。可以通过 GUI 设置 > 隐私与安全 在不同级别启用它,或者通过设置 about:config
privacy.trackingprotection.enabled
true
除了隐私优势外,启用跟踪保护还可以将加载时间缩短 44%。
请注意,这不能替代 uBlock Origin 等广告拦截扩展,并且可能适用于或不适用于 Firefox 分支。如果您已经运行了带有正确列表的此类广告拦截器,则跟踪保护可能是多余的。
反指纹识别
当您的隐私设置设置为标准(默认)或严格时,Firefox 跟踪保护会阻止已知的“指纹识别器”列表。指纹识别保护是 Firefox 中正在大力开发的不同实验性功能。
Mozilla 已经在 Firefox 中启动了一个 反指纹识别项目,作为从 Tor 浏览器向上游移植功能项目的一部分。许多这些反指纹识别功能都通过 about:config
中的此设置启用
privacy.resistFingerprinting
true
更多信息请参阅: Firefox 的指纹识别保护。
更改浏览器时区
您系统的时区可用于浏览器指纹识别。要将 Firefox 的时区设置为 UTC,请按以下方式启动它
$ TZ=UTC firefox
或者,设置一个脚本来启动上述命令(例如,在 /usr/local/bin/firefox
中)。
更改用户代理和平台
您可以使用 about:config
中的 general.useragent.override
首选项覆盖 Firefox 的用户代理。
键的值是您浏览器的用户代理。选择一个已知的常用值。
- 值
Mozilla/5.0 (Windows NT 10.0; rv:102.0) Gecko/20100101 Firefox/102.0
用作 Tor 浏览器的用户代理,因此非常常见。 - 反指纹识别选项还会启用 Tor 浏览器用户代理并自动更改您的浏览器平台。
要更改 firefox 的平台,请在 about:config
中添加以下 string
键
general.platform.override
选择与您的用户代理对应的已知通用平台。
Win32
用作 Tor 浏览器的平台,与上面提供的用户代理相对应。WebRTC 暴露局域网 IP 地址
为防止网站通过 WebRTC 的点对点(和 JavaScript)获取您的本地 IP 地址,请打开 about:config
并设置
media.peerconnection.ice.default_address_only
为true
media.peerconnection.enabled
为false
。(仅当您要完全禁用 WebRTC 时)
您可以使用此 WebRTC 测试页面 和 WebRTC IP 泄漏 VPN / Tor IP 测试 来确认您的内部/外部 IP 地址不再泄漏。
禁用 HTTP Referer
HTTP Referer 是一个可选的 HTTP 标头字段,用于标识先前网页的地址,当前请求页面的链接是从该网页跟踪而来的。
根据您的首选项,将 network.http.sendRefererHeader
设置为 0
或 1
。
network.http.referer.XOriginPolicy
可能会提供更好的解决方案。禁用连接测试
默认情况下,Firefox 会尝试定期连接到 Amazon 和/或 Akamai 服务器 定期 间隔,以测试您的连接。例如,酒店、餐厅或其他企业可能需要您输入密码才能访问互联网。如果存在 Captive portal 并阻止流量,此功能将阻止所有其他连接尝试。这可能会泄露您的使用习惯。
要禁用 Captive Portal 测试,请在 about:config
中设置
network.captive-portal-service.enabled
为false
禁用遥测
将 toolkit.telemetry.enabled
设置为 false
,和/或在 首选项 > 隐私与安全 > Firefox 数据收集和使用 下禁用它。
启用 “请勿追踪” 标头
将 privacy.donottrackheader.enabled
设置为 true
,或在 首选项 > 隐私与安全 > 跟踪保护 中切换它
禁用/强制 “可信递归解析器”
Firefox 60 引入了一个名为可信递归解析器 (TRR) 的功能。它绕过系统中配置的 DNS 服务器,而是通过 HTTPS 将所有 DNS 请求发送到 Cloudflare 服务器。虽然这明显更安全(因为“经典”DNS 请求以纯文本形式通过网络发送,沿途的每个人都可以监听这些请求),但这也会使 Cloudflare(提供 TRR 服务器)可以读取您的所有 DNS 请求。
- 如果您信任自己配置的 DNS 服务器胜过 Cloudflare 的服务器,则可以在
about:config
中将network.trr.mode
(整数,如果不存在则创建)设置为5
来禁用 TRR。(值为 0 表示默认禁用,并且可能会被未来的更新覆盖 - 值为 5 表示选择禁用,并且不会被覆盖。) - 如果您信任 Cloudflare DNS 服务器并且希望获得额外的隐私(感谢加密的 DNS 请求),则可以通过将
network.trr.mode
设置为3
(完全禁用经典 DNS 请求)或2
(默认使用 TRR,如果失败则回退到经典 DNS 请求)来强制执行 TRR。请记住,如果您正在使用任何内联网网站或尝试通过主机名访问本地网络中的计算机,则启用 TRR 可能会破坏此类情况下的名称解析。 - 如果您想加密您的 DNS 请求但不使用 Cloudflare 服务器,则可以通过将
network.trr.uri
设置为您的解析器 URL 来指向新的 DNS over HTTPS 服务器。目前可用的解析器列表可以在 curl wiki 中找到,以及 TRR 的其他配置选项。
加密客户端问候 (ECH)
要启用加密客户端问候 (ECH)(以前称为加密服务器名称指示 (eSNI)),以便在线路上监听的任何人都看不到您建立 TLS 连接的服务器名称,请设置
network.dns.echconfig.enabled
为true
network.dns.http3_echconfig.enabled
为true
您可能还需要将 network.trr.mode
设置为 2
或 3
。
禁用地理位置
在 about:config
中将 geo.enabled
设置为 false
。
禁用 “安全浏览” 服务
安全浏览提供网络钓鱼保护和恶意软件检查,但它可能会将用户信息(例如 URL、文件哈希等)发送给 Google 等第三方。
要禁用安全浏览服务,请在 about:config
中设置
browser.safebrowsing.malware.enabled
为false
browser.safebrowsing.phishing.enabled
为false
此外,通过将 browser.safebrowsing.downloads.enabled
设置为 false
来禁用下载检查。
禁用 WebGL
WebGL 存在潜在的安全风险。[1] 如果您想禁用它,请在 about:config
中将 webgl.disabled
设置为 true
。
扩展
参见 浏览器扩展#隐私。
禁用 WebAssembly (和 JavaScript)
WebAssembly,也称为 Wasm,是一种相对较新的语言。与 JavaScript 不同,Wasm 在浏览器中本地执行预编译代码,用于高性能模拟和应用程序。它因隐藏恶意软件途径以及与 JavaScript 一样,可用于跟踪用户而受到批评。Tor 浏览器阻止 JavaScript 和 Wasm。
参见 浏览器扩展#隐私 中的 NoScript,以像 Tor 浏览器那样阻止 JavaScript,这可以在需要时快速访问。要禁用 Wasm,请在 about:config
中设置
javascript.options.wasm
为false
javascript.options.wasm_baselinejit
为false
javascript.options.wasm_ionjit
为false
某些扩展是隐藏的,默认安装在 /usr/lib/firefox/browser/features
中。许多可以通过 rm 扩展名.xpi
安全删除。它们可能默认未启用,并且可能具有用于启用或禁用的菜单选项。请注意,删除的任何文件将在更新 firefox 软件包后返回。要保持删除这些扩展,请将目录添加到 /etc/pacman.conf
中的 NoExtract。一些扩展包括
doh-rollout@mozilla.org.xpi
- DoH Roll-Out(如果您选择使用上面的 #禁用/强制 “可信递归解析器”,请勿删除)。screenshots@mozilla.org.xpi
- Firefox 截图。webcompat-reporter@mozilla.org.xpi
- 用于报告在 Firefox 中受到破坏的站点,以便 Mozilla 可以改进 Firefox 或使用webcompat@mozilla.org.xpi
扩展动态修补站点。- 所有组合的用户和系统扩展都在
about:support
中列出。有关系统扩展的完整列表,包括描述其功能的 README 文件,请参见 [2]。
Firefox 安装到诸如安装到 /opt
的默认版本之类的路径在 /firefox/firefox/browser/features
中安装了系统扩展。
通过 Searx 进行网络搜索
隐私可以通过减少您提供给单个实体的信息量来增强。例如,通过不同的、随机选择的代理发送每个新的网络搜索,使得单个搜索引擎几乎不可能构建您的个人资料。我们可以使用 Searx 的公共实例(或站点)来实现这一点。Searx 是一个 AGPL-3.0、开源 站点构建器,它生成被称为“实例”的站点。每个公共“实例”都可以充当您和众多不同搜索引擎之间的中间人。
从此公共实例列表和其他列表中,将您希望的尽可能多的 Searx 站点加入书签(如果 JavaScript 被禁用,您将需要暂时启用它以加载列表)。为了快速访问这些书签,请考虑在书签的名称字段中添加 SX1
、SX2
... SX(n)
,其中 (n)
是您加入书签的 searx 实例的数量。
完成书签操作后,只需在 URL 栏中输入 sx
、一个数字和 Enter
键,即可加载一个实例。
有关其他选项,请参阅 https://www.privacyguides.org/en/search-engines/。
通过 Invidious 观看视频
Invidious 实例充当 YouTube 的替代前端。它们是由 开源代码 构建的网站。通常难以限制用户发送给 YouTube (Google) 的信息量以访问内容。
使用 Invidious 的好处包括
- 无需运行脚本即可访问视频。 YouTube 强制用户运行脚本。
- 视频可以保存以供将来观看,或供他人观看,包括离线时。这减少了发送给 Google 的关于何时观看或重新观看内容的反馈。
- 可选的仅音频模式,可减少带宽使用量。当与 Tor 等浏览器结合使用时,在更轻量级的网站上使用更少的数据包可能提高您的匿名性。
- Invidious 是一个免费且开源的界面,使建立独立的、私有的视频托管服务更加容易。因此,存在一些网站正在使用 Invidious 来提供他们自己的内容或从 YouTube 上删除的内容。因此,它可能有助于限制 YouTube 未来构建个人资料的能力(见注释)。
从以下列表中将尽可能多的功能正常的 invidious 实例加入书签(此处,此处,此处[失效链接 2024-01-13 ⓘ])。请注意,其中一些实例可能由 Cloudflare 托管。
您可以通过简单地将 youtube.com
部分替换为您要使用的实例的域名,将任何 YouTube 视频 URL 更改为 Invidious URL。
企业策略
可以通过使用 企业策略 来建立网络和系统范围的策略,企业策略既补充又覆盖用户配置首选项。例如,没有记录的用户首选项来禁用检查 beta 频道版本的更新。但是,存在一种企业策略可以有效地部署为一种解决方法。可以通过 policies.json
管理单个和/或多个策略,如下所示
- 禁用应用程序更新
- 强制启用硬件加速
{ "policies": { "DisableAppUpdate": true, "HardwareAcceleration": true } }
在 about:support
中验证 Enterprise Policies
是否设置为 Active
,并在 about:policies
中查看特定于版本的策略。
清理后的配置文件
prefs.js
构成 Firefox 配置文件的文件可以剥离某些元数据。例如,典型的 prefs.js
包含标识客户端和/或用户的字符串。
user_pref("app.normandy.user_id", "6f469186-12b8-50fb-bdf2-209ebc482c263"); user_pref("security.sandbox.content.tempDirSuffix", "2a02902b-f25c-a9df-17bb-501350287f27"); user_pref("toolkit.telemetry.cachedClientID", "22e251b4-0791-44f5-91ec-a44d77255f4a");
有多种方法可以重置这些字符串,但前提是必须首先创建一个没有此类标识符的主 prefs.js
,并将其同步到工作配置文件中。最简单的解决方案是在复制 Firefox 的 prefs.js
到单独的位置之前关闭 Firefox
$ cp ~/.mozilla/firefox/example.default-release/prefs.js ~/prefs.sanitized.js
通过将任何和所有标识符字符串和日期代码设置为 0 或从复制的 prefs.js
中完全删除条目来剥离它们。根据需要将现在清理后的 prefs.js
同步到工作配置文件。
$ rsync -v ~/.prefs.sanitized.js ~/.mozilla/firefox/example.default-release/prefs.js
还可以观察到次要的隐私效果,可以通过在 Fingerprint JS API Demo 中检查清理后的 prefs.js
与工作 prefs.js
之间的字符串结果来见证。
extensions.json
假设已安装扩展程序,则 extensions.json
文件列出所有配置文件扩展程序及其设置。值得注意的是用户主目录的位置,默认情况下 .mozilla
和 extensions
文件夹存在于该位置。可以通过将 applyBackgroundUpdates
设置为适当的 0
值来禁用不需要的后台更新。次要的注意事项是 installDate
和 updateDate
。 Bubblewrap 可以有效地屏蔽主目录的用户名和位置,此时可以清理和修改 extensions.json
文件以指向沙盒化的 HOME
位置。
{"schemaVersion":31,"addons":[{"id":"uBlock0@raymondhill.net","syncGUID":"{0}","version":"0","type":"extension","optionsURL":"dashboard.html","optionsType":3,"optionsBrowserStyle":true,"visible":true,"active":true,"userDisabled":false,"appDisabled":false,"embedderDisabled":false,"installDate":0,"updateDate":0,"applyBackgroundUpdates":0,"path":"/home/r/.mozilla/firefox/example.default-release/extensions/uBlock0@raymondhill.net.xpi","skinnable":false,"softDisabled":false,"foreignInstall":true,"strictCompatibility":true}}
还可以完成从 addonStartup.json.lz4
和 search.json.mozlz4
中删除类似的元数据。 mozlz4 是一个命令行工具,为 Mozilla(非标准)LZ4 文件提供压缩/解压缩支持。
移除子系统
与 崩溃报告 相关的遥测可以通过删除以下内容来禁用
/usr/lib/firefox/crashreporter /usr/lib/firefox/minidump-analyzer /usr/lib/firefox/pingsender
这些删除的文件将在升级软件包后恢复,将它们添加到 NoExtract 以实现持久化。
对于选择从 Mozilla 官方来源手动安装 Firefox 的用户,可以通过删除 firefox
目录中的 updater
来禁用更新程序系统。
编辑 omni.ja 的内容
omni.ja
的内容可能会抑制或丢失某些功能。此外,它会在每个 Firefox 版本更新/覆盖。用户需要自行决定隐私方面的收益是否值得预期的可用性损失。文件 /usr/lib/firefox/omni.ja
包含 Firefox 使用的大多数默认配置设置。例如,从 Firefox 73 开始,无法通过扩展程序或将首选项 URL 设置为 "");
来阻止对 firefox.settings.services.mozilla.com
和/或 content-signature-2.cdn.mozilla.net
的网络调用。除了使用 DNS 沉洞或防火墙阻止已解析的 IP 块外,一种解决方案是 grep(1) 遍历 omni.ja
的提取内容,然后删除对 firefox.settings.services.mozilla.com
和/或 cdn.mozilla.net
的所有引用。还可以删除无关的模块,例如未使用的字典和断字文件,以出于安全和性能原因减小 omni.ja
的大小。
要重新打包/重新压缩,请使用命令 zip -0DXqr omni.ja *
,并确保您的工作目录是 omni.ja
文件中文件的根目录。
强化的 user.js 模板
一些活跃的项目以 user.js
配置文件的形式维护全面的强化 Firefox 配置,该配置文件可以放入 Firefox 配置文件目录中
- arkenfox/user.js (arkenfox-user.jsAUR)
- pyllyukko/user.js
- ffprofile.com (github) - 在线 user.js 生成器。您可以选择要启用和禁用的功能,最后您将获得一个 zip 文件的下载链接,其中包含您的配置文件模板。例如,您可以禁用某些将数据发送到 Mozilla 和 Google 的功能,或者禁用几个烦人的 Firefox 功能,例如 Mozilla Hello 或 Pocket 集成。
另请参阅
- Brainfucksec 的 firefox 强化指南 - 一个维护良好的 firefox 指南,用于强化您的 firefox。
- 隐私指南 - 一个社区维护的资源,用于保持在线隐私。
- privacytools.io Firefox 隐私附加组件
- prism-break.org Web 浏览器附加组件
- MozillaWiki:Privacy/Privacy Task Force/firefox about config privacy tweeks - Mozilla 维护的 wiki 页面,其中包含隐私特定设置的描述。
- 如何阻止 Firefox 建立自动连接 - 是一个带注释的 Firefox 功能列表以及禁用它的具体设置。
- 搜索引擎比较 - 用于比较一些以隐私为中心的数据点的流行搜索引擎的网页。