AILIBERALMEDIA
ChatGPTのボット検知システム「Turnstile」の内部構造が解析により明らかに
← 一覧に戻る
OpenAIセキュリティAIセーフティ

ChatGPTのボット検知システム「Turnstile」の内部構造が解析により明らかに

速 報2026.05.02 13:32

ChatGPTが使用するCloudflareのボット検知システム「Turnstile」の内部構造が、セキュリティ研究者による詳細な解析で公開されました。3層にわたる55のプロパティチェックと多層的な暗号化機構により、ボット検知とトークン生成の仕組みが明らかになっています。

ChatGPTが利用するCloudflareのボット検知システム「Turnstile」の内部構造および関連するSentinelチャレンジに関する詳細な解析結果が、技術ブログサイトのBuchodiによって公開されました。ネットワークトラフィックの傍受とSDKの難読化解除を通じた解析により、ボットがどのように検知され、トークンが生成されるのかという仕組みが明らかにされています。

ChatGPTからの全メッセージはブラウザ内で秘密裏に実行されるCloudflare Turnstileプログラムをトリガーします。このプログラムは単なるブラウザのフィンガープリンティングにとどまらず、「ブラウザ」「Cloudflareネットワーク」「ChatGPTアプリケーション自体」の3つのレイヤーにわたる55ものプロパティをチェックします。具体的には、WebGL・画面解像度・ハードウェア情報・フォント測定・DOM操作・ストレージ利用状況といったブラウザ固有の情報に加え、Cloudflareのエッジヘッダー情報も収集されます。さらにChatGPTのReactアプリケーションが完全にレンダリング・ハイドレーションされているかどうかも確認しています。多層的なチェックを行うことにより、ブラウザのフィンガープリントが偽装されていたとしても、実際のChatGPTシングルページアプリケーション(SPA)を正常にレンダリングしないボットは検知され失敗します。

Turnstileのバイトコードは受信時に暗号化されています。まず準備レスポンスに含まれるBase64エンコードされたフィールド(turnstile.dx)は準備リクエストからのトークン(p)とのXOR演算によって復号されます。外側のレイヤーの復号は両者が同じHTTP通信でやり取りされるため比較的容易です。

外側のレイヤーを復号することにより約89個の仮想マシン(VM)命令が得られますが、VM命令の中に実際のフィンガープリントプログラムを含む19KBの暗号化されたデータブロックが含まれており、外側のレイヤーとは異なるXORキーを使用します。当初このキーはperformance.now()から派生するものと考えられていましたが、詳細な解析の結果、キーはVM命令の中に浮動小数点リテラルとして直接埋め込まれていることが判明しました。キーはサーバーによって生成されバイトコードに埋め込まれ、解析者はキーを知ることで内部プログラムを復号できます。

完全な復号チェーンはHTTPリクエストとレスポンスのみで完結し、以下の5ステップで構成されます。1つ目は準備リクエストからpを読み取ること、2つ目は準備レスポンスからturnstile.dxを読み取ることです。3つ目はbase64decode(dx)とpをXOR演算し外部バイトコードを取得し、4つ目は19KBのブロブの後に続く5引数命令を探し、その最後の引数をキーとして取得します。最後の5つ目のステップで、base64decode(blob)とキーの文字列表現をXOR演算し、内部プログラム(417〜580 VM命令)を取得します。

TurnstileはSentinelシステムが提供する3つのチャレンジのうちの1つです。残りの2つは、Signal Orchestrator(SO)とPoWです。Signal Orchestrator(SO)はキーダウン・ポインター移動・クリックなどのユーザーインタラクションイベントリスナーをインストールし、window.__oai_so_*プロパティを監視することでキーストロークのタイミングやマウスの速度といった行動バイオメトリクスを追跡する、行動生体認証のレイヤーです。

全てのSentinelチャレンジに関する分析結果によると、プログラムの復号率は377/377で100%、ユニークユーザー数は32、プログラムごとのプロパティは55で全サンプルで同一です。プログラムごとの手順は417〜580で平均480、固有のXORキーは41、SOの挙動特性は36、PoWフィンガープリントフィールドは25となっています。PoW解決時間については72%が5ms未満です。

XORキーを用いて難読化することにより、複数の運用上の目的が達成されています。静的解析からフィンガープリントチェックリストを隠蔽し、ウェブサイト運営者(OpenAI)がリバースエンジニアリングなしに生のフィンガープリント値を読み取ることを防いでいます。また各トークンを一意にすることによりリプレイ攻撃を防いでいます。ただし実際には同じデータストリーム内でのXOR演算に過ぎないため、簡単な読み取りであればともかく、詳細な解析には時間を要します。

PR / 広告

すべてのWebサイトに AIアシスタントをつけよう。

  • YouTubeの要約やウェブサイトの分析など、使い方は無限大
  • 最新AIモデルを1つに統合しコストを削減
  • 500万人以上が利用する信頼のブランド
無料で始める
クーポンコードMERLIN20で20%オフ

関連記事

サム・アルトマンとダリオ・アモデイ、AIによる雇用消滅の予測を撤回
OpenAIAnthropic生成AI

サム・アルトマンとダリオ・アモデイ、AIによる雇用消滅の予測を撤回

2026.05.27 13:34
眼科医が処方を間違えた眼鏡、AIが解決策を導き出した
生成AILLMビジネス

眼科医が処方を間違えた眼鏡、AIが解決策を導き出した

2026.05.27 13:33
YouTubeがAIラベルを目立つ位置に移動、自動検出機能も導入
Google生成AI規制・政策

YouTubeがAIラベルを目立つ位置に移動、自動検出機能も導入

2026.05.27 13:33