CAPTCHA きゃぷちゃ
ボット対策自動化攻撃人間確認reCAPTCHAチューリングテストスパム対策
CAPTCHAって何のためにあるの?
簡単に言うとこんな感じ!
「あなたは人間ですか?ロボットじゃないですよね?」って確認するための仕組みだよ!ゆがんだ文字を読んだり、信号機の写真を選んだりするアレ。コンピューターが自動でクリックしまくるのを防ぐための”人間チェック”なんだ!
CAPTCHAとは
CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)は、「コンピューターと人間を自動的に区別するための完全自動化された公開チューリングテスト」の略称です。Webフォームの送信やアカウント登録などの操作を、人間だけに許可してボット(自動化プログラム)を排除するための認証技術です。
具体的には、「ゆがんだ文字を読んで入力してください」「信号機が含まれる画像をすべて選んでください」といった課題を提示し、人間なら解けるがコンピューターには難しいタスクを使って自動化攻撃をブロックします。スパム投稿の大量送信、ブルートフォース攻撃(総当たりログイン試行)、チケットの買い占めボットなど、あらゆる自動化された不正アクセス・悪用への防衛策として広く使われています。
CAPTCHAの種類と仕組み
| 種類 | 仕組み | 特徴 |
|---|---|---|
| テキスト型 | ゆがんだ・ノイズ入り文字を読んで入力 | 古典的。視覚障害者には不便 |
| 画像選択型 | 「バスが含まれる画像を選べ」など | Googleの reCAPTCHA v2 が代表例 |
| 音声型 | 音声で読み上げられた文字を入力 | アクセシビリティ対応 |
| チェックボックス型 | 「私はロボットではありません」にチェック | マウス動作などを裏で解析 |
| 行動分析型 | ユーザーの操作パターンをAIで判定 | reCAPTCHA v3・見えないCAPTCHA |
| 数学問題型 | 「3+5は?」などの簡単な計算 | シンプルだがボットも突破しやすい |
語源で覚える!CAPTCHA = チューリングテストの逆
チューリングテストとは「機械が人間と区別できないほど賢ければ知性がある」という概念。CAPTCHAはその逆方向、つまり「これを解けるなら人間だ」という判定。「逆チューリングテスト」と呼ばれることもあります。
reCAPTCHA の進化
v1(2007〜): ゆがんだ文字を入力 → ユーザー負担が大きい
↓
v2(2014〜): 「私はロボットではありません」チェックボックス
+ 怪しければ画像選択チャレンジ
↓
v3(2018〜): チャレンジなし。行動スコア(0.0〜1.0)で判定
スコアが低いと追加認証を要求
歴史と背景
- 1997年 — AltaVistaがスパムボット対策に「ゆがんだ文字認証」を実験的に導入
- 2000年 — カーネギーメロン大学のルイス・フォン・アン氏らが「CAPTCHA」という名称と概念を体系化
- 2007年 — Googleが reCAPTCHA を買収。文字認識で書籍のデジタル化にも活用するという逆転の発想を実現
- 2008年〜 — OCR技術の進歩でテキスト型CAPTCHAのボット突破率が急上昇。画像認識型へ移行
- 2014年 — reCAPTCHA v2「私はロボットではありません」登場。UXを大幅改善
- 2018年 — reCAPTCHA v3 登場。スコアリングによる透明なボット検出へ
- 2020年代〜 — AI(深層学習)によるCAPTCHA突破が高精度化し、行動分析・デバイスフィンガープリントなど複合的な対策へ進化
CAPTCHAと攻撃手法・対策技術の関係
CAPTCHAはボット攻撃全般への防御ですが、攻撃側も進化しています。
CAPTCHA突破への対抗手段(現在の主流)
| 課題 | 対策 |
|---|---|
| AI・深層学習による画像認識突破 | 行動分析型(v3)への移行 |
| 人間を雇ったCAPTCHA解読サービス | レート制限・IP評判スコアの併用 |
| UXの悪化(ユーザー離脱) | 不可視CAPTCHA・リスクベース認証 |
| アクセシビリティの問題 | 音声CAPTCHA・代替手段の提供 |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 9116 | security.txtの標準化(Webセキュリティ連絡先の定義) |
関連用語
- ./310-bot.md — 自動化プログラム。CAPTCHAが防ぐ主な対象
- ./311-brute-force-attack.md — 総当たり攻撃。CAPTCHAでログイン試行を制限する
- ./312-spam.md — 迷惑メール・大量投稿。CAPTCHA導入の主な動機の一つ
- ./315-mfa.md — 多要素認証。CAPTCHAと組み合わせて強度を高める
- ./316-rate-limiting.md — レート制限。CAPTCHAと併用してボット対策を強化
- ./320-turing-test.md — チューリングテスト。CAPTCHAの理論的な元となった概念
- ./321-recaptcha.md — Googleが提供するCAPTCHAサービス。最も普及した実装
- ./322-waf.md — Webアプリケーションファイアウォール。CAPTCHAと組み合わせるWebセキュリティ技術