Chrome系ブラウザに駆逐されてしまいシェアが10%未満にまで落ちたFirefoxですが
唯一Chrome系に勝る点がプライバシー性能の高さです。
Chromeはアドオンを導入しないと設定出来ない項目が多いばかりか、Googleへの情報送信を防ぐ事が困難な仕様になっています。
その点、Firefoxはabout:configで柔軟に設定が可能です。
以下設定を紹介します。
フィンガープリント対策
privacy.resistFingerprinting = true
privacy.trackingprotection.fingerprinting.enabled = true
webgl.disabled = true
trueにすると、閲覧ページのフィンガープリント取得に対して耐性が出来ます。
フィンガープリントはフォント、プラグイン、スクリーン解像度、HTML5 Canvasなど多種多様で、これらをかき集めるとCookieよりも正確に個人を推定出来てしまいます。
またWebGLはプラグインなしに3D 画像やアニメーションのレンダリングを可能するエンジンであり、それが故にフィンガープリントを生じさせてしまいます。
GPUに直接アクセスが可能な脆弱性もあるので無効にしましょう。
▽リークテスト
https://browserleaks.com/canvas HTML5
https://browserleaks.com/fonts フォント
https://browserleaks.com/webgl WebGL
マイニング対策
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
サードパーティ製クッキーを無効にする事で広告のトラッキングが不可能になります。
ブラウザキャッシュ、オフラインキャッシュ無効化
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
コメント