目的と仕組みを解説
謎のゆがみ文字列「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
-
事例
[フォーティネットジャパン合同会社] 複雑化しがちな「SASE運用」 IT・医療・金融などの事例に見る導入成功の秘訣 -
製品資料
[フォーティネットジャパン合同会社] 「SD-WAN」導入で失敗しないための5つの重要事項 -
技術文書・技術解説
[フォーティネットジャパン合同会社] VPNの代替候補「ZTNA」を理解できるようになる“3大要素”とは? -
事例
[フォーティネットジャパン合同会社] すぐ分かる「SD-WAN」選定のポイント 成功企業はどんな成果を出した? -
製品資料
[SCSK株式会社] 「Dropbox」管理・運用の困りごと解決ガイド
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
半数がブルーカラー転向を視野に? ベテランエンジニアを追い込む“54歳の壁”
-
2
PHP脆弱性「PHP2Shell」で2260万件に影響 情シスの緊急チェックリスト
-
3
みずほ証券が「液冷サーバ」を採用 1日3.6億件の計算を支えるための要件
-
4
Microsoft月例パッチ1400件超で過去最多 「限界点」を迎えたパッチ管理
-
5
被害額は過去最高額 それでも「サイバー犯罪者が捕まらない」3つの理由
-
6
米国防総省で300万人分の個人情報が流出 その「意外な原因」と教訓
-
7
いまIBM iエンジニアが直面する「5つの技術的課題」とその解決策
-
8
Microsoft 365の「テナント統合・分離」問題 手戻りのない道を選ぶ秘訣とは?
-
9
AI時代のITインフラ戦略とは? 販売代理店が知っておきたい最新トレンド
-
10
巨大組織の「アジャイル」を加速させる オリックス生命が選んだ、開発状況を見える化する戦略的ツールとは?
ホワイトペーパーランキング PR
-
1
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
2
2026年のサイバーセキュリティには何が必要か? 最新データに学ぶ傾向と対策
-
3
経験豊富な即戦力人材に直接アプローチできる、「攻めの採用」への転換術
-
4
「IT史に名を残すシステム障害」8選
-
5
最速72分でデータが流出? 最新の脅威トレンドや侵入手法から分かった防衛策
-
6
AI駆動開発のスピードと安全性を両立 「品質・セキュリティ管理」の実践ガイド
-
7
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
8
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
-
9
「標的型攻撃メール」事例・サンプル集
-
10
Microsoft 365のメールセキュリティ、3つの“死角”と追加で検討すべき対策とは
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー