目的と仕組みを解説
謎のゆがみ文字列「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
-
事例
[Datadog Japan合同会社] Wantedlyのオブザーバビリティはどう進化したか 10年の軌跡と実装の変遷 -
事例
[Datadog Japan合同会社] エラー検知から原因調査までを最短5分で、日経新聞に学ぶアプリ監視の改善方法 -
製品資料
[Datadog Japan合同会社] クラウドのコストと利用状況を可視化&最適化、「Datadog」の実力とは? -
事例
[Datadog Japan合同会社] クラウド移行で見えた監視の死角、SBI証券が選んだ統合オブザーバビリティ実践 -
製品資料
[NTTPCコミュニケーションズ株式会社] リソースに限りのある中堅企業で「多層防御」の運用負荷をどう乗り越える?
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
ITエンジニア1265人調査 生成AIを使い込むほど「人の確認」が重い理由
-
2
Microsoft製品でここまで自動化できる 情シスがやめられる手作業10選
-
3
全社標準Copilotに絶望? MS Copilotで問い合わせ6割減できた企業は何が違った
-
4
脱VMwareの前提が崩れる BroadcomのVDDK公開停止で確認すべき点
-
5
「Microsoft一択」で本当にいいのか 知らぬ間にライセンス費用が膨らむ真相
-
6
AIエージェントを暴走させない設定、済んでますか? 対策5選を専門家が紹介
-
7
「Copilot」はなぜ放置される? “議事録要約止まり”を脱する処方箋
-
8
ルーブル美術館も被害に “ありふれた手口”で巨額ハッキングが成功する理由
-
9
機械学習について、正しく説明している文章はどれ?
-
10
コスモ石油、法令申請業務をどうシステム化した? ベテラン頼みの法令判断を解消
ホワイトペーパーランキング PR
-
1
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
2
生成AIで文書活用を進めるには? 効率化と安全性をどう両立する
-
3
インシデント対応工数を約3割削減、東京ガスの事例に学ぶ監視体制刷新のコツ
-
4
Windows PCとMacの選択制で生産性向上 LINEヤフーが実践する運用管理方法とは
-
5
少額減価償却資産が40万円未満へ拡大、令和8年度税制改正で押さえるべき変更点
-
6
「Google Workspace」活用事例34選、先進の生成AIによる組織変革の全貌
-
7
国税庁の次世代基幹システム「KSK2」稼働開始に向けて、対応すべき変更点とは?
-
8
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
9
Linuxのスキルを証明する“激推し”の認定資格はこれだ
-
10
AI時代に成功するための「ナレッジマネジメント」ベストプラクティス
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー