メニュー

ホーム

すべてのページ

外観

位置:🇺🇸 アメリカ合衆国
メインサイト gistwillan.top
ブログに戻る
摩擦設計 · 約 4 分

CAPTCHA はセキュリティ対策ではなく、コストの配分である

チャレンジの代償を誰が払うのか、誤検知が最も失いたくない利用者に偏る理由、代わりに導入すべきもの。

キーボードのクローズアップ
Alexander-design · CC0 Wikimedia Commons

チャレンジはすべて取引です。利用者の時間と忍耐をいくらか支払い、濫用の減少を買います。その取引が良いかどうかは、コストがどう配分されるかに完全に依存します。そして既定では、「普通に見えない」人に配分されます。それは攻撃している人であることはほとんどありません。

遮断された割合と、一緒に遮断された実利用者
2 つの数字はセットで見ます。前者だけなら、どんなチャレンジも成功に見えます。

1. 誰が払うのか

CAPTCHA は到達した全員に、試行ごとに数秒と多少の苛立ちを課します。最も重くのしかかるのは、スクリーンリーダーを使う人、回線が遅い人、運動機能に制約のある人、画像の言語が母語でない人、VPN の背後や既にリスクエンジンに疑われている共有アドレスにいる人です。割合としては小さく、しかし技術的に最も熱心な利用者の中で不釣り合いに多い層です。

2. 誤検知が偏る理由

リスクスコアは、端の標本を除いた分布で訓練された分類器です。企業 VPN を使う人、指紋のランダム化を積極的に行うプライバシー重視のブラウザ、数千人が 1 つのアドレスを共有する携帯網の端末。いずれも統計的には奇妙に見えます。固定しきい値でチャレンジが発火するなら、まさにその人たちに常時発火し、彼らにとってあなたのサイトは「壊れている」ものになります。

3. 誰も予算に入れない第三者コスト

reCAPTCHA の追加はプライバシー面で無料ではありません。ウィジェットが読み込まれるすべてのページで、すべての訪問者から Google への要求が発生し、別のプロファイルに情報が積まれます。「何が収集されているかが見える」ことを売りにするサイトにとって、この矛盾は信頼の面で高くつきます。一部の法域では法的論点にもなり、個人データを越境移転するチャレンジには、持っていないかもしれない根拠が必要です。

4. その手前に置くもの

  • 本当のキーによるレート制限。IP 単位は簡単ですが単独では誤りです。アカウント、セッション、プレフィックス単位の制限は、IP 制限が取りこぼす分散型の濫用を捕まえ、CGNAT 共有アドレスを罰するのをやめられます。
  • プルーフ・オブ・ワーク。小さな JavaScript パズルは攻撃者の試行ごとに実際の CPU を消費し、正当な利用者には数百ミリ秒を要求します。人間であることの証明を求めずに、量の値段を上げます。
  • 一律ではなくリスクベースのチャレンジ。スコア、速度、対象の操作が正当化するときだけ挑み、読み取りでは決して出しません。
  • 利用者が既に持っている第二要素。アカウント操作なら、メール確認やパスキーのほうが安全かつ低摩擦です。
  • ホスト型が必要なら Turnstile か hCaptcha。多くの訪問者には非対話ですが、トークンはサーバー側で検証し操作に結び付けてください。さもないと第三者スクリプトを無駄に足しただけです。

5. 遮断量ではなく取引を測る

多くのチームは止めた濫用の量を報告し、チャレンジのコストを測りません。計測してください。フォームごとの完了率、入力開始から送信までの時間、チャレンジ段階での離脱、認証に言及したサポート件数。自動試行の 90% を止めつつ正当な登録の 8% を失うチャレンジは、通常は悪い取引です。2 つ目の数値がなければ、そのことに気づけません。

6. 居心地の悪い原則

チャレンジなしで読めるページなら、チャレンジを付けるべきではありません。摩擦は攻撃者に価値のある操作に置きます。アカウント作成、パスワード再設定、決済、外へメッセージを送る操作です。閲覧はそのままにします。そして濫用がいくらか通ることを受け入れます。代替案は、何も悪いことをしていない利用者に勘定を回すことです。

ipbox.one の存在意義の一部は、その取引を可視化することです。リスクエンジンがあなたの接続について使う信号を示します。「なぜチャレンジされるのか」の答えは、たいていそこにあります。

関連記事