三層の防御、四つの面、どのボットも勝てない
認証は Caputchin の核です。ゲートは連携して働き、面はそれをあなたのスタックに差し込むための入り口です。標準の経路はウィジェットと、バックエンドからの verify 呼び出し。ほかの面は、標準が合わないときのために用意されています。
認証がどう流れるか。
訪問者があなたのページを開きます。ウィジェットがゲートを動かします。署名付きトークンがバックエンドへ渡ります。バックエンドが私たちにその確認を求めます。
- 訪問者あなたのページを開く
- Caputchin ウィジェットあなたのページで読み込まれる
- ゲーム由来のアンチチートサンドボックス化された iframe で動く
- あなたのバックエンド包まれたトークンを受け取る
- /siteverifyCaputchin がトークンを確認する
各層は、それぞれ異なる攻撃のコストを上げます。
どの単一の層も、一つであらゆる攻撃を退けようとはしていません。要は組み合わせです。リクエストがゲームに届くころには、その手前のすべてのゲートの税をすでに払い終えています。下に正直な見取り図を。
| 攻撃パターン | Proof of work | ブラウザ計測 | ゲーム由来のアンチチート |
|---|---|---|---|
curl と fetch のスクリプトむき出しの HTTP スクリプトが、あなたのエンドポイントを直接叩く。 | この攻撃に対処 | ||
ヘッドレスブラウザPuppeteer、Playwright、Selenium がバックグラウンドで動く。 | この攻撃に対処 | ||
本物のブラウザを使うボットファーム借りたサーバー上の本物の Chrome インスタンス。時には人が操作することも。 | この攻撃に対処 | この攻撃に対処 | |
ソルバー・アズ・ア・サービスチャレンジを受け取って答えを返す有料の解答ファーム。多くは安価な人手による。 | この攻撃に対処 | この攻撃に対処 | |
フロンティア AI モデル画像グリッドを読み、OCR パズルを解き、旧来の CAPTCHA をミリ秒で突破する、視覚モデルやエージェントモデル。 | この攻撃に対処 |
- curl と fetch のスクリプトむき出しの HTTP スクリプトが、あなたのエンドポイントを直接叩く。対処する層
- ブラウザ計測
- ヘッドレスブラウザPuppeteer、Playwright、Selenium がバックグラウンドで動く。対処する層
- ブラウザ計測
- 本物のブラウザを使うボットファーム借りたサーバー上の本物の Chrome インスタンス。時には人が操作することも。対処する層
- Proof of work
- ゲーム由来のアンチチート
- ソルバー・アズ・ア・サービスチャレンジを受け取って答えを返す有料の解答ファーム。多くは安価な人手による。対処する層
- Proof of work
- ゲーム由来のアンチチート
- フロンティア AI モデル画像グリッドを読み、OCR パズルを解き、旧来の CAPTCHA をミリ秒で突破する、視覚モデルやエージェントモデル。対処する層
- ゲーム由来のアンチチート
ただのゲームではありません。検証エンジンです。
人が数秒で遊んで楽しめる、小さく多彩なゲーム。その下では、競技性のあるマルチプレイヤーゲームがチーターを捕まえるのに使うのと同じアンチチートの定石が動いています。私たちのサーバーが、あなたが遊ぶ前にラウンドを毎回お膳立てし(サーバー権威)、遊んだあとに再シミュレーションします(決定論的リプレイ)。だからゲームは偽装できず、ただ遊ぶことしかできません。ほかのどの CAPTCHA も持たない層であり、Caputchin が存在する理由です。
サーバー権威の設定
- 署名付きの使い捨てチケット(30 分の有効期間)がラウンドを発行します。一度使えば、二度と再生できません。
- ゲームとその乱数シードは私たちのサーバーで選ばれ、ブラウザでは決して選ばれません。だからクライアント側の何かが、より易しい標的を選ぶことはできません。
- 毎回、プールから違うゲーム。ソルバーはどれに当たるか決して分からないので、事前学習ができません。
競技ゲームのサーバーと同じモデル:クライアントが送るのは入力だけで、判定は決して送りません。
決定論的リプレイ
- あなたの正確な入力が、同じシードのもとで私たちのサーバー上で再生されます。ネットワークのない密閉された isolate の中で、厳しい時間予算とともに。
- 合否はそのリプレイが再計算します。ブラウザから受け取ることは決してありません。
- どのゲームのコードも、動く前にハッシュで照合されます。だから成果物を、あなたの足元ですり替えることはできません。
ロックステップのマルチプレイヤーが頼るのと同じ決定論の上に築かれています:ラウンドはシードから再シミュレーションされ、本当に遊ばれたことを確かめます。
あなたのページの中でサンドボックス化
ネットワークのない隔離された iframe。あなたの Cookie、ストレージ、DOM には手が届きません。
ゲームの多様さ
サイトが違えばゲームも違い、カタログは育ち続けます。
密閉されたリプレイ
リプレイはネットワークなし、厳しい CPU 予算で動きます。何も入らず、何も出ません。
改ざんできないコード
どのゲーム成果物も、フレーム一つが動く前にハッシュで検証されます。
プロファイリングなし
あなたのマウスやタイミングを見張ったりはしません。代わりに、ラウンドを再実行します。
さらに二つのゲートを、隣に積み重ねる
ゲーム由来のアンチチートは、決して単独では働きません。proof of work のゲートとブラウザ計測がともに動き、それぞれ異なる攻撃パターンのコストを上げます。直列に組み合わさり、攻撃者がたどり着く層はどれも、すでに税を払い終えています。
連携の入り口
認証を訪問者の前に置く、四つの方法。あなたのコード、スタック、チームの形に合うものを選んでください。