Firefoxのプライバシー設定を限界まで高める





メモリ占有、タブクラッシュ頻発、アドオン廃止が数億のユーザーを篩にかけた結果、今やシェアをSafariやEdge以下にまで落としてしまったFirefox。



しかし、Chrome系に勝る唯一の点がプライバシー性能の高さです。
Chromeはアドオンを導入しないと設定出来ない項目が多いばかりか、Googleへの情報送信を防ぐ事も困難な仕様になっています。
その点、Firefoxはabout:configで柔軟に設定が可能です。
以下紹介して行きたいと思います。
(Googleのブログで言うのもおかしいですが)





フィンガープリント対策

privacy.resistFingerprinting = true
privacy.trackingprotection.fingerprinting.enabled = true
webgl.disabled = true
trueにすると、閲覧ページのフィンガープリント取得に対して耐性が出来ます。
フィンガープリントはフォント、プラグイン、スクリーン解像度、HTML5 Canvasなど多種多様で、これらをかき集めるとCookieよりも正確に個人を推定出来てしまいます。
またWebGLはプラグインなしに3D 画像やアニメーションのレンダリングを可能するエンジンであり、それが故にフィンガープリントを生じさせてしまいます。
GPUに直接アクセスが可能な脆弱性もあるので無効にしましょう。


▽リークテスト


マイニング対策

privacy.trackingprotection.cryptomining.enabled = true
暗号通貨マイニングを無効にできます。



トラッキング保護

privacy.trackingprotection.enabled = true



Cookieのファーストパーティドメイン分離

privacy.firstparty.isolate = true
trueに変更すると、クッキー等へのアクセスをドメインレベルに制限する為
広告のトラッキングを防ぐ事が可能になります。


クッキーの有効期限

network.cookie.lifetimePolicy = 2
いつクッキーが削除されるかを設定します。
0 通常(サーバー側指定による有効期限)
1 クッキーごとに確認
2 セッション終了時まで
3 指定日数存続する (network.cookie.lifetime.daysにて設定)



サードパーティのクッキーを無効に

network.cookie.cookieBehavior = 2
サードパーティ製クッキーを無効にする事で広告のトラッキングが不可能になります。

ちなみにGoogleはChromeにてサードパーティ製Cookieを2023年に廃止すると発表しています。
そしてTopicsAPIというサードパーティCookieに頼らない追従広告システムを開発中です。

▽詳細

閲覧者のプライバシーは守られ広告主の事業にも影響が出ない形になるのは良い事だと思います。
よりGoogleに情報が集中するだけかもしれませんが






ブラウザキャッシュ、オフラインキャッシュ無効化

browser.cache.disk.enable = false
browser.cache.offline.enable = false
browser.cache.disk.capacity = 0
browser.cache.offline.capacity = 0


メモリにキャッシュするページ数を0に

browser.sessionhistory.max_total_viewers = 0



HTTPリクエストのキャッシュを無効化

network.http.use-cache = false



DOMストレージ無効化

dom.storage.enabled = false

DOMストレージ(Webストレージ)はブラウザがサイト情報をローカルに保存する仕組みです。
セッション情報やユーザーID、個人情報が保存されるが故にスクリプトインジェクションの餌食になります。
Cookieよりも危険になりうるから無効にしろとの提言が散見されますが、正常に作動しなくなるサイトが多いので厄介です。



セッション復元時の追加情報保存を無効化

追加情報とはフォーム内容、スクロールバーの位置、Cookie、POSTデータ等を指します。無効にしましょう。

browser.sessionstore.privacy_level = 2
0・・・保存する(デフォルト)
1・・・暗号化されていないサイトのみ保存
2・・・保存しない




位置情報の追跡拒否

geo.enabled = false
これをfalseに設定すると、位置情報の追跡が無効になります。



WebRTC無効化

WebRTCはWeb会議の為の技術で、大容量の映像・音声データをP2P通信でやりとりする際に用いられています。
その性質上、設定がtrueになっているとVPNを挿していようが生IPが漏れます。

media.navigator.enabled = false
この設定をfalseに設定すると、Webサイトがデバイスのマイクとカメラのステータスを追跡できなくなります。
media.peerconnection.enabled = false
ファイル共有やビデオ通話のP2P通信に使われています。

基本的に上記をfalseにすれば問題無いのですが、
何かの拍子にmedia.peerconnection.enabledがtureになった場合に備えて
以下の設定をするように推奨している事が多いです。

media.peerconnection.turn.disable = true
media.peerconnection.use_document_iceservers = false
media.peerconnection.video.enabled = false
media.peerconnection.video.vp9_enabled = false
media.peerconnection.video.h264_enabled = false
media.peerconnection.identity.enabled = false
media.peerconnection.identity.timeout = 1
https://browserleaks.com/webrtc WebRTCリークテスト
※ちなみにChrome系は上記リークテスト項目の「Media Devices」の漏出を防ぎ切れません。お試し下さい。


プリフェッチ無効

network.dns.disablePrefetch = true
network.prefetch-next = false
devtools.cache.disabled = true

プリフェッチはアクセスするかもしれないページを先読みしてブラウジング速度を高める機能ですが、不要なトラフィックが発生してしまいます。 
無効にしましょう。 



クリップボード通知

dom.event.clipboardevents.enabled = false

Webサイトから何かをコピー・貼り付けた際にWebサイトへ通知しない様に設定
ただFacebook等のSNS関係で支障が出る場合あり。



JavaScript無効

javascript.enabled = false
JavaScriptを無効にする事でWebRTCやフィンガープリント等のあらゆる問題が解決しますが、ほぼ確実にWebサイトが正常に閲覧出来なくなります。
余りにも根本的過ぎるので、完全無効化に躊躇するならNoscriptを導入してサイトによって使い分けるしかないですね。



Googleへの情報送信を阻止

browser.safebrowsing.enabled = false
browser.safebrowsing.downloads.enabled = false
browser.safebrowsing.malware.enabled = false
browser.safebrowsing.phishing.enabled = false
services.sync.prefs.sync.browser.safebrowsing.enabled = false
services.sync.prefs.sync.browser.safebrowsing.malware.enabled = false
さらに厳格に送信を防ぐ場合はURL記述すら消します。
browser.safebrowsing.appRepURL = (Blank)
browser.safebrowsing.gethashURL = (Blank)
browser.safebrowsing.malware.reportURL = (Blank)
browser.safebrowsing.reportErrorURL = (Blank)
browser.safebrowsing.reportGenericURL = (Blank)
browser.safebrowsing.reportMalwareErrorURL = (Blank)
browser.safebrowsing.reportMalwareURL = (Blank)
browser.safebrowsing.reportPhishURL = (Blank)
browser.safebrowsing.reportURL = (Blank)
browser.safebrowsing.updateURL = (Blank)

セーフブラウジングはDLファイル・マルウェア・フィッシング検証の為にURLをGoogleへ送信します。
無効にする事でそれらの機能を使えなくなりますが、about:configを弄る層はそんなものには引っかからないと思うので大丈夫だと判断します。



リファラー無効化

リファラーヘッダーが有効だと自分がどのページからやって来たかバレてしまいます。
ただ無効化するとサイト閲覧に影響が出る場合が多々ありますので、
それぞれ実験してみる程度で良いと思います。

network.http.sendRefererHeader = 0
0・・・送信なし
1・・・クリックした場合のみ送信
2・・・全てのリクエストで送信(デフォルト)

network.http.sendSecureXsiteReferrer = false
falseにするとHTTPSサイトから別のHTTPSサイトへ移動する際にリファラーヘッダーを送信をしなくなります。

network.http.referer.XOriginPolicy = 2
オリジン間でリファラーを送信するか否かです。
0・・・全ての場合に送信(デフォルト)
1・・・ベースドメインが同じ場合のみ
2・・・同じホストでのみ

network.http.referer.spoofSource = true
trueにするとアクセス先のURLをリファラーとして送信します。

network.http.referer.trimmingPolicy = 2
0・・・完全なURLを送信(デフォルト)
1・・・URLパラメーターなしのURLを送信する
2・・・オリジンのみ送信

送信するリファラーを制限します。



DNS漏れ対策

network.proxy.socks_remote_dns = true
DNS接続をSocks5経由でやるか否かです。
基本的にプロキシ自体を使わないとは思いますが一応trueにしておきましょう。

network.dns.disableIPv6 = true
IPv6によるDNS接続を無効にしましょう。
そもそもIPv6自体がプライバシーに逆行する存在なのでOFFにしましょう。
一説によると高速ブラウジングが期待出来るらしいのですが、ウスノロなFirefoxを使う時点で無意味です。



クラッシュレポートの送信拒否

breakpad.reportURL = (Blank)
URLを空にすれば送信しようが無くなります。



分析データの送信拒否

beacon.enable = false



その他、良さそうな項目があれば随時追加していきます。





コメントを投稿