広告ブロックの進化のための手続き型コスメティックフィルター
バージョン1.73より、Braveはページ要素の手続き型コスメティックフィルターのサポートを追加することで、広告ブロック機能を大幅に改善します。
この記事を読む →Braveプライバシーチーム寄稿
この記事は、Braveに搭載された新しいプライバシー機能について説明する、継続的かつ定期的なシリーズの14回目の投稿です。今回は、ソフトウェアエンジニアのAleksey KhoroshilovとシニアソフトウェアエンジニアのIvan Efremovによる対応を解説したものです。また、この投稿で説明されているネットワーク状態のパーティショニング機能に関して多大な貢献をしてくれた多くのChromiumチームのメンバーに感謝します。この投稿は、BraveのプライバシーディレクターであるPeter Snyderが執筆したものの日本語訳です。
Braveにネットワーク状態のパーティショニング機能が追加され、Braveユーザをより広範囲なオンライントラッキング技術から保護します。Braveはすでに、一般的なブラウザの中で最も積極的なDOMストレージのパーティショニングの方策を備えています(Braveユーザは、一般的な形態のオンライントラッキングから強力に保護されます)。そしてBraveは、標準的なものよりもさらに強力なトラッキングに対しても同等の保護を提供し、Braveユーザが優れたプライバシー保護機能に守られていることをより確かなものにします。これらの新機能は、Braveのその他の多くの強力で斬新な保護機能をベースとしており、Braveユーザが、最も堅牢かつ包括的なプライバシー保護の恩恵を受けられることを保証しています。
私たちは、Chromiumチームがネットワーク状態のパーティショニング機能を構築してきたことを評価し、感謝したいと思います1。Braveのプライバシー保護のほとんどは、Chromiumで利用可能なものではなく、自分たちでプライバシー機能を開発していますが、この投稿で説明する機能のいくつかは、Chromiumで利用可能なものです。Chromiumエンジニアはすでに膨大な量の作業を行い、ネットワーク状態のパーティショニング機能をChromiumに組み込んでいます。しかし、この機能はほとんどのChromiumベースのブラウザでは存在こそするものの、有効にはなっていません。Braveのエンジニアは、これらのパーティショニング機能のテスト、デプロイ、および拡張に多大な労力を費やしてきましたが、私たちはChromiumチームがすでに行ったプライバシー向上のための作業に注目し、感謝の意を表したいと思います。
「パーティショニング」という言葉はWebブラウジングにおいて使われる場合は、Web上のプライバシーを向上させるための技術の一つを指します。「オンライントラッキング」とは、企業がウェブ上であなたを追跡し、異なるサイト間でのあなたの行動を結びつけて、あなた自身やあなたの興味についてのプロファイルを作成しようとすることを指します。「パーティショニング」は、各サイトを独立した別々のエリアに置くことで、あるサイトでの行動が他のサイトでの行動にリンクされることを防ぎ、オンライントラッキングを防御するものです。
パーティショニングに基づく防御は、(基本的に)本来のページ動作を壊すことなく、強力なプライバシー保護を提供できる点が魅力的です。パーティショニングによる防御が成功すれば、ブラウザは、トラッカーにあなたを特定されたり、サイトを横断して追跡されたりすることなく、オンライントラッカーからのコードやリソースを読み込むことができるようになります。
具体的な例を挙げると、パーティショニングの防御により、cnn.comでFacebookウィジェットをロードし、foxnews.comで同じFacebookウィジェットをロードしても、同じブラウザがCNNとFox Newsの両方を訪問したことをFacebookに知られないようにすることができます。あるサイトで起こったことは、そのサイトの中に留まるのです。パーティショニングが成功すると、サイト(およびそのサイト上で動作するサードパーティ)は、あなたがそのサイトで行ったことを知ることができますが、あなたがウェブ上の他の場所で行ったことを知ることはできません。
パーティショニングの手法は、汎用的でプラットフォームに依存しないことが魅力的です。これは、良いコードと悪いコードを識別し、悪いコードの実行を阻止しようとする手法の広告ブロッカースタイルのフィルタリストなどの一般的なアプローチとは異なるものです。「悪い」コードを区別するのはとても便利な手法ではあるのですが、同時にリスクもあります。どのコードが「悪い」のかを特定するのは非常に難しく、「悪い」コードをブロックするとWebサイトが壊れてしまうなど、さまざまな問題が発生することがあるのです。パーティショニングのようなプラットフォームワイドなアプローチは(Braveのフィンガープリントランダム化技術もそれと同様ですが)「良い」「悪い」を問わず、Web上のあらゆるものに対して同じ保護を提供するため、多くの困難を回避することができます。2
オンライントラッキングによく使われるブラウザの機能に関して、Braveはポピュラーなブラウザの中でも最も積極的かつ保護されたパーティショニング機能を採用しています。ほとんどのオンライントラッカーは、クッキー、localStorage、その他のアプリケーションレベルのAPIなどのサードパーティのDOMストレージを使用して、Web上でのあなたを特定します。
Braveは、ephemeral third-party site storageという独自のストレージパーティショニングシステムにより、ほとんどのオンライントラッキングからユーザーを保護します。他のプライバシー重視のブラウザと同様、Braveはサードパーティストレージをパーティション分割し、トラッカーがウェブ上であなたを追跡するのを防ぎます。しかし、他のブラウザとは異なり、Braveは、サイトの使用を終了すると、トラッカーがブラウザにセットしたデータを自動的に削除します。それは、そのデータがパーティションされていたとしてもです。これによりBraveユーザはさらに、特定の攻撃者3や、ファーストパーティーとサードパーティーとの間の意図しないデータ共有4などの脅威から、保護されます。
Browser | Partitions Third-Party Storage? | When is Storage Cleared? |
---|---|---|
Brave | Yes | When each site is closed. |
Chrome | No | Never |
Edge | No | Never |
Firefox | Yes | Never 5 |
Safari | Yes | When the browser is closed. |
Tor Browser | Yes | When the browser is closed. |
上の表は、現在の一般的なブラウザにおけるDOMストレージのパーティショニングの状態をまとめたものです。次のセクションでは、Braveの新しいパーティショニング機能と、一般的ではない、より洗練された形のトラッキングからユーザーを保護する方法を紹介します。
Brave 1.33 | |
---|---|
State Partitioning Tests | |
Alt-Svc | ✅ |
Blob | ❌ |
BrodcastChannel | ✅ |
CacheStorage | ✅ |
cookie | ✅ |
CSS cache | ✅ |
favicon cache | ✅ |
fetch cache | ✅ |
font cache | ✅ |
H1 connection | ✅ |
H2 connection | ✅ |
H3 connection | ✅ |
HSTS cache | ❌ |
iframe cache | ✅ |
image cache | ✅ |
indexedDB | ✅ |
localStorage | ✅ |
locks | ✅ |
prefetch cache | ✅ |
ServiceWorker | ✅ |
SharedWorker | ✅ |
TLS Session ID | ✅ |
Web SQL Database | ✅ |
XMLHttpRequest cache | ✅ |
Brave既存の斬新でアグレッシブなDOMストレージパーティショニング機能に加えて、Braveはさらに広範囲のストレージとトラッキングメカニズムをパーティショニングするようになりました。トラッカーは主に従来のストレージAPIを使用してユーザーを追跡しますが、その理由はこれらのAPIが簡単に使用できることや、最も人気のあるブラウザ(ChromeとEdge)がこれらの一般的な追跡技術に対して大きな保護を提供しないことが理由として挙げられます。
しかし、高度なトラッカーは、DOMストレージパーティショニングの保護を回避するために、別のトラッキング手法に移行しつつあります。これに対し、私たちBraveは(他のプライバシー重視のブラウザの関係者とともに)より強固なパーティショニング機能を展開することで、トラッカーに対応しています。
2022年初頭にリリースされるブラウザから、Braveはブラウザ内の別のストレージメカニズムに対してパーティショニングする予定です。これは広義には「ネットワーク状態」と呼ばれるものです。これまでのパーティショニング機能は、Webサイトが識別子の設定を含むユーザのアプリケーションレベルの状態をセットするために使用される API を対象としていました。これらの新しいパーティショニング機能は、さらに広い範囲のブラウザ機能に適用され、Web API や関連するブラウザ標準機能が意図しない使われ方をされ、サイトがWeb上のユーザを追跡しようとするケースをもカバーしています。
Braveのネットワーク状態のパーティショニングは、a) Chromiumで利用可能な機能(ただし、ほとんどのChromeおよびEdgeユーザーは無効になっている)、およびb) Braveで開発した新しいパーティショニング機能の組み合わせであり、他のChromiumブラウザに貢献するため、上流の機能とするべく作業をしています。
パーティショニングに基づくブラウザ機能のあり方に関心をお持ちの皆様にprivacytests.org プロジェクトを訪れることをお勧めします。このプロジェクトにはパーティショニングベースのものや、他の機能に関するプライバシー機能を比較したとてもよい一覧があります。
Braveは、オンライントラッキングの一般的な手法に対して、長年にわたり最高の保護機能を提供してきました。
この投稿で説明したネットワーク状態のパーティショニング機能により、Braveはユーザに対してさらに優れたプライバシー保護を提供します。DOMストレージベースのトラッキングに対する非常に強力な保護と、ネットワーク状態をベースとしたトラッキングに対する保護は、他の一般的なブラウザで利用できるものと同様かそれ以上の効果です。また、Braveでまだパーティショニングされていないごく少数のネットワーク状態の機能(HSTS命令や特定の種類のblob値のパーティショニングなど)については、内部および上流と協力して、これらの機能にも保護を拡張する予定です。
これらの新しいネットワーク状態のパーティショニング機能をもってしても、ユーザーのプライバシーを本当の意味で尊重するWebを構築するには、まだ多くの対応が必要です。たとえば、Brave は最近、Web全体を横断してユーザを追跡するために悪用可能な、まだパーティション化されていないさまざまなブラウザの機能を文書化しました。私たちは、これらの発見を最近のブログ記事と研究論文で発表し、他のブラウザベンダーと可能な解決策を議論しています。
最後に、パーティショニングはプライバシー保護のための有効な手段ですが、それだけでは不十分であることを強調します。本当の意味でのプライバシー保護は、積極的に、ユーザファーストを貫き、機能の奥の部分まで適用されなければなりません。パーティショニングに基づく防御がブラウザ ベンダーにとって(パーティショニング ポリシーが悪意のある行為者を特定する必要がないこと、「中立」であることなど)魅力的であることは同時に、パーティショニングによる防御を本質的に制限するものにもなります。Web上のアクターに対する中立性は、ゴールとは異なるものです。ユーザを敵視する悪質なアクターは、たとえその悪質な行為が一般論として説明や規定をできない場合でも、ブロック、回避され、無効化されるべきなのです。
私たちはこの投稿で説明したネットワーク状態のパーティショニング機能を、より広範なプライバシーの脅威からユーザーを保護するものであり、大いに期待しています。しかし、それ以上に、新しいネットワーク状態のパーティショニング機能を、既存の業界最高のプライバシー保護機能と組み合わせることが、Braveユーザに現在利用できる最もユーザファーストでプライバシーを尊重したWeb体験を提供できることに興奮しています。
私たちはChromiumチームの仕事全般に感謝しますが、中でも Shivani Sharma、Josh Karlin、David Benjamin、Yao Xiao、Matt Menke の仕事に注目したいと思います。彼らはChromiumにパーティショニング機能を組み込む作業の多くを行いました。特に Matt Menkeには感謝したいと思います。BraveのエンジニアがChromiumのパーティショニング機能を拡張する際に、彼に大きなサポートを受けました。 ↩︎
この記事の最後で詳しく述べますが、「良い」コードと「悪い」コード、「トラッカー」と「ノントラッカー」を区別する取り組みが有用でないと言っているのではありません。膨大な数の研究が、コンテンツ・ブロックがプライバシー、パフォーマンス、セキュリティの面で大きな効果があることを発見しており、その結論はNSAやCIAをはじめとする多くの機関によって繰り返し言及されています。フィルターリストベースのブロッキングとストレージパーティショニングは互いに補完し合い、どちらか一方だけを使用するよりも、両方を適用することでより優れた保護が得られます。 ↩︎
具体的には、フィンガープリンティング技術を使用して長期間のパーティション管理されたクッキーを同期させようとするトラッカーがあります。 ↩︎
例えば、Braveのストレージポリシーは、ユーザが1つのサイトで複数のアカウント(例:複数のgmailアカウント)を持っているようなケースにおいて、3rdパーティによる意図しないアカウントリンクからのある程度のプロテクションを提供します。 ↩︎
永続的にパーティショニングする方法は有用ですが、一時的なパーティショニングと比較すると保護性は低くなります。永続的なパーティショニングはある種のデータ漏洩の可能性を高め、新たにクッキーを同期する技術が発見されたときに履歴を遡るタイプの悪用が生じやすくなります(他にいくつか類似の懸念があります)。 ↩︎
バージョン1.73より、Braveはページ要素の手続き型コスメティックフィルターのサポートを追加することで、広告ブロック機能を大幅に改善します。
この記事を読む →iOSバージョン1.71より、Braveはユーザーの訪問を特定するブラウザデータを素早く削除する Shred(シュレッド) という新機能を搭載します。
この記事を読む →バージョン1.68から、BraveはiOSとして最初の、すべてのサイトをデフォルトでHTTPSにアップグレードするWebブラウザになります。
この記事を読む →