San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
閉じる
プライバシー設定
ウェブサイト運営に必要なCookieや類似技術を使用しています。追加のCookieは貴社の同意がある場合のみ利用されます。同意は「Agree」をクリックすることでいただけます。どのデータが収集され、どのようにパートナーと共有されているかの詳細は、Cookieポリシープライバシーポリシーをご確認ください。
Cookieは、貴社デバイスの特性や、IPアドレス、閲覧履歴、位置情報、固有識別子などの特定の個人情報を取得、解析、保存するために使用されます。これらのデータは様々な目的で利用されます。分析Cookieによりパフォーマンスを評価し、オンライン体験やキャンペーンの効果向上に役立てます。パーソナライズCookieは、利用状況に応じた情報やサポートを通じ、貴社専用の体験を提供します。広告Cookieは、第三者が貴社のデータをもとにオーディエンスリストを作成し、ソーシャルメディアやネット上でのターゲット広告に使用します。貴社は各ページ下部のリンクから、いつでも同意の許可、拒否、または撤回が可能です。
ご送信ありがとうございます。内容を受け付けました。
申し訳ありません。フォーム送信時にエラーが発生しました。
/
/
Attacks, Vulnerabilities

CAPTCHAとは?仕組みはどうなっているか?

これは、サービスやデータへアクセスしようとする利用者が実際にボットかどうかを判断するためのCAPTCHAです。こうしたテストは悪意あるボットの行動を阻止するのに役立ちますが、完全に安全というわけではありません。

著者
CAPTCHAとは?仕組みはどうなっているか?

CAPTCHAの概要

CAPTCHAテストは、インターネット利用者が人間かボットかを判断するために使われます。CAPTCHAは "Completely Automated Public Turing Test to Distinguish Robots from People" の略です。インターネット上では、CAPTCHAやreCAPTCHAのテストがよく見られます。こうしたテストはボットの動向を把握する一手段ですが、欠点も存在します。

CAPTCHAは自動化されたボットを阻止するために設計されていますが、実は自動生成される仕組み自体も持っています。特定の場所で表示され、利用者が正解を入力するか失敗するかが決まります。

CAPTCHAとは

CAPTCHAの歴史

CAPTCHAがいつ、どのように誕生したのかを見ていきます。驚くことに、インターネットが発展途上で、検索エンジンが今ほど発達していなかった時代にさかのぼります。

1997年頃、当時初期の検索エンジンであったAltaVistaは、自動生成されるURLが多く、サイトのランキングに悪影響を及ぼしていました。

この問題を解決するため、当時のAltaVistaの主任科学者Andrei Broderは、後にCAPTCHAとして有名になるアルゴリズムを考案しました。このアルゴリズムは、サイトに自動生成されたランダムな画像と印字された文字を表示するものでした。

この仕組みは、もしこれらの自動生成URLがボットやコンピュータによるものであれば、画像を認識できずサイトにアクセスできなくなるという仮説に基づいています。人間は画像を容易に識別できるため、問題なくサイトにアクセスできます。

Broderとそのチームはこのアルゴリズムの改良に努め、2001年に特許を取得しました。しかし、彼らの努力にもかかわらず、さらなる改善の余地が残され、2003年に別の科学者チームへと引き継がれました。

このチームには、Nicholas J. Hopper、Luis von Ahn、J. Langford、M. Blumが参加しており、彼らはIBMやCarnegie Mellon Universityといった有名組織のトップ人材でした。

チームはこのアルゴリズムを正式にCAPTCHAと命名し、Completely Automated Public Turing Testの略としました。その目的は、人間とコンピュータを区別することにありました。

このアルゴリズムの核心は、AIを用いてコンピュータがどの程度人間の知能に近いかを判断する点にあります。CAPTCHAの重要な要素であるTuringテストは、有名な科学者Alan Turingによって提唱されました。

2016年、コンピュータサイエンスの教授Jason PolakisはCAPTCHAの難易度に着目し、そのアルゴリズムがあまりにも複雑で、人間でも画像を正しく認識できない場合があると明らかにしました。これにより、ボットやコンピュータの突破がさらに困難となり、望ましくないサイトアクセスの抑制手段として有効とされています。

CAPTCHAはどう機能するか

現在も利用されているCAPTCHAの例では、文字が歪められて表示されます。これはボットが文字を記憶できないようにするためです。利用者は歪んだ文字を読み取り、正しい文字列を指定の欄に入力して送信します。不正解の場合は再試行が求められます。こうしたテストはログインシステム、アカウント情報更新、オンラインアンケート、eコマースのチェックアウトページなどで一般的に使用されています。

基本的な考えは、ボットのようなコンピュータプログラムは歪んだ文字を解読するのが苦手である一方、さまざまな書体や筆記スタイルに慣れている人間なら容易に認識できるというものです。

各種ボットの場合、不規則な文字列を入力するだけで済むため、テストをクリアするのは困難となります。このように、ボットはテストに失敗し、サイトやアプリへのアクセスが阻まれる一方、人間は通常通り利用できます。

高度なボットはAIを利用して歪んだ文字を認識するため、従来のCAPTCHAはより複雑な手法に置き換えられつつあります。Google reCAPTCHAは、ボットと人間を識別するために様々なテストを導入しています。

CAPTCHA登場以降、AIを活用するボットが作られるようになりました。従来の文字認識CAPTCHAはこれらのボットにとって突破されやすいため、最新のCAPTCHA手法ではより厳しいテストが採用されています。例えば、reCAPTCHAは指定の箇所をタップし、確認が完了するまで待つ方式です。

CAPTCHAは何に使われるか

オンラインサービスで利用者の入力が求められる際、CAPTCHAはよく使用されます。例えば、オンラインショップで利用者に商品レビューを投稿してもらう場合、その投稿が実際の顧客や人間のサイト利用者からのものであることを確認する必要があります。さもなければ、多くのスパムコメントの確認に追われ、最悪の場合は不正なアクセスを許す結果となります。

CAPTCHAをサイトに導入することで、利用者がコメントを投稿する前に人間であることを証明させ、こうしたリスクを低減できます。手動の人間確認テストは、多くの場面でボットと人間を区別するために活用され、メール登録、アラート、加盟、ソーシャル連携などの認証システムの強化にも寄与します。

CAPTCHAの利点と欠点

CAPTCHAを利用する利点は以下の通りです:

  • スパムや不正アクセスを効果的に防げる
  • 悪意あるアクセスや不正利用を阻止できる
  • サイトの利用性向上に貢献する
  • 人間にとって理解しやすい

これらの利点は魅力的ですが、CAPTCHAには見逃せない欠点も存在します。以下に主な欠点を挙げます:

  • CAPTCHAは完全なツールではなく、主にスパム対策として有効。その他の用途では限界がある。
  • 解答には時間と労力を要するため、全ての利用者にとって快適とは言えず、サイト訪問の離脱につながる可能性がある。
  • 視覚障害のある利用者には適していない。

CAPTCHAの種類の例

現在、CAPTCHAにはテキスト型、画像型、音声型の3種類があります。

テキスト型CAPTCHA

最も一般的な形式はテキスト型CAPTCHAです。単語や文章、または数字と文字の組み合わせで構成されることが多く、一部のCAPTCHAは大文字と小文字の区別も行います。

これらの文字は独特なスタイルで表示され、認識が困難なように加工されています。サイズが変えられたり、傾けられたり、回転されたり、色や背景の揺れ、線、影、斑点などが付加されるため、人間にとっては読みにくくなります。一方で、ボットが文字認識処理を行うのは難しくなります。

テキスト型CAPTCHAの手法には以下のものがあります:

  • Gimpy

Gimpyは850語のリストからいくつかの単語を選び、独特な形で表示します。

Gimpy CAPTCHA
  • EZ-Gimpy

EZ-Gimpyは、Gimpyのバリエーションで、一語だけを使用します。

EZ-Gimpy CAPTCHA
  • Gimpy-r

この方式は認識しやすい文字を選び、曲げたり装飾したりして背景と組み合わせます。

Gimpy-r CAPTCHA
  • Simard's HIP

この手法は、アルファベットと数字をランダムに選び、曲線や影で変形させます。

Simard's HIP CAPTCHA

画像型CAPTCHA

画像を利用した認証テストは、数字や文字の組み合わせによる煩雑な方法ではなく、識別しやすい視覚要素を用いて作成されます。最終的に、いくつかの一般的な画像が表示され、利用者は最も適切な画像を選ぶか、意味の通るものを示す必要があります。

また、GoogleはGoogle Street View CAPTCHAを利用し、利用者に住所や道路標識の入力を求める場合もあります。

ほとんどの利用者は画像型CAPTCHAをすぐに解答できますが、コンピュータが正しく画像を解析する能力は部分的に制限されているため、画像型CAPTCHAはテキスト型よりも高い安全性を提供します。

画像型CAPTCHA

音声型CAPTCHA

音声型CAPTCHAは、テキスト型や画像型と併用されることが多く、利用者は連続して読み上げられる数字や文字に従って解答します。

ボットは、音声の中から重要な数字や文字を区別することができません。つまり、音声型CAPTCHAもボットにとっては解読が難しいのです。

音声型CAPTCHA

数値または言語問題型

スパムボットを回避するために、数値または言語の問題を用いるCAPTCHAも利用されています。場合によっては、スクリーンリーダーで問題文を確認できるよう工夫されています。

これらの数学的な問題はそれほど複雑ではありませんが、コンピュータには計算が得意であるため、あえて難易度を上げる必要があります。さらに、テキストが付加されることでスクリーンリーダーには解答が困難になる場合もあります。例えば、7×7の答えが49の場合、結果の最初の数字だけを入力するよう求められると、さらに難しくなります。

CAPTCHAは登録プロセスでも利用され、認証や基本情報の確認として用いられます。たとえば、SMF(Simple Machines Forum)の利用時、次のステップに進む前に訪問者が数問の問題に回答する必要があります。

数値または言語問題型

reCAPTCHAとは

従来のCAPTCHAの代替手段として、reCAPTCHAはGoogle提供の無料ツールです。誕生後すぐに、GoogleはCarnegie Mellon Universityの科学者からreCAPTCHAを導入しました。

reCAPTCHAは従来のCAPTCHAよりも高度な仕組みとなっており、テキストが含まれる画像の認証を求める点では従来と似ています。しかし、reCAPTCHAは実際の画像、例えば街中の写真や書籍の文字、歴史的な新聞記事などを利用しています。

reCAPTCHA

その後、GoogleはreCAPTCHAの使い勝手を改善し、従来のような曖昧または破損したコンテンツを表示する手法に依存しない仕組みに刷新しました。reCAPTCHAでは以下の複数の手法が採用されています:

  • 画像認証
  • チェックボックス
  • 利用者の行動検証(利用者情報を使用しない)

CAPTCHAを利用する際の欠点は何か

  • 利用者体験の悪化

CAPTCHAテストは利用者の操作を妨げ、サイトでの体験に悪影響を与え、最悪の場合、サイトの離脱を招く可能性があります。

  • 視覚障害のある利用者には不向き

CAPTCHAは視覚情報に依存しているため、視覚に障害のある方には解答が困難です。

  • ボットによる突破の可能性

上述の通り、CAPTCHAは完全なボット対策ではなく、主要な防御手段として過信するべきではありません。

CAPTCHAはボットを止めるか

CAPTCHAを導入することで、自動スパムを防ぎつつ人間だけがアクセスできるため、サイトへの不要なアクセスが大幅に減少します。コンテンツサイトの管理者は投稿の確認作業が軽減されます。

各CAPTCHA提供者は、AI技術の進歩に対応すべく、テストをより複雑に設計しています。その結果、人間でさえ解答が困難になる場合もあります。

攻撃者はどのようにCAPTCHAを突破するか

現代のサイバー犯罪者やハッカーは非常に高度な技術を持っており、CAPTCHAを突破するのはそれほど難しくありません。多くのハッカーは、機械学習を利用してCAPTCHAのパターンを予測し、ボットが突破できるようにしています。

さらに、深層学習モデルも有力な手段です。大量のCAPTCHAを事前に解答し、パターンを学習することで、解読方法を身につけます。

CAPTCHAの突破方法

上記のCAPTCHA突破技術は高度で専門知識が必要です。一般利用者の場合、どのようにCAPTCHAを回避できるでしょうか?

ブラウザのアドオンを利用すれば、利用者がサイトにアクセスした瞬間にCAPTCHAを自動で回避する方法が存在します。注目すべきアドオンにはRumolaとAntiCaptchaがあります。

WallarmではAntiCaptchaを試し、高度なCAPTCHA解答ソルバーがFirefoxやChromeで自動的にCAPTCHAを検出し解答することを確認しました。これにより、サイト訪問者が自ら解答する必要がなくなります。特に、視覚障害のある方にも有用です。

RumolaはSafari、Chrome、Firefoxで同様に動作し、ブラウザ拡張機能とブックマークレットが提供されています。ただし、サードパーティ製ツールの利用はデータリスクを伴うため、使用するツールのログポリシーを確認し、十分なセキュリティ対策を講じた上で利用することが望ましいです。

TuringテストとCAPTCHA

Turingテストは、コンピュータがどの程度人間の会話を模倣できるかを評価するものです。1950年、計算機科学の先駆者Alan Turingがこのテストを提唱しました。テスト中、コンピュータの応答が人間と見分けがつかない場合、テストは合格とされます。Turingテストは、正誤ではなく応答の「人間らしさ」が評価基準となります。

CAPTCHAはTuringテストとは異なり、誰がボットであるかを直接判別するものではなく、人間が簡単に解答でき、PCが苦戦するような簡単な課題を提示する仕組みです。主にテキストや画像の認識がその例となります。

CAPTCHAコードを安全に保つ方法

もしサイトの安全性を高めるためにCAPTCHAを利用するなら、そのコードを安全に管理する方法を知る必要があります。CAPTCHAが守られていれば、サイト自体も守られます。以下に、一般的かつ有効な方法を紹介します。

  • 画像をランダムに歪めて守る。利用者に表示される前に画像をわずかに歪めることで、自動攻撃に対する耐性を持たせます。
  • 独自のCAPTCHAを使用する。ハッカーが利用するアルゴリズムやパターンを予測できないよう、全サイトで同じ形式のCAPTCHAを用いないようにしてください。アルゴリズムが容易に変更でき、ユニークなコードを生成できることが重要です。
  • 一般的な表現や計算式は使用しない。1+1、1*1、1-1などは突破されやすく、安全とは言えません。こうしたCAPTCHAは、実質的にCAPTCHAがないのと同じです。
  • スクリプトの安全性に注意する。画像がコンピュータやボットにとって読めないよう、回答をプレーンテキストで転送するなど、適切な対策を講じることが大切です。
  • 複数の手法を組み合わせる。テキストの読み取りや画像選択だけに頼らず、音声認証など他の方式と併用することで、CAPTCHAをより複雑かつ安全なものにします。
  • アンチウイルスソフトを利用する。これにより、CAPTCHAコードを安全に保ち、悪意あるコンテンツから守ることができます。

FAQ

Open
CAPTCHAはなぜ使う?
Open
チューリングテストとは何か?
Open
CAPTCHAとは?
Open
CAPTCHAの種類は何ですか?
Open
CAPTCHA と reCAPTCHA は AI プロジェクトにどのような関係がありますか?
Open
TuringテストはCAPTCHAテストにどのように関連しているのか?

最新情報を購読

更新日:
February 25, 2025
学習目標
最新情報を購読
購読
関連トピック