目的と仕組みを解説
謎のゆがみ文字列「CAPTCHA」はどのようにして生身の人を見分けるのか
「CAPTCHA」はbotと本物のユーザーを区別し、スパム業者にフォーラムサイトやブログのコメント欄を乗っ取られるのを防ぐ手助けをする。その仕組みを簡潔に解説しよう。
ブログや検索サイトでダイアログボックスに画像が表示され、本人または正規の訪問者であることを証明するために、画像内の文字列を判読して入力しなければいけない場面に出くわしたことはないだろうか。このときに用いられるのが「CAPTCHA」だ。「Completely Automated Public Turing Test to Tell Computers and Humans Apart」の頭字語で、「コンピュータと人を区別するための、完全に自動化された公開チューリングテスト」を意味する。「チューリングテスト」とは、プログラムが「知的であるかどうか」を判別するテストのことだ。
CAPTCHAでは通常、ゆがんだあるいは多色の背景に、ゆがんだ文字列を配置した画像を用いる(図)。その画像を基にユーザーに文字列を入力してもらい、そのユーザーが生身の人がどうかを判断する。他にも、以下のようなさまざまなタイプのCAPTCHAがある。
- 特定の写真を見つけてもらう
- 簡単な算数の問題に答えてもらう
- 断片的な音に反応してもらう
- 「I'm not a robot」(私はロボットではありません)というチェックボックスにチェックを入れてもらう
なぜCAPTCHAが有効に機能するのか。人とコンピュータでは、文字列を処理する方法が異なるためだ。それはどういうことなのか。
CAPTCHAの仕組み
名前の中の「P」(Public)が意味するように、CAPTCHAが利用するアルゴリズムは公開されている。CAPTCHAは1996年ごろにさまざまな形で開発されたが、カーネギーメロン大学(Carnegie Mellon University)とIBMの研究者がその名前を付けたのは2000年のことだ。この公開アルゴリズムは画像内のランダムな文字列と数字を生成するためだけに使われる。従ってアルゴリズムが破られても、CAPTCHA自体がすぐに破られるわけではない。
最も重要なCAPTCHAの意義は、スパム広告業者が詐欺メッセージをWebサイトのコメントとして投稿し、拡散するのを防ぐことだ。Webサイト管理者は、全てのユーザーにCAPTCHAを要求することで、大量のメッセージを自動投稿しようとするスパム業者を締め出すことができる。
CAPTCHAはWebサイトにアクセスしているユーザーが生身の人であるかどうかを判断する。加えてスパム業者やbotがメールアドレスを自動的に収集しようとしたり、Webサイト、ブログ、フォーラムサイトに自動で登録しようとしたりするのをブロックする。CAPTCHAがこうした自動化システムをブロックできるのは、自動化システムが画像内のゆがんだ文字を「読めない」からだ。
「チャレンジレスポンス認証」は、認証サーバがクライアントに対してランダム生成した質問を投げると同時に、想定される応答を用意し、クライアントからの応答と一致する場合は認証するという仕組みを持つ。CAPTCHAは、このチャレンジレスポンス認証の一種だ。このときの質問として、人にとっては簡単に答えられるものの、自動化システムにとっては難しい質問を生成する。アクセスしようとしているのが生身の人であり、自動化システムではないことを認証するのに有効なのはこのためだ。
CAPTCHAの質問は、人工知能(AI)技術を使って答えようとする攻撃を阻止できる程度に難しく、人が答えられる程度に簡単でなければならない。問題は、文字がゆがみすぎていて、視覚障害者はもとより、視覚健常者も認識できない場合があることだ。Webサイトのアクセシビリティーに関する国や地域の規制によっては、コンプライアンス(法令順守)上の問題になる恐れがある。
開発者はCAPTCHAの改良を進めているが、攻撃者もCAPTCHAを破るために新しい脆弱(ぜいじゃく)性や戦術に注目している。2015年には、Googleのデジタルコンテンツストア「Google Playストア」で提供されている「Android」向けアプリケーションの中に、CAPTCHAを回避するマルウェアが混入していたことが見つかっている。
2019年初めにはセキュリティ研究者が、CAPTCHAの強化を目指す「reCAPTCHA」の音声フレーズによる認証を破る「unCAPTCHA」という手法を報告した。別のセキュリティ研究者も、「ReBreakCaptchaという手法でreCAPTCHAを突破できたという。
どんな場合にCAPTCHAを使用するか
CAPTCHAは、ログインしていないユーザーからの入力を受け付けるWebページで使用する。正規ユーザーとして認証を受ける必要がないフォーラムサイトやブログのコメント欄において、認証されていないユーザーが迷惑メッセージを投稿するのを防ぐ。
CAPTCHAを実装するには、「PHP」などのWebスクリプト言語について一定の知識が必要だ。CAPTCHAに関する詳しい情報を得るには、reCAPTCHAの開発者ガイドをチェックするとよい。
Copyright © ITmedia, Inc. All Rights Reserved.
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
2
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
3
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
4
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
5
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
6
「IBM iはDXのボトルネック」は誤解 意外と知らない今風モダナイズの効果
-
7
「朝8時にバッチが終わらない」データ爆発の危機をJPX総研はどう乗り越えたか
-
8
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
9
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
-
10
AI導入後に発覚する「社内文書を読めない」問題 情シスは何を直せばいい?
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
プログラミング不要で誰でも実現できる、ネットワーク運用管理の自動化とは
-
5
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
6
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
9
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
10
“あのファイル転送”で暗躍するノーウェアランサム
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー