Firefox/プライバシー

提供: ArchWiki
2023年8月4日 (金) 21:28時点におけるAshMyzk (トーク | 投稿記録)による版 (AshMyzk がページ「Firefox プライバシー」を「Firefox/プライバシー」に移動しました: ページ名を英語版と同じに)
ナビゲーションに移動 検索に移動

関連記事

この記事では Firefox ウェブブラウザを使用する際のセキュリティやプライバシーを高めるための設定や拡張を紹介しています。

設定

以下は、ブラウザのフィンガープリント とトラッキングを防ぐためのプライバシーに重点を置いた調整方法です。

Firefox の追跡防止オプションの有効化

Firefox には 追跡防止 のオプションが存在します。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
警告: これは実験的な機能であり、一部の Web サイトが破損する可能性があります。タイムゾーンは UTC0 であり、Web サイトはライトテーマを優先します。テキスト読み上げエンジンが無効になることに注意してください (bug #1636707) 一部の favicons が壊れます (bug #1452391)

詳細については: Firefox's protection against fingerprinting

ブラウザのタイムゾーンの変更

ブラウザフィンガープリントではシステムのタイムゾーンが使われることがあります。Firefox のタイムゾーンを UTC に設定するには:

$ TZ=UTC firefox

もしくは上記のコマンドを実行するスクリプトを設定してください (例: /usr/local/bin/firefox)。

ユーザーエージェントとプラットフォームの変更

Firefox のユーザーエージェントを変更するには、about:config で以下の string キーを追加してください:

general.useragent.override

キーの値がブラウザのユーザーエージェントになります。よくあるユーザーエージェントに設定してください。

ヒント: 例えば Tor ブラウザでは Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0 という当たり障りのない値が使われています。
警告: プラットフォームを変えずにユーザーエージェントだけを変更した場合、ブラウザの識別性が一気に上がるので注意してください。

Firefox のプラットフォームを変更するには、、about:config で以下の string キーを追加してください:

general.platform.override

ユーザーエージェントに対応する一般的なプラットフォームを設定してください。

ヒント: Tor ブラウザではプラットフォームの値に Win32 が使われています。

WebRTC で LAN IP アドレスが判明する

警告: この設定は WebRTC を無効化します。

WebRTC の peer-to-peer (と JavaScript) によってローカル IP アドレスがウェブサイトに取得されてしまうのを防ぐには、about:config を開いて media.peerconnection.enabledfalse に設定してください (もしくは アドオン を使って下さい)。

HTTP リファラーを無効にする

HTTPリファラー 現在要求されているページへのリンクをたどった前の Web ページのアドレスを識別するオプションの HTTP ヘッダーフィールドです。

Set network.http.sendRefererHeader to 0 or 1, depending on your preferences.

ノート: サイトによっては、オリジン条件を制御するために リファラーヘッダーを使用しています。このヘッダーを完全に無効化すると、サイトが壊れる可能性があります。この場合は network.http.referer.XOriginPolicy を調整することでより良い解決策を得られるかもしれません。

接続テストを無効にする

Firefox はデフォルトで、接続をテストするために regular intervals で Amazon や Akamai サーバーへの接続を試行します。例えば、ホテルやレストラン、その他のビジネスでは、インターネットにアクセスするためにパスワードの入力を要求されることがあります。このような キャプティブポータル が存在し、トラフィックをブロックしている場合、この機能は他のすべての接続試行をブロックします。これにより、あなたの使用習慣が漏れる可能性があります。

キャプティブポータルのテストを無効にするには、about:config から:

  • network.captive-portal-service.enabledfalse にします。
ノート: Mozilla VPN を無効にすると接続できなくなるという レポート があります。

テレメトリの無効化

toolkit.telemetry.enabledfalse に設定するか設定→詳細→データの選択から無効にしてください。

Do Not Track Header (DNT) の有効化

ノート: リクエストを受け取ったサイトが実際に追跡を止めるかどうかはユーザーから制御できません。

privacy.donottrackheader.enabledtrue に設定するか、プライバシーの設定から Do Not Track の設定を管理できます。

'Trusted RecursiveResolver' を無効化/強制します

Firefox 60 では、Trusted Recursive Resolver (TRR) という機能が導入されました。システムに構成されている DNS サーバーを回避し、代わりにすべての DNS リクエストを HTTPS 経由で Cloudflare サーバーに送信します。これは非常に安全ですが(クラシック DNS リクエストはネットワーク経由でプレーンテキストで送信され、途中で誰もがこれらを snoop できるため)、これによりすべての DNS リクエストが Cloudflare で読み取り可能になる為、TRR サーバーが提供されます。

  • Cloudflare よりも自分で構成した DNS サーバーを信頼する場合は、 network.trr.mode を設定することで about:config で TRR を無効にできます(整数を指定、ない場合は作成します 0) から 5 へ (値0はデフォルトで無効になっていることを意味し、将来の更新によって上書きされる可能性があります。値5は選択によって無効になり、上書きされません。)
  • Cloudflare DNS サーバーを信頼し、追加のプライバシーを希望する場合(暗号化された DNS 要求のおかげで)、network.trr.mode3 に設定することでTRRを適用できます (これにより、クラシックが完全に無効になります DNS リクエスト)または 2 (デフォルトで TRR を使用し、失敗した場合は従来の DNS リクエストにフォールバックします)。イントラネット Web サイトを使用している場合、またはローカルネットワーク内のコンピューターにホスト名でアクセスしようとしている場合、 TRR を有効にすると、名前の解決が失敗する可能性があることに注意してください。
  • DNS リクエストを暗号化するが、Cloudflare サーバーを使用しない場合は、リゾルバー URL に network.trr.uri を設定することで、 HTTPS サーバーを介した新しい DNS を指定すことができます。現在利用可能なリゾルバーのリストは、 curl wiki と、 TRR の他の構成オプションにあります。

Geolocation の無効化

about:configgeo.enabledfalse に設定してください。

セーフブラウジングサービスの無効化

セーフブラウジングはフィッシングからの保護やマルウェアのチェックを提供しますが、Google などのサードパーティにユーザー情報を送信することがあります (URL やファイルのハッシュなど)。

セーフブラウジングを無効化するには、about:config で以下を設定:

  • browser.safebrowsing.malware.enabledfalse に設定
  • browser.safebrowsing.phishing.enabledfalse に設定

さらにダウンロードしたファイルのチェックを無効化するには、browser.safebrowsing.downloads.enabledfalse に設定してください。

WebGL の無効化

WebGL は セキュリティ上のリスク となりえます。無効化したい場合は about:config から webgl.disabledtrue にしてください。

拡張

参照 ブラウザ拡張機能#プライバシー

WebAssembly (および JavaScript) を無効にする

Wasm としても知られている WebAssembly は、比較的新しい言語です。JavaScript とは対照的に、 Wasm はブラウザ上で プリコンパイルされたコード をネイティブに実行し、高性能なシミュレーションやアプリケーションを実現します。マルウェアの経路を隠したり、JavaScript と同様に、ユーザーを追跡するために使われることがある という批判を受けています。Tor Browser は JavaScript と Wasmの 両方をブロックします。

Tor Browser のように JavaScript をブロックするには ブラウザ拡張機能#プライバシーNoScript を参照してください。 Wasm を無効にするには about:config で設定してください。

  • javascript.options.wasmfalse
  • javascript.options.wasm_baselinejitfalse
  • javascript.options.wasm_ionjitfalse

システム全体の非表示の拡張機能を削除する

一部の拡張機能は非表示になっていて、デフォルトで /usr/lib/firefox/browser/features にインストールされています。 多くは rm extension-name.xpi で安全に削除できます。デフォルトでは有効になっていない可能性があり、有効または無効にするためのメニューオプションがある場合があります。削除されたファイルは、firefox パッケージの更新時に返されることに注意してください。これらの拡張機能を削除したままにしておくには、ディレクトリを pacman.confNoExtract= に追加することを検討してください。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 ファイルについては [1] を参照してください。

/opt にインストールされたデフォルト リリースなどのパスへの Firefox インストールでは、/firefox/firefox/browser/features にシステム拡張機能がインストールされています。

Seax での Web 検索

プライバシーは、1つの団体に提供する情報量を減らすことで向上させることができます。たとえば、それぞれの新しいウェブ検索を異なる、ランダムに選ばれたプロキシを通して送ることで、一つのサーチエンジンがあなたのプロファイルを構築することはほぼ不可能になります。これは、Searx の公開インスタンス (またはサイト) を使って行うことができます。Searx は AGPL-3.0オープンソース のサイトビルダーで、インスタンス として知られるサイトを作成します。公開された各 インスタンス は、あなたと無数の異なる検索エンジンの間の仲介役として機能することができます。

この公開インスタンスのリストその他 から、好きなだけ Searx サイトをブックマークしてください (JavaScript が無効になっている場合、リストを読み込むために一時的に有効にする必要があります)。これらのブックマークに素早くアクセスするために、SX1SX2 を追加することを検討してください。... この場合、SX(n) はブックマークする searx のインスタンス数、(n) はブックマークの Name フィールドに追加してください。

このブックマークの後、sx、数字、および Enter を URL バーに入力するだけで、インスタンスが読み込まれます。

ノート: 上記のブックマークを時々更新するか、インスタンスが信頼できなくなったときに更新して、オンラインフィンガープリントを減らします。
ヒント:
  • ウェブサーバーと利用可能な帯域幅がある場合、他の人のプライバシーを改善するために公開 Searx インスタンスを実行することを検討してください (より詳しい情報)
  • Searx インスタンスと Tor Browser を併用することで、さらにプライバシーを向上させることができます。
  • ローカルで Searx のプライベートインスタンスを実行することにより、さらにプライバシーを向上させることができます。searxAUR パッケージを インストール して、uwsgi@searx.service起動 します。Searx は http://localhost:8888/ で利用できるようになります。

Invidious でビデオを見る

Invidious インスタンスは、YouTube の代替フロントエンドとして機能します。それらは、オープンソースコード から構築されたウェブサイトです。コンテンツにアクセスするためにユーザーが YouTube (Google) に送信する情報量を制限することは、一般的に困難でした。

Invidious を使用する利点は次のとおりです。

  • スクリプトを実行しなくても動画にアクセスできる。YouTube ではスクリプトの実行を強制されます。
  • ビデオは、将来の視聴のため、またはオフラインの場合を含め、他の人が視聴するために保存することができます。これにより、コンテンツがいつ閲覧されたか、または再閲覧されたかについて、Google に送信されるフィードバックが減少します。
  • 帯域幅の使用量を削減するオプションのオーディオのみのモード。Tor のようなブラウザと組み合わせると、より軽量なウェブサイトでより少ないデータパケットを使用すると、あなたの匿名性を向上させる可能性があります。
  • Invidious は、独立した、プライベート、ビデオホスティングサービスを簡単に設定することができ、フリーでオープンソースのインターフェイスです。このように、Invidious を使用して、独自のコンテンツや YouTube から削除されたコンテンツを提供しているウェブサイトが存在します。そのため、将来的に YouTube のプロフィール作成機能を制限するのに役立つかもしれません(注)

以下のリストから、できるだけ多くの 機能している Invidious インスタンスをブックマークしてください (こちら, こちら, こちら) これらのインスタンスのいくつかは、Cloudflare によってホストされている可能性があることに注意してください。

youtube.com の部分を使用したいインスタンスのドメインに置き換えるだけで、YouTube 動画の URL を Invidious の URL に変更できます。

ノート: Invidious は、Facebook または Cloudflare サーバーからの動画をインデックスに登録しません。さらに、コンテンツは通常、引き続き Google サーバーからユーザーに送信されます。追加のプライバシーについては、Tor Browser を参照してください。

エンタープライズポリシー

ネットワークとシステム全体のポリシーは、エンタープライズポリシー を使用して確立することができます。これは、ユーザーの設定プリファレンスを補足し、オーバーライドします。例えば、ベータチャンネルリリースに対するアップデートのチェックを無効にするというユーザー設定は文書化されていません。しかし、回避策として効果的に展開できるエンタープライズポリシーが存在します。単一または複数のポリシーは、以下のように policies.json を通して管理することができます。

  • アプリケーションの更新を無効にする
  • ハードウェア アクセラレーションを強制的に有効にする
{
 "policies": {
  "DisableAppUpdate": true,
  "HardwareAcceleration": true
 }
}

about:supportEnterprise PoliciesActive に設定されていることを確認し、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
ノート: 必要な識別子と日付コードのエントリおよび/または文字列は、Firefox の次回の起動時に自動的に再入力され、新しい値にリセットされます

これは、フィンガープリント JS API デモ で、Sanitized された prefs.js と動作する prefs.js の間の文字列結果を検証することで確認することができます。

拡張子 .json

拡張機能がインストールされていると仮定して、拡張子 .json ファイルはすべてのプロファイル拡張機能とその設定を一覧表示します。注目すべきは、デフォルトで .mozillaextensions フォルダが存在します、ユーザーのホームディレクトリの場所です。不要なバックグラウンド更新は applyBackgroundUpdates を適切な 0 値に設定することで無効にすることができます。細かい点では、installDateupdateDate があります。[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.lz4search.json.mozlz4 からも同様のメタデータを削除することが可能です。mozlz4 は、Mozilla (非標準) の LZ4 ファイルの圧縮/解凍をサポートするコマンドラインツールです。

サブシステムの削除

クラッシュ レポート に関連するテレメトリは、以下を削除することで無効にすることができます:

/usr/lib/firefox/crashreporter
/usr/lib/firefox/minidump-analyzer
/usr/lib/firefox/pingsender

Mozilla の公式ソースから Firefox を手動でインストールすることを選択した場合は、firefox ディレクトリの updater を削除することでアップデータシステムを無効にすることができます。

omni.ja の内容を編集する

ノート: omni.ja の内容を変更した結果、一部の機能が阻害されたり失われたりする可能性があります。さらに、Firefox のリリースごとに更新/上書きされます。プライバシーを得ることが、期待される使い勝手を失うことに見合うかどうかは、利用者の判断に委ねられます。

/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 のいくつかの迷惑な機能を無効にすることができます。

参照