世界を動かす技術を、日本語で。

ウェブフィンガープリンティングは思っていたよりも悪化している (2023)

概要

  • Webブラウザ 利用時の プライバシーとセキュリティ について解説
  • クッキー削除やプライベートブラウジング でも防げない Webフィンガープリント の脅威
  • FingerprintJS などのサービスが ユーザー識別 を容易に実現
  • FirefoxのresistFingerprintingTor Browser による対策
  • VPNや一般的なプライベートモード では 指紋追跡 を防げない点に注意

Webブラウザとオンラインプライバシーの現状

  • Webブラウザ 利用時、ユーザーは プライバシー保護 を期待
  • サイト運営者は IPアドレスやログイン情報 など、ユーザーの一部情報を把握
  • クッキー による識別と クロスサイトトラッキング の仕組み
  • サードパーティクッキーによる 広告会社 の追跡
  • ブラウザのクッキー削除機能プライベートブラウジング による一時的な対策

フィンガープリントによる新たな追跡手法

  • クッキー削除 では防げない Webフィンガープリント の登場
  • ブラウザやハードウェア構成から 固有の識別子 を生成
  • JavaScript APIを利用し、 ブラウザバージョン、CPU数、画面サイズ、OS など多様な情報を収集
  • FingerprintJS などの企業が フィンガープリント技術をサービス化
  • VPNやプライベートモード でも同一ユーザーを特定可能

FingerprintJSでのテスト手順

  • https://fingerprint.com を訪問し、フィンガープリントを確認
    • キャッシュやサイトデータを削除後も 同一IDで識別
    • プライベートブラウジングモードでも 過去訪問と紐付け
  • 主要ブラウザ (Firefox, Chromium, Tor Browser)で挙動を比較

Firefoxの対応と設定

  • デフォルト設定のFirefox はフィンガープリントに脆弱
  • privacy.resistFingerprinting = true を有効化で対策可能
    • about:configから設定し、 ユーザーエージェントや画面解像度 などを一律化
    • FingerprintJSでの識別精度が低下

Chromium/Chromeの現状

  • Google Chrome/Chromium広告目的 でトラッキング対策が不十分
  • 全セッションで同じフィンガープリントID が生成される
  • ユーザー識別性が高い 仕様

Tor Browserの特徴

  • Tor Browser は常時プライベートモードで運用
  • 複数セッション間の識別が困難
  • フィンガープリント対策が最も強力

その他の対策と注意点

  • Brave はフィンガープリントをセッションごとにランダム化
    • ただし Chromiumベース のため、Googleの影響を懸念
  • モバイルでは Tor BrowserFirefox(resistFingerprinting有効時) のみが有効な対策
  • Firefox Focus はセッションを消してもフィンガープリント漏洩
  • VPNはIPアドレスのみを隠す 効果で、フィンガープリント対策には無効

結論・推奨ブラウザ

  • フィンガープリント対策 には Tor Browser または Firefox(resistFingerprinting有効) 推奨
  • Chromium/Chrome はフィンガープリントに脆弱
  • VPNや通常のプライベートモード は無力
  • プライバシー重視 ならブラウザ選択と設定が重要

Hackerたちの意見

iPhoneみたいに、同じ画面やブラウザ、OSバージョンを持ってる人が多い場合、ウェブフィンガープリンティングってどう機能するの?

まだまだ結構あると思うよ。フォントサイズ、地域設定(言語とか)、ソフトウェアのバージョン、ブラウザの拡張機能、広告ブロッカーとか…

ブラウザのバージョンにはばらつきがあるよね。リリースが時間をかけてクライアントに展開されるし、ユーザーはすぐにブラウザを再起動しないから。FingerprintJSが使うすべてのシグナルは知らないけど、明らかにユーザーエージェント文字列(正確なバージョンが含まれてる)に大きく依存してる。著者がTorのUAランダマイザーでそれを偽装できたことからもわかるよ。ちなみに、Chromeがユーザーエージェントの変更やフィンガープリンティング抵抗を許可しないっていうのは間違い。ここでできるよ: https://developer.chrome.com/docs/devtools/device-mode/overr... 便利な拡張機能もあるし。記事は広告からのサードパーティクッキー漏洩についても間違ってるけど、10年前にはクッキーレスになってセッション識別子がプロトコルから完全に消えた前に、いくつかのケースでセッションIDを嗅ぎ取ることができた。ただし、広告主はキャンペーンや分析を詳細にパラメータ化して、内部ユーザーIDに人口統計をリンクさせることができるけど、ポリシーに反しても目立たないのは簡単だよね。それに、あまりにも多くのAndroidアプリで位置情報の漏洩があるし、プライバシーに関してGoogleを完全に擁護するつもりはないけど、著者が偏見に基づいていくつかの仮定をしたのは明らかだよ。質問に戻るけど、フィンガープリンティングの一部として使える他の要素もあるよ。インストールされているフォントは、どのアプリケーションがインストールされているかの代理になる。キャンバス上に描画されたテキストの端にあるアーティファクトは、どのグラフィックチップとドライバーがインストールされているかを示すことができて、同じGPUモデルやドライバーのバージョン内でも違いが出ることがある。タッチトラッキングは、左手でスワイプしたか右手でスワイプしたかを判断できる。タイミングシグナルはCPUの仕様を示したり、VMにいるかVPNの背後にいるかをほのめかすこともできる。もっとあるけど、大抵はJSからアクセスできて、実際にはほとんどがユーザーエージェント文字列よりも信頼性が高いよ。

あまりうまくいかないね。特にiPhoneの場合、SKUが少なくて、アップデートが積極的に行われるから。

ブラウザフィンガープリンティングは、完全に違法にすべきものだと思う。クッキーの追跡よりもずっと脅威だよ。でも、クッキーほど一般の意識には浸透してないから、規制当局は無視してるみたい。

でも、これを取り締まるのはほぼ不可能な気がする。

もっと度胸のある、頭の良い規制当局が必要だね。このプライバシーの芝居は、見るのが辛くなってきた。

それか…GDPRを読んで、「クッキーダイアログ」はクッキーについてじゃなかったって気づくのもいいかもね。https://news.ycombinator.com/item?id=44670345

これは法律の問題じゃなくて、技術的な問題だね。解決策は、ブラウザがユーザーに送信される情報を制限する機能を提供することだと思う。ほとんどのウェブサイトが、俺のOSやCPUの数、画面サイズやウィンドウサイズ、他のフィンガープリンティングの指標を知る必要なんてないよ。

それは違法にすべきだけど、技術的な防止策も必要だよね。インターネットはグローバルだし、規制するにはあまりにも多くの法域を通るから。さらに、フィンガープリンティング技術は犯罪組織や情報機関のために開発されるだろうし。

完全に違法にすることはできないから、個人的にはフィンガープリンティングスクリプトが悪用するAPIを削除したり制限したりする方がいいと思う。ブラウザをハイパーテキストビューワーに戻そうぜ!

インターネットは戦場だね。オンラインでの行動に対して作り上げたルールを要求するのは、戦闘中に敵に平和を訴えるのと同じくらい無意味だよ。もし心的外傷を受けてるなら、ヘルメットをかぶってね。

これは正確にはブラウザフィンガープリンティングじゃないけど(ブラウザフィンガープリンティングが関わってるかもしれない)、今のところ一番の疑問は、MetaがAppleのiOSプライバシー保護をどうやって回避してるかってこと。数年前、Appleはアプリ追跡透明性を導入して、iOSアプリエコシステム内の追跡を減らそうとしたんだ。これがMetaやSnapみたいな会社にとって壊滅的だって予測されてたけど、Metaはすぐに回復したみたい。Snapはあんまり早くなかったけど。聞いた噂では、Metaはアプリユーザーを追跡する新しい方法を見つけるために、全力を尽くしたらしい。おそらく、似たようなフィンガープリンティングが関わってるんだろうね。収益の成功は、彼らが成功したことを強く示してる。でも、これが本当なら、あまり書かれてないよね。

多分、無視されてたんじゃない?あのプライバシー保護って、基本的には「お願いだから追跡しないで」って言ってるだけじゃない?

https://news.ycombinator.com/item?id=44169115 Androidでこっそりとした方法を見つけたみたい。iOSでも同じことをやろうとしてるに違いない。Metaに関しては、常に悪意を疑うべきだよ。

IPアドレスはかなり静的だよ。ほとんどのスマホやノートパソコンは、1日に1回「帰宅」して、家庭のIPに接続される。これを長く続ければ、他のIP v6やMACアドレスなども家庭内でまとめられるよ。

「MetaはAppleのiOSプライバシー保護をどうやって回避してるの?」 Appleとの強い関係とクロスバリューマーケティングだね。これらのルールは中小企業にしか適用されないんじゃないかな。Appleが大手企業のためにルールを曲げてるのを見たことあるし、彼らはそれを認めないけど。

「でも、企業はクッキーや他の永続的ストレージを使わずに、異なるセッションやウェブサイトであなたを一意に特定する別の方法を見つけたんだ。それがウェブフィンガープリンティングと呼ばれるもの。フィンガープリンティングは、何百万もの他のユーザーの中から特定のユーザーを識別するための、より洗練されたアプローチなんだ。これは、あなたのウェブブラウザやハードウェアの構成を調べることで機能する。多くのウェブサイトは、ユニークなIDを生成するためにフィンガープリンティングライブラリを使用している。このライブラリは、あなたのウェブブラウザが提供する複数のJavaScript APIからデータを集めるんだ。例えば、ウェブサイトはブラウザのバージョン、デバイスのCPUの数、画面サイズ、タッチポイントの数、ビデオ/オーディオコーデック、オペレーティングシステム、そして一般的なニュースサイトには見られたくないような多くの詳細を確認できる。」自分の「頑丈な」ブラウザは、通常のブラウジング用にこのデータをランダム化するプラグインが入ってるよ。

「MetaはAppleのiOSプライバシー保護をどうやって回避しているの?」お金はいつも道を見つけるよ。数年前の変更がMetaに悪影響を与えると思われていたけど、彼らは700億ドルの純利益を上げてる。少なくとも、広告主との良好な関係と、キャンペーンからの(ある程度測定可能な)増加が必要なだけ。今の広告は違うし、同じアドを何百回も見せられることもあるから、データを使ってターゲットを関連付けるのがずっと簡単なエコシステムになってる。

で、フィンガープリンティングについてよくわからないことが一つあるんだけど、> 例えば、ウェブサイトはブラウザのバージョン、デバイスのCPUの数、画面サイズ、タッチポイントの数、ビデオ/オーディオコーデック、オペレーティングシステムなど、いろんな詳細を見れるよね。もし、例えば2週間後にウェブブラウザをアップグレードしたら(つまり、新しいバージョン番号になる)、それってサイトが私を失ったってことにならない? https://coveryourtracks.eff.orgみたいなサイトは、フィンガープリンティングがどれだけユニークかに焦点を当ててるけど、時間が経つにつれてどれだけ安定してるかも重要じゃない?

だから、簡単に変更できる機能を最終的なフィンガープリントハッシュに入れないんだろうね。

データポイントをハッシュ化するか、未処理のまま送るかによるね。未処理の場合、ブラウザだけが変わった2つのフィンガープリントを関連付けることができる。

Firefoxブラウザでabout:configに行って、privacy.resistFingerprintingをtrueに設定する。 2つの疑問が浮かぶんだけど、なんでこれがFirefoxのデフォルトじゃないの?デメリットは何?つまり、このパラメータを有効にすると何が壊れる可能性があるの?

一部のウェブサイトは、再ログインを早くするためにユーザー名を事前に入力してくれる機能があるよね。最悪の場合、また初めての訪問者の体験を味わうことになるかも。

デフォルトじゃないのは、対策がいろんな副作用を引き起こすからなんだ。もしデフォルトでオンだったら、新しいユーザーはブラウザが壊れてるとかバグがあると思うかもしれない。設定が何をするのか、どんな副作用があるかについては、ここを見てみてね:https://support.mozilla.org/en-US/kb/resist-fingerprinting

実際には、通常の設定のプライバシー設定の一部で、こんな警告が出るよ。> この設定により、一部のウェブサイトがコンテンツを表示しなかったり、正しく動作しなかったりする可能性があります。もしサイトが壊れているように見えたら、そのサイトのトラッキング保護をオフにして、すべてのコンテンツを読み込むことを検討してください。一部のサイトは、機能を提供するために軽いフィンガープリンティングを使用しています。

何がデメリットかって、思いつく限りでは: - タイムゾーンがUTCに設定されるから、ウェブカレンダーの入力が混乱する - キャンバスがランダムなストライプになって、いろんなウェブサイトにアーティファクトが残る - 一部のウェブサイトはボットとして完全にブロックする(Twitchがこれをやってる) - 一部のウェブAPIが壊れることがあって、それに依存してるウェブアプリには面倒くさいことになる いくつかのサイトではホワイトリストに追加してデメリットを避けられるけど(privacy.resistFingerprinting.exemptedDomains)、それをすべてのサイトでやるのは面倒だよね。

一番の欠点は、リモートターミナルウィンドウ(例えば、ttydを使って)が使えなくなっちゃったことかな。キャンバスレンダリングが「壊れちゃってる」から。

最近、キャプチャで壁を作られることが増えてきてるのは、むしろいいことだと思ってる。俺の設定や行動が、何十億もの匿名ボットと似てきてるってことだから、狙われることが少なくなるってことだよ。

セットアップの詳細を共有した方がいいよ。

同じだけど、今は多くのウェブサイトにアクセスするためにはJSをオンにしないといけない(つまり、フィンガープリンティングをオンにすること)。意図的じゃないサイトでも、Cloudflareの背後にいるからそうなるんだよね。

デモを試してみたけど、fingerprint.comを - Safari - Safariのプライベートモード - Chromeのプライベートモードで使ったら、どれも私を特定できなかった。次に - Chrome(通常モード)で試したら、リピート訪問として認識された。SafariってChromeよりプライバシーがいいのかな?

うん、かなりね。

Safariはプライベートリレーがオンの時、タブごとにランダムなIPアドレスを割り当てる。Chromeでは、自分が誰かについての言い逃れはゼロ。どのタブ、ウィンドウ、シークレットモードでも、昨日も今日も1年前も同じ自分だよ。

自分の経験から言うと、fingerprint.comはあんまり指紋認証に強くないよ。個人的に一番怖いのはcreepjsだね。https://abrahamjuliot.github.io/creepjs/

DilloとLinksはそのクソみたいなものに対して完璧だね。

今日、HNにあなたのウェブサイトの匿名の訪問者を明らかにして名前を付けるサービスを提供している会社が投稿されてたよ。[0]https://news.ycombinator.com/item?id=44670308

現在「Tie(meettie.com)」という会社があって、以前は「Revenue Roll」として知られていたんだけど、彼らは「あなたの最高価値のウェブトラフィックを匿名解除する」って約束してるんだ。実際には、サイトを訪れたユーザーのメールアドレスを提供して、リターゲティングに使えるようにするってこと。古いサイトには、彼らがフィンガープリンティングを使っていると明言していて、「プライバシーに配慮した」って言ってたブログ記事もあったよ。こういうサービスを提供しているのは彼らだけじゃないと思うけど、ブラウザのフィンガープリンティングを自慢しているのを初めて見た。

ここにオプトアウトフォームがあるのに気づいたよ:https://app.termly.io/dsar/ee5088c4-5eb2-475c-a9ea-9376f1b70... 法律用語が面白すぎて、何を達成するのか全然わからない。もしかしたら、あなたを「非常に重要なマーケティングターゲット」にするかもね。一つ気になったのは、「偽証の罰則の下、上記の情報が真実かつ正確であることを宣言します」って部分。リクエストをメールで確認する必要があるのは残念だね。個人情報の漏洩を利用して、見つけたメールを全部投げつけるのも面白そう。

なんでプライバシー団体はこういうサービスを試さないのかな。