Cloudflare Turnstile、フィンガープリント取得可能なWebGLを要求
(hacktivis.me)- Cloudflare Turnstile の「Verify you're human」デバイス検証が、約1週間前から WebKitGTK ベースのブラウザーで無限に繰り返されるようになっている
- 複数のウェブサイトへのアクセスが阻害されている直接の原因は、Cloudflare が WebGL を通じてデバイスのフィンガープリントを取得しようとしている挙動にあるとみられる
- Turnstile の案内では、ブラウザーのフィンガープリント取得 を人間かどうかの確認に使っており、ブロックやランダム化ツールがボットのように見える原因になると説明している
- WebKit はこのような機能を何年も前からブロックしており、ユーザーが簡単に無効化できるプライバシー保護オプションには見えない
- Safari には例外があると推定される一方で、WebKitGTK ブラウザー全体 がブロックされており、Firefox の保護設定ユーザーにも影響する可能性がある
WebKitGTK で繰り返される Turnstile 検証
- Cloudflare Turnstile の「Verify you're human」デバイス検証が、約1週間前から WebKitGTK ベースのブラウザー で無限に繰り返され、複数のウェブサイトへのアクセスを妨げている
- アクセス遮断の原因は、Cloudflare が WebGL を通じてデバイスのフィンガープリントを取得しようとしている挙動にあるとみられる
- Turnstile の案内文は、ブラウザーのフィンガープリント取得を人間かどうかの確認に利用すると明記している
- フィンガープリント取得をブロックしたりランダム化したりするプライバシー保護ツールは、ブラウザーを正体を隠そうとするボットのように見せる可能性がある
- WebKit はこのような機能を何年も前からブロックしており、簡単に無効化できるプライバシー機能には見えない
- Cloudflare が Safari には例外を設けたと推定される一方で、WebKitGTK ブラウザー全体がブロックされた状態になっている
Firefox の関連保護挙動
- Mozilla Firefox の WebGL フィンガープリント保護には、Bugzilla#1916271: Gecko reveals sanitized GPU Characteristics; webkit and blink return hardcoded strings for all users という問題がある
privacy.resistfingerprintingは、設定で「Strict」「Enhanced Privacy Protection」を選択しても有効にならないprivacy.resistfingerprintingを手動で有効化しているプライバシー志向の Firefox ユーザーは、今後 Cloudflare のデバイス検証を通過できなくなる可能性がある
1件のコメント
Hacker News のコメント
Cloudflare はスクレイパー検知に ブラウザーフィンガープリンティング を使っていることで知られている。たとえば JA3 フィンガープリントをユーザーエージェントと照合して cURL のようなものはブロックし、OkHttp(Android クライアント)は許可するが、CycleTLS のようなパッケージで簡単に偽装できる [1]
「ボット対策」としてインターネットの大きな部分を塞いでいるので擁護したくはないが、仕事量証明(PoW)を使わないならフィンガープリンティングは現実的な方法かもしれず、その結果、関係する全員のプライバシーは完全に台無しになる
Android 向け Chromium のプライバシー重視フォークである Cromite は Cloudflare Turnstile と継続的に問題を抱えているが [2]、これは Cloudflare がチャレンジを通過させるためにさまざまな方法でフィンガープリンティングを行うためだ
解決するには Cloudflare Browser Developer プログラムに参加する必要があるが、NDA への署名が必要で、プロジェクト管理者が拒否したのは妥当に見える
Cloudflare がどれほど深くブラウザーフィンガープリンティングを掘っているか見たければ、issue [2] でチャレンジを通すためにどのフラグを無効にしなければならないかを見ればよい。少なくとも Cloudflare は、人をフォーム送信やウェブサイトへのアクセスから単に締め出す代わりに、仕事量証明に置き換える くらいの柔軟さは持てると思う
[1]: https://github.com/Danny-Dasilva/CycleTLS
[2]: https://github.com/uazo/cromite/issues/2365
家庭向け IP と商用帯域にレピュテーションを与えることも、望む結果を得る別の方法かもしれない。事業者が IP の悪用にずっと慎重になるだろうが、そうなると攻撃者側と防御側の両方の DDoS ビジネスが一緒に崩れる可能性がある
皮肉なことに、自社ボットを作りながら他社ボットを止める方法にも投資している会社はかなり多い
5W の負荷を 2 秒かけると 0.002Wh で、スマートフォンも通さなければならないのだから、数十秒の仕事量証明を課すことはできない。1 日 80 億回の検査を 1 年続けても 8GWh だ
privacy.resistfingerprintingが「Strict」「Enhanced Privacy Protection」を選んでも有効にならないのには理由がある。長く有効にして使ってみたが、ウェブサイトが奇妙に壊れるので結局ずっと無効にしなければならず、回避策も追加する必要があった特定サイトの タイムゾーン処理 が狂って、予定を何度か逃しかけた。Firefox が壊れたのではないとユーザーに知らせるには、「ウェブサイトが壊れたり奇妙なグリッチが見えたり、コンピューターの時刻が違ったり、フォントがおかしかったり、動画がときどき再生されないなら、ここを押してフィンガープリント保護を無効にしてください」という常設バナーが必要なほどだ
興味深いことに、Turnstile は
resistfingerprintingでは壊れるがfingerprintingProtectionでは動作する。後者はこうしたひどい状況を考慮しているようだStrict 設定ではサイトが壊れることはある程度予想するが、追跡経路が依然として大きく開いたままだとは思わない。欺瞞的に感じる
少数派ブラウザーをメンテナンスしているが[0]、数週間前から複数のユーザーがこの問題に遭遇している[1]。今のところブラウザーのバグだとは見ていないが、もちろん関連バグがある可能性はあり、もっと多くの人に見てもらえれば状況を改善または緩和するアイデアや助けが得られるとありがたい
[0]: https://konform-browser.codeberg.page/
[1]: 大半なのか全員なのかは不明。テレメトリーなしで、ユーザー報告と自前のテストに依存している
「偽装していると見破られたなら、十分に本気で偽装していなかったということだ。」
この愚かな ボットとの戦争 はインターネットの衰退につながり、最終的には「承認された」ユーザー敵対的エージェントだけが許可される、もう一つの閉じた庭へと変えてしまうだろう。「AI スクレイパー」云々というたわごとに乗せられてはいけない。同意を捏造するための手段にすぎない
Google と Cloudflare は Chrome 以外のブラウザー を使いにくくすることで取引でもしたのか? Chrome を使えという圧力は強まる一方で、Chrome でできる広告フィルタリングはどんどん減っている
何かを隠すと自動的に「隠す理由のあるエージェント」側に分類される
はっきり言えば、それこそが根本的な問題だ。インターネットのそれほど多くの部分が Cloudflare を経由しているのだから、特定のシグナル 1 つよりも強く悪意ある行為者ではないことを示せる 代替シグナル が十分にあるべきだ
ただし同じ設定を使うユーザーが母集団にほとんどいないため、実際の解決策が出るまで非常に長くかかるかもしれない
「身元を隠そうとしているようです」と言うが、そもそも彼らにそれを要求する権利はなかった
privacy.resistfingerprintingを知らなかったが、これからはすべての Cloudflare Turnstile を失敗させたままにするつもりだprivacy.resistfingerprinting設定は Tor Browser のためのものだTor Browser のプライバシー・セキュリティ関連パッチを多く取り込んだ Konform Browser や Mullvad Browser でもデフォルトで有効になっている
犯罪に関する格言で、人口の X% がある法律を破っているならその法律は廃止すべきだ、というものが好きだ。嗜好用ドラッグが明白な例だ
ランダムな canvas 処理 がボット行為として取り締まられていたのに、今では Firefox を使う全員がそれをしているのなら、Cloudflare も単に「合法化」すべきではないかと思う