WebGL を見ていた「人間判定」 #
WebKitGTK ベースのプライバシーブラウザ「BadWolf」を開発するハエルウェン・モニエ氏が、Cloudflare Turnstile の "Verify you're human" 認証が WebKitGTK 系で無限ループする と報告した。原因は Turnstile が裏で WebGL から GPU レンダラー文字列を読み取り、それを「人間らしさ」の指標に使っていた ことにある。
WebGL は本来 3D 描画 API だが、UNMASKED_RENDERER_WEBGL で取れる "Intel UHD 620" "NVIDIA RTX 4090" のような GPU 型番の文字列は端末ごとの一意性が高く、フィンガープリンティングの定番素材として古くから悪名高い。Turnstile はこの値を「実機の人間が使う本物のブラウザらしいか」のシグナルとして組み込んでいた格好だ。
「対策」が「ボット」と判定される構造 #
問題はここからで、BadWolf や Tor Browser、Mullvad Browser、LibreWolf などプライバシー寄りのブラウザは まさにこの GPU 文字列を潰したり固定値へ置換することで追跡を防いでいる。結果として Turnstile からは「GPU 情報を出さない不審な環境=ボット」と見え、検証画面が永遠に終わらない。
ボット検知が欲しがる「端末の一意な識別子」と、追跡を嫌うユーザが消したい識別子は**完全に同じもの**。プライバシー対策を真面目にやるほどボット判定される。
ハッカー視点 — 「人間判定」の正体 #
セキュリティ屋の論点はもう一つある。Turnstile はチェックボックス 1 つに見えるが、実際には ブラウザ環境のサイレント・プロファイリング が走っている。裏を返せば攻撃者は、ヘッドレス Chrome に「実機 GPU っぽいレンダラー文字列」を埋め込むだけで検証を抜けられる余地が残る。CAPTCHA が「行動シグナル + 環境フィンガープリント」へ移行した代償として、Web は静かに 「指紋を残せる人だけが Web を使える」 方向へ寄りつつある。
COMMENTS 0
No comments yet — be the first to leave one.