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

Cloudflare Turnstileが指紋認証可能なWebGLを要求する

2026年5月31日原文(hacktivis.me)

概要

Cloudflare TurnstileがWebGLフィンガープリンティングを要求し、WebKitGTKブラウザで無限ループ発生 プライバシー保護機能が原因で多くのサイトにアクセス不可 Cloudflareの主張は「人間判定のため」であり、追跡目的の懸念 Safariには例外処理の可能性、WebKitGTKは一律でブロック Firefoxのフィンガープリンティング対策の不備も指摘

Cloudflare TurnstileとWebGLフィンガープリンティング問題

  • Cloudflare Turnstile が「Verify you're human」認証で WebGLフィンガープリンティング を要求
  • WebKitGTKベースのブラウザ で認証が無限ループし、 多くのWebサイトにアクセス不可
  • WebGLの情報取得が 追跡目的 である疑念、プライバシーへの懸念
  • Cloudflareの説明 :「フィンガープリンティングがブロックまたはランダム化されると、Bot判定される」
  • 一時的に フィンガープリンティングを許可 すれば問題解決と案内
  • WebKit では長年にわたり WebGLフィンガープリンティングをブロック
    • Safari には例外処理が入り、 WebKitGTK のみ一律ブロックの推測
  • Apple もブロックするほどの追跡手法であり、 ユーザー側で簡単に解除不可

Firefoxにおけるフィンガープリンティング対策の現状

  • Mozilla FirefoxWebGLフィンガープリンティング保護 の実装不備を指摘
    • Bugzilla#1916271 :GeckoはサニタイズされたGPU情報を公開
    • WebKitBlink は全ユーザーにハードコードされた文字列を返却
  • Firefox 145.0 ではTurnstile認証を問題なく通過
    • privacy.resistfingerprinting 設定が「Strict」や「Enhanced Privacy Protection」でも自動有効化されない
    • 手動で有効化すれば、将来的に Cloudflare認証が通らなくなる可能性
  • Canvas Randomization のみ検出され、Turnstileは突破可能な現状

プライバシーと利便性のトレードオフ

  • プライバシー保護機能 強化により、一部サービス利用不可のリスク増加
  • Cloudflare の認証方針が プライバシー重視ユーザー に不利益をもたらす構図
  • ブラウザごとの 実装差異 によるユーザー体験のばらつき
  • 今後の WebGLフィンガープリンティング対策Webサービス認証方式 の動向に注目

Hackerたちの意見

ありがとう、privacy.resistfingerprintingのこと知らなかったわ。これからはCloudflareのクソみたいなやつは全部失敗させるようにするよ。

私はそれを有効にしてるけど、Turnstileは問題なく動いてるよ。

Cloudflareはスクレイパーを検出するためにフィンガープリンティングを使ってることで有名だよね。例えば、JA3フィンガープリントを使ってUAと照合して、cURLみたいなものをブロックして、OkHttp(Androidクライアント)は通すんだ。でも、CycleTLSみたいなパッケージを使えば簡単に偽装できる。彼らを擁護したくはないけど、「ボット保護」でインターネットのかなりの部分を制限してるし、PoW(これも環境的には悪夢だけど)をやらない限り、フィンガープリンティングが主流になっちゃうんだよね。これで関係者全員のプライバシーが完全に壊れちゃう。Android用のプライバシー重視のChromiumフォークであるCromiteは、Cloudflare Turnstileと常に問題を抱えてる。Cloudflareがいろんな方法でフィンガープリンティングしようとするから、チャレンジを通過するのが難しいんだ。動かすためにはCloudflareのブラウザ開発者プログラムに参加する必要があって、NDAにサインしなきゃいけない。プロジェクトのメンテナーがそれをやりたくないのは当然だよね。Cloudflareがブラウザをフィンガープリンティングするために何をしてるかを知りたいなら、問題を見て、Cloudflareがチャレンジを通過するためにどのフラグを無効にする必要があるかを確認してみて。両方の立場は理解できるけど、少なくともCloudflareは人々がフォームを送信したりウェブサイトにアクセスするのをブロックするのではなく、PoWに戻るくらいの柔軟性は持ってほしいな。

だから、私は2つの別々のブラウザを使ってるんだ。公式なこと、例えば支払いをするようなことをするなら、Cloudflareを通過しないといけないからね。

なんか全部無駄だよね。Cloudflareのスクレイピング保護は、5ドルの南京錠と同じくらいの効果しかない。退屈なティーンエイジャーを遠ざけるには十分だけど、素人の泥棒すら止められない。誰かがあなたの公開データをスクレイプしたいと思ったら、絶対にやるから。どうしようもないよ。

でもPoW(これは環境的にも悪夢だけど)をやらない限り、詳しく教えてくれる?ナプキン計算には問題ないと思うんだけど。5Wの負荷で2秒は0.002Whだし(スマホは通過させなきゃいけないから、10秒もPoWするわけにはいかない)。1年で1日8億回のチェック = 8GWh。

彼らを擁護したくないけど、「ボット保護」でインターネットのかなりの部分を制限してるよね。彼らの「ボット保護」で多くの人も制限されてるし。誰が自分のウェブサイトにアクセスできるかを、何の疑問もなく企業に委ねてるのが本当に心配だよ。

彼らを擁護したくはないけど、「ボット保護」でインターネットのかなりの部分を制限してるからね。でも、PoW(これも環境的には最悪だけど)をやらない限り、指紋認証が一番の方法だと思うよ。これで関わる全員のプライバシーが完全に壊れちゃうけどね。指紋認証を使ったボット保護はただの幻想だよ。クライアントサイドの信号は、普通以上の人なら簡単に偽装できるから。指紋認証は広告ビジネスの市場を固めるための手段に過ぎない。住宅用IPアドレスや商業ブロックにレピュテーションを割り当てるのも、目的を達成するための別のアプローチだね。プロバイダーは、自分たちのIPアドレスが悪用されないようにもっと注意するだろうけど、実際には攻撃者と防御者の両方のDDOSビジネスを壊すことになるんだよね。皮肉なことに、同じ企業が自分たちのボットを作ったり、他社のボットを止める方法を見つけたりしてることが多いんだ。

ボットの悪用を防ぎたいけど、誰かがサインアップするたびに醜いキャプチャを出したくないなら、もっといい選択肢はないの?

プルーフ・オブ・ワークのキャプチャを使ってみて。多くはデフォルトでプライベートだよ。Private CaptchaやCap captchaを調べてみて。

ツール「Anubis」は代わりにプルーフ・オブ・ワークを使ってるよ。

これって、webglフィンガープリント耐性の実装をもっと賢くすればいいってことじゃない? webglアクセスを明示的に拒否したり、ダミーデータで応答するのではなく、N個の一般的で再現可能なパターンの範囲内でランダムなデータで応答すればいいんじゃないかな。例えば、実際に人気のある低スペックなデバイスのwebgl実装をエミュレートするとか。

Hacker Newsで議論の続きを見る