Relay が公式のレスポンスを返したか検証する
証明付きの API レスポンスを下の検証ツールに貼り付けてください。ブラウザ内で署名を確認し、そのレスポンスがどの公式上流ホストから届いたか、Relay によって改変されていないかを表示します。データがお使いのコンピューターの外に出ることはありません。
- ブラウザ内で完結
- オープンソースの検証ツール
- 無料・登録不要
3 ステップでレスポンスを検証
- 1
キーの検証をオンにする
API ページで、そのキーの「公式検証」をオンにします。証明が付くのは、そのまま転送される Claude Messages と GPT Responses のレスポンスだけです。
- 2
レスポンス全体を保存する
ストリーミングリクエストを送り、curl -o でレスポンスのバイト列をそのままファイルに書き出します。末尾は event: tee.proof になっているはずです。非ストリーミングリクエストではヘッダー x-wokey-tee-proof-mode: multipart を付け、multipart レスポンス全体を保存します。Windows では PowerShell の > リダイレクトやメモ帳での再保存ではなく curl.exe -o を使ってください。前者は改行コードやエンコーディングを変えてしまいます。
- 3
検証ツールに貼り付ける
レスポンス全体を下の検証ツールに貼り付けるかドロップし、検証を開始します。検証はこのページのブラウザ内で行われ、ネットワークリクエストは一切送信されません。
curl -sN https://api.wokey.ai/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":256,"stream":true,"messages":[{"role":"user","content":"Hello"}]}' \
-o captured-response上の検証ツールはオープンソースのリポジトリから GitHub Pages で直接公開されており、Wokey のサーバーを経由しません。そのため Wokey が「常に合格と表示する」検証ツールに差し替えることはできません。ページを保存してオフラインで開くこともできます。
検証ツールでは PCR0(Enclave イメージの測定値)の確認を求められます。レスポンスに付いてくる値ではなく、誰でもソースから再現できる、オープンソースのリポジトリで公開されている値を使ってください。
結果の読み方
- すべて合格
- attestation が AWS Nitro のルート証明書までつながり、PCR0 が公開値と一致し、署名が有効で、レスポンスのバイト列が署名済みハッシュと一致しています。表示される上流ホスト(例:api.anthropic.com)がレスポンスの送信元であり、Relay による改変はありません。
- 証明は有効、レスポンス本文なし
- tee.proof イベントだけが貼り付けられています。証明が本物の Enclave によって署名されたことは確認できますが、本文がないとハッシュを再計算できないため、表示された内容が改変されていないことは示せません。レスポンス全体を貼り付けてください。
- PCR0 不一致
- attestation は本物ですが、Enclave が監査済みのイメージを実行していません。このレスポンスは未証明として扱ってください。
- 署名またはハッシュの検証に失敗
- 証明かレスポンスが改変されたか、保存やコピーの際にバイト列が変わりました(例:エンコーディングの変換)。curl -o で元のレスポンスを保存し直してください。それでも失敗する場合は信頼しないでください。保存ツールが改行コードを CRLF に書き換えた場合や、ファイルを UTF-16 で保存した場合は、検証ツールが元に戻してその旨を表示します。結果を決めるのはあくまで署名済みハッシュです。
- tee.proof なし
- このレスポンスは未証明です。キーの検証がオフになっている、リクエストが形式変換を経由した、または Enclave が利用できなかった可能性があります。未証明として扱ってください。
ほかの Relay の確認方法:各手法で分かること・分からないこと
上流の署名がない場合、できるのは間接的なチェックだけです。明らかな問題は見つけられますが、最良の結果でも「不審な点は見つからなかった」であり、「公式と確認できた」にはなりません。代表的な手法とその限界は次のとおりです。
| 手法 | 方法 | 分かること | 分からないこと |
|---|---|---|---|
| トークン数 | 方法: 同じ固定プロンプトを、公式 API と Relay の同じモデルに送り、usage の input_tokens を比較します。 | 分かること: 別ベンダーのモデルへのすり替え。トークナイザーはベンダーごとに異なるため、数値がはっきり食い違います。 | 分からないこと: 同じベンダーのモデルはトークナイザーを共有することが多く、同系統の安いモデルへの切り替えは見抜けません。公式の基準値も必要です。 |
| プロンプトキャッシュ | 方法: モデルの最小キャッシュ長より長い同じプレフィックスを 2 回送ります。2 回目のレスポンスで cache_read_input_tokens が返り、キャッシュ読み取り料金で請求されているかを確認します。 | 分かること: バックエンドが公式の上流ではない、または Relay がキャッシュを壊しているのに正規料金を請求しているケース。 | 分からないこと: キャッシュヒットはバックエンドがキャッシュに対応していることを示すだけで、どのモデルかは分かりません。 |
| 長いコンテキスト | 方法: 公称のコンテキスト上限に近いテキストを送り、途中に重要な情報を 1 つ紛れ込ませて、最後にそれについて質問します。 | 分かること: コンテキストの小さいモデルによるなりすまし、または Relay による履歴の無断切り詰め。 | 分からないこと: 正しく答えてもモデルのバージョンは証明できません。また、このチェックが最も多くのトークンを消費します。 |
| プロトコルの細部 | 方法: ストリーミングイベントの順序(message_start から message_stop まで)、メッセージ id の形式、ヘッダー、エラー形式を公式ドキュメントと比較します。 | 分かること: 別モデルの出力を Claude の形式に無理やり包んだ粗雑なラッパー。 | 分からないこと: これらのフィールドはどれも簡単に偽装でき、丁寧に作られたラッパーなら完全に一致させられます。 |
頼りにすべきでない方法
- モデルに「あなたは誰?」「知識のカットオフはいつ?」と尋ねる:公式モデル自身もよく間違えますし、Relay はシステムプロンプトでどのモデルにも Claude を名乗らせることができます。
- 回答の質や速度を感覚で判断する:プロンプト、負荷、ランダム性による変動が大きすぎます。参考程度にとどめてください。
任意の Relay をワンクリックで検査するツールがない理由
- 検査するには、その Relay 用のあなたの API キーでリクエストを送る必要があります。当社のサーバー経由にすると他社サービスのキーを預かることになり、それは避けたいと考えています。
- ブラウザから Relay を直接呼び出すと、ほとんどの Relay がクロスオリジンリクエストを許可していないため失敗します。
- 上のチェックで言えるのは「不審」か「問題なし」だけです。スコアとしてまとめると権威があるように見えて、誤解を招きます。
Relay セルフチェックリスト
Relay を選ぶ前や、使っている Relay に疑問を感じたときは、次の順に確認してください。
- レスポンスにオフラインで検証できる上流の証明が付いているか。付いている場合、署名された上流ホストは公式のものか(例:Claude なら api.anthropic.com)。
- 固定プロンプトの input_tokens が公式 API と一致するか。
- 長いプレフィックスを繰り返したとき、レスポンスにキャッシュ読み取りが記録され、キャッシュ料金で請求されているか。
- 公称上限に近いコンテキストが切り詰められずに処理されるか。
- Relay が上流の出所や、リクエスト内容を記録・保存するかどうかを公表しているか。
- 検証できない Relay には、シークレット、顧客データなどの機密情報を送らないこと。
証明で分かること・分からないこと
分かること
- レスポンスがどの公式上流ホストから届いたか。
- レスポンスのバイト列が model フィールドも含め上流が返したものと完全に同じで、Relay が何も変えていないこと。
- Enclave が公開ソースからビルドされたイメージを実行していること(PCR0 は再現可能)。
分からないこと
- 機密性:Relay は転送中も平文を扱います。
- 証明の付かないレスポンス(形式変換されたリクエストや画像生成など)。
- バイト単位で同一のリクエスト間での古いレスポンスのリプレイ。
よくある質問
貼り付けたレスポンスはどこかにアップロードされますか?
いいえ。検証ツールはフロントエンドだけのページで、ブラウザ組み込みの WebCrypto で署名を確認し、ネットワークリクエストは送信しません。ブラウザの開発者ツールのネットワークタブで確認することも、検証ツールを保存してオフラインで使うこともできます。
AI API の Relay は合法ですか?
あなたと Relay が拠点とする地域の法律や、上流プロバイダーの利用規約によって異なり、地域やプロバイダーごとに違います。このページは法的助言ではありません。利用前に上流の規約と現地のルールを確認してください。機密データや規制対象のデータを扱う場合は特に重要です。このツールが答えるのは技術的に確認できる 1 つの問いだけです:受け取ったレスポンスが公式上流のオリジナルかどうか。
Relay が「性能を落とした」モデルを提供しているかどうかは、どう見分けられますか?
Relay 経由でモデルの性能が落ちたと感じる原因は、たいてい次のいずれかです:より安いモデルへの無断すり替え、会話履歴の切り詰め、出力上限の引き下げ、thinking の無効化。証明付きのレスポンスなら 1 つ目を除外できます。署名は上流のオリジナルのバイト列を対象にしているため、model フィールドは公式 API から来たものです。切り詰めやパラメーターの変更はリクエスト側で起きるため、レスポンスの証明では対象外です。その場合は上の長いコンテキストとトークン数のチェックが役立ちます。
Claude のミラーサイトと公式サイトの違いは何ですか?
公式の製品は claude.ai と Anthropic API です。ミラーサイトは第三者が運営するチャットページで、公式 API、共有アカウント、または別ベンダーのモデルを使っている場合があり、機能やプライバシーポリシーもそれぞれ異なります。ユーザーはたいていどれなのか判断できません。Claude Code や Cursor などのツールから API を使っている場合は API の Relay の問題であり、確認方法は同じです:自分で検証できる上流の証明を出せるかどうか。
レスポンスに tee.proof がない場合は?
キーの「公式検証」がオンになっているか、そのまま転送されるルート(Claude Messages または GPT Responses)を呼び出しているかを確認してください。Chat Completions 経由の Claude のような形式変換されたリクエストには証明が付きません。Enclave が一時的に利用できない場合はリクエストがフォールバックし、そのレスポンスにも証明は付きません。証明のないレスポンスはすべて未証明として扱ってください。
このツールでほかの Relay も検証できますか?
検証ツールが確認できるのは Proof-of-Observation の証明が付いたレスポンスだけです。プロトコルはオープンソースで、どの Relay でも実装できます。実装していない Relay には上の間接的なチェックしか使えず、最良の結果でも「不審な点は見つからなかった」です。