CAPTCHAの仕組み | CAPTCHAの意味とは?

CAPTCHAとreCAPTCHAはユーザーが実際にはボットであるかどうかを判定します。これらのテストは悪意のあるボットの活動を止めことに役立ちますが、けして完全な仕組みではありません。

Share facebook icon linkedin icon twitter icon email icon

CAPTCHA

学習目的

この記事を読み終えると、以下のことができます。

  • CAPTCHAとは何か、それが使用される理由とは何かを知る
  • CAPTCHAとGoogle reCAPTCHAの違い、異なるタイプのreCAPTCHAについて知る
  • 悪意のあるボットをブロックするためにCAPTCHAを使用する利点と欠点を理解する
  • CAPTCHAと人工知能(AI)プロジェクトとの関連性について説明する

CAPTCHAとは?

CAPTCHA(キャプチャ)テストは、オンラインユーザーが実際の人間であり、ボットでないかどうか判断することを目指したものです。CAPTCHAは「Completely Automated Public Turing test to tell Computers and Humans Apart」(コンピューターと人間を区別するための完全自動化された公開チューリングテスト)の略称です。 ユーザーは、しばしばインターネットでCAPTCHAやreCAPTCHAのテストに遭遇します。アプローチには欠点がありますが、こうしたテストはボットの活動を管理する1つの方法です。

CAPTCHAは、自動ボットをブロックすることを目指していますが、CAPTCHA自体も自動化されています。これらは、Webサイト上のある場所に突然表示されるようにプログラムされ、自動的にユーザーをテスト判断します。

CAPTCHAの仕組みとは?

今日でも一部のWebプロパティで使用される従来のCAPTCHAは、文字を識別するようユーザーに指示します。ボットには文字を識別できないように、表示される文字は曲がっています。テストに合格するために、ユーザーは歪曲された文字を読み、正しい文字列を入力し、フォームを送信する必要があります。入力された文字が一致しない場合、ユーザーは再試行します。こうしたテストは、ログインフォーム、アカウント作成、オンライン投票および電子商取引チェックアウトページなどで一般的に利用されています。

captcha example

人間はすべての種類のコンテキスト(異なるフォント、異なる筆跡など)の文字を見て解釈できますが、通常ボットのようなコンピュータープログラムは歪曲された文字を解釈することができない場合が多いため、それらを識別できる仕組みになっています。

ボットはランダムな文字を入力してテストに合格する可能性もゼロではありませんが、統計的にはほぼありえません。したがって、ボットはテストに失敗し、Webサイトやアプリケーションからブロックされますが、人間はこれらを使用し続けることができます。

高度なボットは、機械学習を使用して、これらの歪曲された文字を識別できるようになっています。したがって、これらの種のCAPTCHAテストはより複雑なテストと置換されています。GoogleのreCAPTCHAは、ボットと人間のユーザーを分類するためにその他の多くのテストを開発しました。

reCAPTCHAとは何ですか?

reCAPTCHAは、Googleによる従来のCAPTCHAを置換する無料サービスです。reCAPTCHA技術はカーネギーメロン大学の研究者によって開発され、2009年にGoogleが買収しました。

reCAPTCHAは、典型的なCAPTCHAテストよりさらに高度です。一部のreCAPTCHAは、CAPTCHAのようにコンピューターには判読しにくいテキストの画像を読み、表示された文字を入力することをユーザーに要求します。通常のCAPTCHAと異なり、reCAPTCHAでは、通り名前、印刷された本のテキスト、古新聞のテキストなどの現実世界の画像とテキストを判別します。

recaptcha example

時間の経過とともに、GoogleはreCAPTCHAテストの機能性を拡張し、不明瞭な曲がったテキストを識別する旧来のスタイルに依存する必要がなくなりまた。その他のタイプのreCAPTCHAテストは次のものを含んでいます。

  • 画像認識
  • チェックボックス
  • 一般ユーザー挙動評価(ユーザーとの相互作用はない)

画像認識reCAPTCHAテストの仕組みとは?

画像認識reCAPTCHAテストでは、通常はユーザーに9枚あるいは16枚の正方形の画像が表示されます。画像はすべて同じ大規模な画像の一部であることも、あるいは、各々異なることもあります。ユーザーは、動物、木あるいは道路標識のようなオブジェクトを含んでいる画像を識別する必要があります。ユーザーの回答が、同じテストを提出したほとんどのその他の人間ユーザーからの回答と一致する場合、答えは「正確である」と考えられ、ユーザーはテストに合格します。

image recaptcha

ピンぼけの写真からオブジェクトを選ぶことはコンピューターには困難な問題です。高度な人工知能(AI)プログラムでも容易ではありません。したがって、ボットにもまだ困難です。しかしながら、人間はすべての種類のコンテキストおよび状況の日常のオブジェクトの知覚に慣れているため、人間のユーザーはこれらをかなり容易に識別できます。

単一チェックボックスのreCAPTCHAテストの仕組みとは?

reCAPTCHAテストの中には、「私はロボットではありません」という文の隣にあるチェックボックスに印を付けるようにユーザーに促すものがあります。 ただし、ここでテストされているのはチェックボックスのクリックという行為自体ではありません。見られているのはチェックボックスのクリックに至るまでの挙動です。

Not a Robot captcha

チェックボックスに接近すると、このreCAPTCHAテストは、ユーザーのカーソルの移動を考慮します。人間による操作には、微視的なレベルで必ず一定の不確定性があります。これはボットが容易に模倣することができない小さな無意識の動作です。この予測不可能性がカーソルの移動に含まれている場合、テストはユーザーが恐らく人間であると決定します。reCAPTCHAは、さらにユーザーがボットかどうか判断するためにユーザーデバイスおよびデバイスのブラウザの保存クッキーを評価する場合もあります。

ユーザーが人間かどうかテストでまだ判断することができない場合、上に記述された画像認識テストなどが利用されます。しかしながら、通常、ユーザーのカーソル動作、クッキーおよびデバイス履歴だけで十分に判断できます。

ユーザーとの相互作用のないreCAPTCHAの仕組みとは?

reCAPTCHAの最新のバージョンは、インターネットコンテンツ相互に作用するユーザーの挙動および履歴を全体的に確認することができます。通常、プログラムは、ユーザーがボットであるかどうかこれらの要因に基づいて決定することができます(ユーザーのテストは必要ありません)。判断できない場合は典型的なreCAPTCHAテストが表示されます。

CAPTCHAテストが起動する要因とは?

いくつかのWebプロパティは、ボットに対する率先した防御として自動的にCAPTCHAを設置しています。そうでない場合、ユーザー挙動がボットの振る舞いに似ていたときは、テストが表示されます。たとえばユーザーが平均よりはるかに高い割合でWebページをリクエストしたり、あるいはハイパーリンクをクリックする場合などです。

悪意のあるボットを止めるにはCAPTCHAおよびreCAPTCHAだけで十分ですか?

一部のボットはテキスト、CAPTCHAを独力で通過することができます。研究者は、同様に画像認識CAPTCHAを突破できるプログラムを書く方法を実証しました。さらに、攻撃者は、テストを打つクリックファーミング、すなわちボットの代わりにCAPTCHAを解決する数千もの低賃金労働者を利用することがあります。

CAPTCHAに加えて、望ましくないボット(コンテンツスクレイピングボットクレデンシャルスタッフィングボットスパムボットなど)を止めるために、対策が必要なことがあります。

ボットを止めるためにCAPTCHAやreCAPTCHAを使用する欠点とは?

望ましくないユーザー体験: CAPTCHAテストは、ユーザーが行おうとしている作業フローを中断し、Webプロパティに関する経験が否定的になり、一部の場合にはWebページがすべて放棄されることもあります。

視覚障害のある人には使用できない: CAPTCHAに関する問題は、視覚障害のある人には使用できないことです。法律上盲目の人々だけでなく、弱視の人も利用できません。

ボットがこれらのテストを突破できる: 上に記述されるように、CAPTCHAは完全にはボットを排除できないため、ボット管理で依存するべきではありません。

CAPTCHAまたはreCAPTCHA代わりに使用できるものとは?

Cloudflare Bot Managementのようなボット管理ソリューションは、ボットの振る舞いに基づいて、ユーザー体験を損なわずに、悪性のボットを識別することができます。これによって、ユーザーにCAPTCHAを強いることなくボットを緩和することができます。

CAPTCHAとreCAPTCHAはどのように人工知能(AI)プロジェクトと関係していますか?

何百万ものユーザーが読み取りにくいテキストを識別し、不明瞭な画像からオブジェクトを選んでいます。これらのデータはAIコンピュータープログラムに供給されこうしたタスクが同時に改善されています。

実際のコンテキストはほとんど無限に変わる場合があるため、一般的にコンピュータープログラムは異なるコンテキストでオブジェクトおよび文字の識別は困難です。たとえば、一時停止の標識は「STOP」の白い文字を備えた赤い八辺形です。 コンピュータープログラムは、こうした形と言葉のコンビネーションをかなり容易に識別することができるようになりました。しかしながら、写真の中の一時停止の標識は、写真角度、照明、含まれていた天候などコンテキストに依存するため、シンプルな説明とは非常に異なる場合があります。

機械学習によって、AIプログラムはこれらの制約を克服できます。一時停止の標識の例については、プログラマーはAIに一時停止の標識とそうではないものデータを供給します。このためには、一時停止の標識のある画像とない画像の多くの例を必要とします。また、プログラムが十分なデータを得るまで、識別するために人間のユーザーを必要とします。

reCAPTCHAは、人間にオブジェクトとテキストを識別させることによりこの必要を満たし、強健なAIプログラムを構築するために、ゆっくりではありますが十分なデータを提供します。

チューリングテストとは?チューリングテストはどのようにCAPTCHAテストに関連していますか?

チュューリングテストは、人間挙動を模倣するコンピューターの能力を評価します。アラン・チューリング(初期のコンピューティングの開拓者)は、1950年にチューリングテストの概念を編み出しました。テストの反応が人間と判別不能な場合、人間が行動した方法と同じである場合、コンピュータープログラムはチューリングテストに「合格」します。チューリングテストは答えを正確に出すのではなく、正しいか間違っているかどうかにかかわらずどのように「人間」を模倣しているかを判断します。

これは「公開チューリングテスト」と呼ばれますが、CAPTCHAは実際にはチューリングテストの反対です。コンピューターは、人間のユーザーが人間かどうか判断するのではなく、コンピュータープログラム(ボット)かどうか判断します。これを行うために、CAPTCHAは、人には簡単でコンピューターには困難なタスクを割り当てる必要があります。通常テキストや画像の識別はこうした基準に適合します。