CAPTCHA
約 5 分で読めます
最終更新: 2026-09-01
CAPTCHA とは
CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) とは、アクセスしているのが人間かボットかを判別するためのテストです。2000 年にカーネギーメロン大学の Luis von Ahn らが提唱した概念で、Web フォームのスパム送信、ブルートフォース攻撃によるアカウント乗っ取り、チケット買い占めボットなどを防ぐ目的で広く導入されています。
初期の CAPTCHA は歪んだ文字列を読み取らせる方式でしたが、文字認識の精度が上がるにつれて「人間にしか読めない」という前提が成り立たなくなりました。2026 年時点で主流なのは、常にチャレンジを出す代わりにアクセスのリスクを推定し、疑わしい場合だけ追加の確認を求める方式です。
reCAPTCHA の進化 - v1 から v3 へ
Google が提供する reCAPTCHA は、CAPTCHA の代表的な実装です。そのバージョンごとの変遷は、ボット対策技術がどこで行き詰まり、どこへ逃げたかをそのままたどっています。
reCAPTCHA v2 の画像チャレンジで信号機や横断歩道を選ばせるのは Google の自動運転向けの学習データ集めだ、という説は広く流通していますが、これを裏づける一次資料には行き当たりません。確実に言えるのは、v1 が書籍のデジタル化と結びついていたのと同じように、ユーザーの回答が画像のラベルとして蓄積される構造だという点までで、その用途は公開されていません。
CAPTCHA の技術的な仕組み
CAPTCHA がボットと人間を区別する手法は、大きく 3 つのアプローチに分類できます。
- チャレンジベース: 歪んだ文字の入力、画像の分類、パズルのスライドなど、人間には容易だがボットには困難なタスクを課す方式。ユーザーへの負担が大きく、離脱率を上げるデメリットがある。
- 行動分析ベース: ユーザーに課題を出す代わりに、サイト上での操作の様子からリスクを推定し、疑わしい場合だけ追加の確認を求める方式。reCAPTCHA v3 がこのアプローチを採用。ユーザーは多くの場合 CAPTCHA の存在を意識しないが、何をシグナルとして使っているかは各サービスが公開していない。
- Proof of Work: ブラウザに軽量な計算タスクを解かせ、ボットによる大量リクエストのコストを引き上げる方式。Cloudflare は Turnstile について、proof of work や proof of space、Web API の有無の検査といった非対話のチャレンジを組み合わせると説明している。1 回あたりの負荷は小さくても、数千・数万のリクエストを送る側には累積する。
実際の CAPTCHA は単一の手法に依存せず、複数の判断材料を組み合わせてリスクを推定します。その内訳は各サービスが公開していませんが、アクセス元の IP アドレスや、ブラウザフィンガープリントとして読み取れるブラウザ環境の情報は、仕組み上サーバー側へ渡ります。
アクセシビリティの課題
CAPTCHA は「人間であること」を証明させる仕組みですが、すべての人間が同じ方法で証明できるわけではありません。視覚障害者は画像選択チャレンジを完了できず、聴覚障害者は音声 CAPTCHA を利用できません。運動障害のあるユーザーはマウス操作やタッチ操作が困難な場合があります。
W3C の Web Content Accessibility Guidelines (WCAG) は、CAPTCHA を使う場合に、その目的を説明するテキストと、異なる感覚 (視覚・聴覚など) に対応した代替形式を用意することを求めています。reCAPTCHA v2 は音声チャレンジを代替として提供していますが、音声認識の精度向上により音声 CAPTCHA も突破されやすくなっています。
reCAPTCHA v3 や Cloudflare Turnstile のような「見えない CAPTCHA」は、ユーザーに操作を求めないため、チャレンジそのものによる障壁を避けられます。ただし操作の様子から判定する以上、スクリーンリーダーやキーボードのみで操作するユーザーが「ボット的」と誤判定されるリスクは残ります。
AI による突破と CAPTCHA の将来
CAPTCHA は本質的に「AI にはできないが人間にはできるタスク」を前提としていますが、AI の能力向上によりこの前提が崩れつつあります。
- 画像認識 AI: 信号機や横断歩道を選ぶ課題は、汎用の物体検出モデルが日常的に扱っている処理そのものであり、画像分類を「人間にしかできないタスク」として設計する前提が崩れている。
- CAPTCHA 解決サービス: 人手で CAPTCHA を解く「CAPTCHA ファーム」や、機械処理と人手を組み合わせた解決サービスが存在する。1 件あたりの単価は攻撃全体の費用に埋もれる水準で、ボットネット運用者にとって障壁になりにくい。
- ブラウザ自動化ツール: Puppeteer や Playwright などのブラウザ自動化フレームワークは、実際のブラウザを動かして人間の操作をなぞることができる。操作の様子を見る方式でも、見分けは容易ではない。
CAPTCHA 単体での防御には限界があるため、WAF によるレート制限、デバイス認証、パスキーによる本人確認など、複数の防御層を組み合わせる形が現実的です。CAPTCHA を出さずに済ませる方向の標準化も進んでおり、端末やアカウントの正当性をトークンで示す仕組み (Privacy Pass) は 2024 年 6 月に RFC 9576 として公開されました。CAPTCHA は「ボットを完全に排除する」ツールから「ボットのコストを引き上げる」ツールへと役割が変わってきています。
よくある誤解
- CAPTCHA を導入すればボットを完全に防げる
- CAPTCHA 解決サービスや AI による突破手段が存在するため、CAPTCHA だけでボットを完全に排除することはできません。CAPTCHA はボットの攻撃コストを引き上げる手段の一つであり、レート制限、IP レピュテーション、WAF など他の防御策と組み合わせて初めて効果を発揮します。
- 画像選択 CAPTCHA で選ぶ画像は正解が 1 つだけ
- reCAPTCHA v2 の画像チャレンジには「明確な正解」と「グレーゾーン」の画像が混在しています。信号機の柱だけが写った画像を選ぶべきかどうかなど、人間でも判断が分かれるケースがあり、境界的な画像の選び方が多少違っても通ることがあります。どこまでを正解として扱っているかは公開されていません。
- CAPTCHA が表示されるのは怪しいアクセスだけ
- どのような場合にチャレンジが表示されるかは公開されておらず、ボットの疑いだけが条件とは限りません。実際には VPN やプロキシ経由のアクセスや、ふだんと違う環境からのアクセスでも表示されることがあり、正当なユーザーが繰り返し CAPTCHA を求められるのは珍しくありません。