Firefox/プライバシー
この記事では、セキュリティとプライバシーを高めるための Firefox の設定を概説します。
目次
- 1 設定
- 1.1 トラッキング防止機能
- 1.2 ファーストパーティの分離
- 1.3 フィンガープリント採取防止
- 1.4 ブラウザのタイムゾーンを変更する
- 1.5 ユーザエージェントとプラットフォームを変更する
- 1.6 WebRTC は LAN の IP アドレスを公開してしまいます
- 1.7 HTTP リファラを無効化する
- 1.8 接続テストを無効化する
- 1.9 テレメトリを無効化する
- 1.10 "Do Not Track" ヘッダを有効化する
- 1.11 'Trusted Recursive Resolver' を無効化/強制する
- 1.12 位置情報を無効化する
- 1.13 'Safe Browsing' サービスを無効化する
- 1.14 WebGL を無効化する
- 1.15 Encrypted Client Hello
- 2 拡張
- 3 Seax での Web 検索
- 4 Invidious でビデオを見る
- 5 エンタープライズポリシー
- 6 Sanitized プロファイル
- 7 サブシステムの削除
- 8 omni.ja の内容を編集する
- 9 user.js テンプレートで強化する
- 10 参照
設定
以下は、ブラウザのフィンガープリント採取とトラッキングを防ぐためのプライバシーに重点を置いた設定です。
トラッキング防止機能
Firefox には強化型トラッキング防止機能のオプションがあります。このオプションは、設定 > プライバシーとセキュリティ から GUI で、あるいは about:config
から設定することで、複数のレベルから選択して有効化できます:
privacy.trackingprotection.enabled
true
プライバシー上の利点以外にも、トラッキング防止機能を有効化するとロード時間が 44% 短くなるという効果もあります。
注意点として、この機能は uBlock Origin などの広告ブロック拡張機能を置き換えるものではなく、Firefox のフォークでは動作しない可能性があります。正しいフィルタリストのある広告ブロックをすでに実行している場合、トラッキング防止機能は冗長かもしれません。
ファーストパーティの分離
ファーストパーティの分離 ("double keying" とも) により、サードパーティが複数のサイトをまたいでユーザをトラッキングすることを防ぐことができます。about:config
で設定することにより、有効化できます:
privacy.firstparty.isolate
true
フィンガープリント採取防止
Firefox のトラッキング防止機能は、プライバシーの設定が 標準 (デフォルト) か 厳格 に設定されている場合、既知の "フィンガープリント採取者" のリストをブロックします。フィンガープリント採取防止機能は、Firefox で開発中の別の実験的な機能です。
Mozilla は、Tor Browser の機能を取り入れるプロジェクトの一環として、Firefox におけるフィンガープリント採取防止プロジェクトを開始しました。これらのフィンガープリント採取防止機能の多くは、about:config
の以下の設定により有効化されます:
privacy.resistFingerprinting
true
詳細は Firefox のフィンガープリント採取防止機能 を参照してください。
ブラウザのタイムゾーンを変更する
システムのタイムゾーンはブラウザのフィンガープリント採取で使われる可能性があります。Firefox のタイムゾーンを UTC に設定するには、以下のようにして Firefox を起動してください:
$ TZ=UTC firefox
あるいは、上記を実行するスクリプトを設定してください (例えば、/usr/local/bin/firefox
に)。
ユーザエージェントとプラットフォームを変更する
Firefox のユーザエージェントは about:config
の general.useragent.override
プリファレンスで上書きすることができます。
このキーの値はブラウザのユーザエージェントです。既知で一般的なものを選んでください。
Firefox のプラットフォームを変更するには、以下の string
キーを about:config
に追加してください:
general.platform.override
ユーザエージェントに対応する既知の一般的なプラットフォームを選んでください。
WebRTC は LAN の IP アドレスを公開してしまいます
ウェブサイトが WebRTC のピアツーピア (と JavaScript) であなたのローカル IP アドレスを取得できないようにするには、about:config
を開き、以下を設定してください:
media.peerconnection.ice.default_address_only
をtrue
にmedia.peerconnection.enabled
をfalse
に (WebRTC を完全に無効化したい場合のみ)
この WebRTC テストページと WebRTC IP Leak VPN / Tor IP Test で、あなたの内部/外部 IP アドレスが漏洩していないことを確認できます。
HTTP リファラを無効化する
HTTP リファラとは、現在リクエストされているページの前のウェブページのアドレスを指す、オプションの HTTP ヘッダフィールドです。
プリファレンスに応じて、network.http.sendRefererHeader
を 0
か 1
に設定してください。
接続テストを無効化する
デフォルトでは、Firefox は Amazon サーバと Akamai サーバの両方か片方に一定の間隔で接続して、接続をテストします。例えば、ホテルやレストラン、会社では、インターネットに接続するためにパスワードを入力する必要があるかもしれません。そのようなキャプティブポータルが存在してトラフィックをブロックする場合、この機能は他の全ての接続試行をブロックします。これにより、あなたの使用習慣が漏れてしまう可能性があります。
キャプティブポータルのテストを無効化するには、about:config
で以下を設定してください:
network.captive-portal-service.enabled
をfalse
に。
テレメトリを無効化する
toolkit.telemetry.enabled
を false
に設定するか、設定 > プライバシーとセキュリティ > Firefox のデータ収集と利用について でテレメトリを無効化してください。または、どちらも設定してください。
"Do Not Track" ヘッダを有効化する
privacy.donottrackheader.enabled
を true
に設定するか、設定 > プライバシーとセキュリティ > 強化型トラッキング防止機能 でこの機能をオンにしてください。
'Trusted Recursive Resolver' を無効化/強制する
Firefox 60 では、Trusted Recursive Resolver (TRR) と呼ばれる機能が追加されました。あなたのシステムで設定されている DNS サーバを使わず、代わりに全ての DNS リクエストを HTTPS で Cloudflare サーバに送ります。この機能は劇的に安全性を高めますが ("従来の" DNS リクエストはネットワーク上を平文で送られ、その道中で誰もが覗き見ることができてしまうからです)、TRR サーバを提供する Cloudflare がすべての DNS リクエストを読むことができてしまいます。
- 自分で設定した DNS サーバを Cloudflare のものよりも信頼している場合、
about:config
でnetwork.trr.mode
(整数、このオプションがない場合は作成してください) を5
に設定して TTR を無効化できます。(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 用の他の設定オプションも掲載されています)。
位置情報を無効化する
about:config
で geo.enabled
を false
に設定してください。
'Safe Browsing' サービスを無効化する
Safe Browsing は、フィッシングからの保護とマルウェア検査の機能を提供しますが、ユーザの情報 (例: URL、ファイルハッシュなど) を Google などのサードパーティに送信する場合が有ります。
Safe Browsing サービスを無効化するには、about:config
で以下を設定してください:
browser.safebrowsing.malware.enabled
をfalse
にbrowser.safebrowsing.phishing.enabled
をfalse
に
さらに、browser.safebrowsing.downloads.enabled
を false
に設定してダウンロードの確認を無効化してください。
WebGL を無効化する
WebGL はセキュリティ上のリスクとなりえます。[1] WebGL を無効化したい場合は、about:config
で webgl.disabled
を true
に設定してください。
Encrypted Client Hello
TLS 接続先のサーバ名を盗み聞きされないようにするために Encrypted Client Hello (ECH) (以前は encrypted Server Name Indicator (eSNI) と呼ばれていました) を有効化するには、以下を設定してください:
network.dns.echconfig.enabled
をtrue
にnetwork.dns.http3_echconfig.enabled
をtrue
に
また、network.trr.mode
を 2
か 3
に設定する必要がある場合があります。
拡張
WebAssembly (および JavaScript) を無効にする
Wasm としても知られている WebAssembly は、比較的新しい言語です。JavaScript とは対照的に、 Wasm はブラウザ上で プリコンパイルされたコード をネイティブに実行し、高性能なシミュレーションやアプリケーションを実現します。マルウェアの経路を隠したり、JavaScript と同様に、ユーザーを追跡するために使われることがある という批判を受けています。Tor Browser は JavaScript と Wasmの 両方をブロックします。
Tor Browser のように JavaScript をブロックするには ブラウザ拡張機能#プライバシー の NoScript を参照してください。 Wasm を無効にするには about:config
で設定してください。
javascript.options.wasm
をfalse
javascript.options.wasm_baselinejit
をfalse
javascript.options.wasm_ionjit
をfalse
システム全体の非表示の拡張機能を削除する
一部の拡張機能は非表示になっていて、デフォルトで /usr/lib/firefox/browser/features
にインストールされています。 多くは rm extension-name.xpi
で安全に削除できます。デフォルトでは有効になっていない可能性があり、有効または無効にするためのメニューオプションがある場合があります。削除されたファイルは、firefox パッケージの更新時に返されることに注意してください。これらの拡張機能を削除したままにしておくには、ディレクトリを pacman.conf
の NoExtract=
に追加することを検討してください。Pacman# アップグレードさせないファイルを設定 を参照してください。 一部の拡張機能は次のとおりです。
doh-rollout@mozilla.org.xpi
- DoH ロールアウト (上記の ブラウザ拡張機能#'Trusted RecursiveResolver' を無効化/強制します を選択した場合は削除しないでください)。screenshots@mozilla.org.xpi
- Firefox のスクリーンショット。webcompat-reporter@mozilla.org.xpi
- Firefox で危険にさらされているサイトを報告するために、Mozilla が Firefox を改善したり、webcompat@mozilla.org.xpi
拡張を使って動的にサイトにパッチを適用したりできるようにするためです。- ユーザとシステムを合わせたすべての拡張機能は
about:support
にリストアップされています。システム拡張の完全なリストとその機能を説明する README ファイルについては [2] を参照してください。
/opt
にインストールされたデフォルト リリースなどのパスへの Firefox インストールでは、/firefox/firefox/browser/features
にシステム拡張機能がインストールされています。
Seax での Web 検索
プライバシーは、1つの団体に提供する情報量を減らすことで向上させることができます。たとえば、それぞれの新しいウェブ検索を異なる、ランダムに選ばれたプロキシを通して送ることで、一つのサーチエンジンがあなたのプロファイルを構築することはほぼ不可能になります。これは、Searx の公開インスタンス (またはサイト) を使って行うことができます。Searx は AGPL-3.0、オープンソース のサイトビルダーで、インスタンス として知られるサイトを作成します。公開された各 インスタンス は、あなたと無数の異なる検索エンジンの間の仲介役として機能することができます。
この公開インスタンスのリスト と その他 から、好きなだけ Searx サイトをブックマークしてください (JavaScript が無効になっている場合、リストを読み込むために一時的に有効にする必要があります)。これらのブックマークに素早くアクセスするために、SX1
、SX2
を追加することを検討してください。... この場合、SX(n)
はブックマークする searx のインスタンス数、(n)
はブックマークの Name フィールドに追加してください。
このブックマークの後、sx
、数字、および Enter
を URL バーに入力するだけで、インスタンスが読み込まれます。
Invidious でビデオを見る
Invidious インスタンスは、YouTube の代替フロントエンドとして機能します。それらは、オープンソースコード から構築されたウェブサイトです。コンテンツにアクセスするためにユーザーが YouTube (Google) に送信する情報量を制限することは、一般的に困難でした。
Invidious を使用する利点は次のとおりです。
- スクリプトを実行しなくても動画にアクセスできる。YouTube ではスクリプトの実行を強制されます。
- ビデオは、将来の視聴のため、またはオフラインの場合を含め、他の人が視聴するために保存することができます。これにより、コンテンツがいつ閲覧されたか、または再閲覧されたかについて、Google に送信されるフィードバックが減少します。
- 帯域幅の使用量を削減するオプションのオーディオのみのモード。Tor のようなブラウザと組み合わせると、より軽量なウェブサイトでより少ないデータパケットを使用すると、あなたの匿名性を向上させる可能性があります。
- Invidious は、独立した、プライベート、ビデオホスティングサービスを簡単に設定することができ、フリーでオープンソースのインターフェイスです。このように、Invidious を使用して、独自のコンテンツや YouTube から削除されたコンテンツを提供しているウェブサイトが存在します。そのため、将来的に YouTube のプロフィール作成機能を制限するのに役立つかもしれません(注)
以下のリストから、できるだけ多くの 機能している Invidious インスタンスをブックマークしてください (こちら, こちら, こちら) これらのインスタンスのいくつかは、Cloudflare によってホストされている可能性があることに注意してください。
youtube.com
の部分を使用したいインスタンスのドメインに置き換えるだけで、YouTube 動画の URL を Invidious の URL に変更できます。
エンタープライズポリシー
ネットワークとシステム全体のポリシーは、エンタープライズポリシー を使用して確立することができます。これは、ユーザーの設定プリファレンスを補足し、オーバーライドします。例えば、ベータチャンネルリリースに対するアップデートのチェックを無効にするというユーザー設定は文書化されていません。しかし、回避策として効果的に展開できるエンタープライズポリシーが存在します。単一または複数のポリシーは、以下のように policies.json
を通して管理することができます。
- アプリケーションの更新を無効にする
- ハードウェア アクセラレーションを強制的に有効にする
{ "policies": { "DisableAppUpdate": true, "HardwareAcceleration": true } }
about:support
で Enterprise Policies
が Active
に設定されていることを確認し、about:policies
でリリース固有のポリシーを確認してください。
Sanitized プロファイル
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
を最初にそのような識別子なしで作成し、作業プロファイルに同期する必要があることに注意してください。最も簡単な解決策は、prefs.js
を別の場所にコピーする前に Firefox を閉じることです。
$ cp ~/.mozilla/firefox/example.default-release/prefs.js ~/prefs.sanitized.js
すべての識別文字列と日付コードを 0に設定するか、コピーした prefs.js
からエントリを完全に削除して取り除きます。必要に応じて、Sanitized された prefs.js
を作業プロファイルに同期します。
$ rsync -v ~/.prefs.sanitized.js ~/.mozilla/firefox/example.default-release/prefs.js
これは、フィンガープリント JS API デモ で、Sanitized された prefs.js
と動作する prefs.js
の間の文字列結果を検証することで確認することができます。
拡張子 .json
拡張機能がインストールされていると仮定して、拡張子 .json
ファイルはすべてのプロファイル拡張機能とその設定を一覧表示します。注目すべきは、デフォルトで .mozilla
と extensions
フォルダが存在します、ユーザーのホームディレクトリの場所です。不要なバックグラウンド更新は applyBackgroundUpdates
を適切な 0
値に設定することで無効にすることができます。細かい点では、installDate
と updateDate
があります。[Bubblewrap/Examples#Firefox|Bubblewrap]] はユーザー名とホームディレクトリの場所を効果的に隠すことができ、その時 extensions.json
ファイルはサンドボックス化した HOME
の場所を指すように Sanitized して変更されるかもしれません。
{"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
Mozilla の公式ソースから Firefox を手動でインストールすることを選択した場合は、firefox
ディレクトリの updater
を削除することでアップデータシステムを無効にすることができます。
omni.ja の内容を編集する
/usr/lib/firefox/omni.ja
ファイルには、Firefox で使用されるデフォルトの構成設定のほとんどが含まれています。例として、Firefox 73以降、firefox.settings.services.mozilla.com
および/または content-signature-2.cdn.mozilla.net
へのネットワーク呼び出しをブロックできません。拡張機能を使用するか、設定 URL を "");
に設定します。DNS シンクホールを使用して、解決された IP ブロックをファイアウォールで保護する以外に、1つの解決策として、firefox. settings.services.mozilla.com
および/または cdn.mozilla.net
セキュリティとパフォーマンスの両方の理由から、omni.ja
のサイズを縮小、未使用の辞書やハイフネーションファイルなどの余分なモジュールを削除することもできます。
再圧縮/再圧縮するには、コマンド zip -0DXqr omni.ja *
を使用し、作業ディレクトリが omni.ja
ファイルのルートディレクトリであることを確認します。
user.js テンプレートで強化する
いくつかの活発なプロジェクトは、Firefox のプロファイルディレクトリにドロップできる user.js
設定という形で、Firefox を包括的に強化した設定を維持しています。
- arkenfox/user.js (arkenfox-user.jsAUR)
- pyllyukko/user.js
- ffprofile.com (github) - オンライン user.js ジェネレータです。どの機能を有効にするか、無効にするかを選択し、最終的にあなたのプロファイルのテンプレートが入った ZIP ファイルのダウンロードリンクが得られます。例えば、Mozilla と Google にデータを送信するいくつかの機能を無効にしたり、Mozilla Hello や Pocket の統合のような Firefox のいくつかの迷惑な機能を無効にすることができます。
参照
- Brainfucksec's firefox hardening guide - あなたの Firefox を強化するためのよく整備された Firefox ガイド。
- Privacy Guides - オンラインプライバシーを維持するための、コミュニティが管理するリソース。
- privacytools.io Firefox Privacy Add-ons
- prism-break.org Web Browser Addons
- MozillaWiki:Privacy/Privacy Task Force/firefox about config privacy tweeks - Mozilla が管理する wiki ページで、プライバシー固有の設定について説明しています。
- How to stop Firefox from making automatic connections - 対応する Firefox の機能と、ケースバイケースでそれを無効にする設定の注釈付きリストです。