目的と仕組みを解説
謎のゆがみ文字列「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.
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
4
221人調査で分かった「情シス最大のストレス」は?
-
5
「データストレージの活用方法」に関するアンケート
-
6
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
7
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
-
8
本当に安いPCで十分か? “すぐ重くなる”を防ぐノートPC選びの絶対条件
-
9
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
10
Claudeの不可視透かしに批判殺到 著作権消失や誤判定に潜む企業リスク
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー