広告ブロックの進化のための手続き型コスメティックフィルター
バージョン1.73より、Braveはページ要素の手続き型コスメティックフィルターのサポートを追加することで、広告ブロック機能を大幅に改善します。
この記事を読む →Braveプライバシーチーム寄稿
この記事は、Braveの新しいプライバシー機能や今後実装予定のプライバシー機能について説明する継続的なシリーズの17回目の記事です。この記事は、シニアソフトウェアエンジニアのMark Pilgrimが、プリンシパルエンジニアのBrian Johnsonと共に行った作業について紹介します。この投稿は、プライバシーディレクターのPeter Snyderが執筆したものの日本語訳です。
Braveは、フィンガープリントに対する保護をさらに強化するため、ブラウザで使用する言語設定によってユーザーが特定されることを防ぐ機能を実装します。バージョン1.39から、Braveは、あなたがデフォルトに設定した言語と、システムにインストールされているフォントを、ブラウザからサイトに通知する方法をランダム化します。これは、それ以前からポピュラーなブラウザの中でも最も強力な保護機能を持つBraveの、既存のフィンガープリント保護機能をさらに増強するものです。
あなたがWebサイトを閲覧するとき、ブラウザはあなたのデフォルト言語をサイトに通知します。これにより、サイトがあなたの言語でコンテンツを表示することができるのです。ブラウザは、明示的な方法(例えば、Accept-Language
ヘッダや、navigator.language
、navigator.languages
Web APIなど)、あるいは暗黙的な方法(例えば、あなたのシステムにインストールされているフォントから)から、言語の確認を行います。
しかし、多くのインターネットサイトがそうであるように、ユーザー体験を向上させるための機能により、しばしばユーザーが更なる危険に晒されるときもあります。トラッカーは、(暗黙的および明示的な)あなたの言語設定を利用して、サイトやブラウジングセッション全体であなたを特定し、フィンガープリントを採取することができるのです。
Brave独自の「ファーブル」機能は、すでに一般的なブラウザの中で最も優れたフィンガープリント保護機能を提供しています。これは、ブラウザの機能を識別する箇所に少しのランダム化を追加し、サイトを破壊しないままトラッカーを混乱させ、機能不全にします。
今回の最新リリースで、Braveは「ファーブル」の保護機能が言語設定にも適用されるよう機能を拡張しました。
Accept-Language
HTTPヘッダーは、あなたの使用する言語をWebサイトに伝えます。コンピューターやブラウザで複数の言語を選択できるように設定している場合、このヘッダは通常、選択した順番にすべての言語を伝えます。また、ブラウザはそれぞれの優先順位に重みを付けており、ある言語を他の言語よりどの程度好むか、重み付けをします。
例えば、「Webサイトを英語で読みたいが、英語評価がないならスペイン語でも構わない」と設定している場合、ブラウザはそれをヘッダで次のように表現することがあります。
Accept-Language: en;q=.7,es;q=.5
この情報は、ブラウザがWeb上で行うすべてのリクエストとともに送信されます。ブラウザは、navigator.language
とnavigator.languages
プロパティを通じて、ページ上で実行されているJavaScriptに同様の情報を公開します。
ブラウザ言語フィンガープリントに対するこれらの新しい保護機能により、BraveはこれらのAPIで利用可能な情報を減らし、ランダム化するようになりました。そして、Brave Shieldsを介して、これらをデフォルトの保護機能として組み込みました。
デフォルトでは、Braveはあなたが最も好む言語のみをサイトに連携します。つまり、あなたの言語設定が「英語(米国)」が最上位で、「韓国語」が2番目の場合、ブラウザは「en-US,en
」のみを報告します。1また、Braveは報告される重みを一定の範囲内でランダムに変更します。
フィンガープリントのブロックが厳格に設定されている場合、Braveは代わりに常に言語設定を「英語」としてサイト側に報告し、利用可能な最大の匿名性セット2を確保します。そしてここでも、Braveは報告された重みを一定の範囲内でランダム化します。
一般に、フォントは次の3つのカテゴリーに分けられます。
Webフォント:Webサイトが持っている、そのWebサイトで使用するためのフォント。ユーザーから提供されたものではないため、Webフォントはフィンガープリントの方法として有用ではありません。
OSフォント: オペレーティングシステムによってインストールされ、そのオペレーティングシステムのすべてのユーザーに共通するフォント。(ユーザーエージェント文字列、JS APIなどにより)トラッカーはあなたが使用しているOSを知ることができるので、これらのフォントを公開しても、通常はプライバシーには影響しません(ただし、異なる言語用に複数のフォントセットをインストールすると、フィンガープリントとして用いられる可能性が高くなります)。
ユーザーフォント:ユーザーが直接(例:Webサイトからフォントをダウンロード、インストール)または間接的に(例:officeスイート、プレゼンテーション編集ツール、画像編集ソフトウェアなど、コンピューター上の他のソフトウェアがフォントをインストール)インストールした追加フォント。これらは、フィンガープリントに最も使用されやすいです。
また、トラッカーは、一般的でないフォントや、一般的でない組み合わせのフォントをチェックすることで、ユーザーを識別します。これらの特徴的なフォントは、ユーザーが直接インストールしたもの、またはオペレーティング・システムがインストールしたもので、言語の好みによってインストールされている可能性があります。
例えば、あなたがヘブライ語とマレーシア語を好む場合、Windowsはそれらの言語を追加フォントとしてインストールします。トラッカーは、これらのデータポイントを利用して、あなたを特定することができます。なぜなら、そのようなフォントの組み合わせを持つWebユーザーは、とても少ないからです。
現在、BraveはAndroid、macOS、Windows版でフォントフィンガープリントプロテクションを適用しています。BraveがiOSバージョンにこれらの保護を適用しない理由は2つあります。プラットフォームの制限により適用できないことと、WKWebViewには、それほど強力ではないものの、同様の保護がすでに含まれているためです3。また、BraveがLinuxでこれらの保護を適用しないのは、各ディストリビューションでどのフォントが「OSフォント」であるかを判断するのが困難なためです。
なお、言語設定とは無関係な理由で、一般的でないフォントがインストールされていることもあります。たとえば、一部のソフトウェアパッケージ(officeスイート、スライドや写真の編集ツールなど)は、システムに追加のフォントを追加します。また、自分でフォントを追加してインストールする場合もあります。
デフォルトおよびアグレッシブのShields設定で、BraveはWebサイトに対して現在のトップ言語設定に関するすべてのWebフォントと、OSフォントへのアクセスを許可し、加えてランダムに選択された(すなわちファーブルな)ユーザーフォントセットにアクセスすることを許可します。Braveのすべてのフィンガープリントランダム化保護と同様に、ページがアクセスできるユーザーフォントのセットは、各サイトおよび各ブラウザセッションに対してランダムに決定されます。
私たちは、これらの保護が多くのユーザーの役に立つと期待していますが、一部のユーザーは、自分の言語設定についてより詳細な情報をサイトと共有する必要があることも理解しています。たとえば、標準的なオペレーティング・システムのフォントが十分にサポートされていない言語を使用している場合、Webを閲覧するためにユーザーがインストールした追加のフォントに依存する言語コミュニティに参加している場合などです。
このような場合、プライバシーへのリスクよりも追加の言語設定をWebサイトと共有することの利点が大きいときがあります。このようなユーザーをサポートし、誰もが安全でプライベートなブラウジングのためにBraveを使用できるようにするために、私たちは次のような措置も講じています。
ユーザーコントロールの強化:Braveユーザーは、自分の言語設定に関するより多くの情報をWebサイトと共有したい場合、簡単に設定することができます。 brave://settings/shields
にアクセスして、”言語設定に関わる保護機能の軽減” という項目を無効にすることで、フォント/言語に関わる保護機能を無効にすることができます。
柔軟性:Braveは、これらの新しい保護機能のロールアウトを監視し、まずNightly、次にBeta、そして最終的に安定バージョンのユーザーに適用します。サイトにおける互換性の問題が判明した場合、Braveの保護機能がサイトを破壊しないように、これらの機能を調整するかもしれません。
Braveは一般的なブラウザの中で最も強力なプライバシー保護機能を備えていますが、他のブラウザもユーザーのプライバシーを保護するために重要で賞賛に値する措置を講じています。以下は、他のブラウザが言語ターゲティングフィンガープリントに対して提供している保護機能の簡単な概要です。
Safari: Braveに最も近いプロテクションを提供しています。Safariは、Accept-Language
とnavigator.languages
でユーザーの最優先言語のみをWebサイトに送信し、サイト側からはユーザーの現在の言語設定に対してOSが提供するフォントのみアクセスすることを許可します。BraveとSafariの主な違いは、Braveはトラッカーをさらに混乱させるためにデータソースをわずかにランダム化することと、Braveにはこれらの保護を無効にする機能が含まれていることです。
Firefox: ブラウザの言語フィンガープリントに対するいくつかの保護機能を提供しますが、これらはデフォルトで無効になっています。Firefoxのレジストフィンガープリント機能を有効にすると、Firefoxは同様にWebサイト側からアクセスできるフォントを制限します。
Chrome 及び Edge: ブラウザの言語フィンガープリントに対する保護は提供していません。ただし、両者ともプライバシー予算案の一部として、そのようなフィンガープリントの取り組みを含めることを検討しています(この提案については、Braveは重大な懸念を抱いています)。
バージョン1.73より、Braveはページ要素の手続き型コスメティックフィルターのサポートを追加することで、広告ブロック機能を大幅に改善します。
この記事を読む →iOSバージョン1.71より、Braveはユーザーの訪問を特定するブラウザデータを素早く削除する Shred(シュレッド) という新機能を搭載します。
この記事を読む →バージョン1.68から、BraveはiOSとして最初の、すべてのサイトをデフォルトでHTTPSにアップグレードするWebブラウザになります。
この記事を読む →