これは、サービスやデータへアクセスしようとする利用者が実際にボットかどうかを判断するためのCAPTCHAです。こうしたテストは悪意あるボットの行動を阻止するのに役立ちますが、完全に安全というわけではありません。
CAPTCHAテストは、インターネット利用者が人間かボットかを判断するために使われます。CAPTCHAは "Completely Automated Public Turing Test to Distinguish Robots from People" の略です。インターネット上では、CAPTCHAやreCAPTCHAのテストがよく見られます。こうしたテストはボットの動向を把握する一手段ですが、欠点も存在します。
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の例では、文字が歪められて表示されます。これはボットが文字を記憶できないようにするためです。利用者は歪んだ文字を読み取り、正しい文字列を指定の欄に入力して送信します。不正解の場合は再試行が求められます。こうしたテストはログインシステム、アカウント情報更新、オンラインアンケート、eコマースのチェックアウトページなどで一般的に使用されています。
基本的な考えは、ボットのようなコンピュータプログラムは歪んだ文字を解読するのが苦手である一方、さまざまな書体や筆記スタイルに慣れている人間なら容易に認識できるというものです。
各種ボットの場合、不規則な文字列を入力するだけで済むため、テストをクリアするのは困難となります。このように、ボットはテストに失敗し、サイトやアプリへのアクセスが阻まれる一方、人間は通常通り利用できます。
高度なボットはAIを利用して歪んだ文字を認識するため、従来のCAPTCHAはより複雑な手法に置き換えられつつあります。Google reCAPTCHAは、ボットと人間を識別するために様々なテストを導入しています。
CAPTCHA登場以降、AIを活用するボットが作られるようになりました。従来の文字認識CAPTCHAはこれらのボットにとって突破されやすいため、最新のCAPTCHA手法ではより厳しいテストが採用されています。例えば、reCAPTCHAは指定の箇所をタップし、確認が完了するまで待つ方式です。
オンラインサービスで利用者の入力が求められる際、CAPTCHAはよく使用されます。例えば、オンラインショップで利用者に商品レビューを投稿してもらう場合、その投稿が実際の顧客や人間のサイト利用者からのものであることを確認する必要があります。さもなければ、多くのスパムコメントの確認に追われ、最悪の場合は不正なアクセスを許す結果となります。
CAPTCHAをサイトに導入することで、利用者がコメントを投稿する前に人間であることを証明させ、こうしたリスクを低減できます。手動の人間確認テストは、多くの場面でボットと人間を区別するために活用され、メール登録、アラート、加盟、ソーシャル連携などの認証システムの強化にも寄与します。
CAPTCHAを利用する利点は以下の通りです:
これらの利点は魅力的ですが、CAPTCHAには見逃せない欠点も存在します。以下に主な欠点を挙げます:
現在、CAPTCHAにはテキスト型、画像型、音声型の3種類があります。
テキスト型CAPTCHA
最も一般的な形式はテキスト型CAPTCHAです。単語や文章、または数字と文字の組み合わせで構成されることが多く、一部のCAPTCHAは大文字と小文字の区別も行います。
これらの文字は独特なスタイルで表示され、認識が困難なように加工されています。サイズが変えられたり、傾けられたり、回転されたり、色や背景の揺れ、線、影、斑点などが付加されるため、人間にとっては読みにくくなります。一方で、ボットが文字認識処理を行うのは難しくなります。
テキスト型CAPTCHAの手法には以下のものがあります:
Gimpyは850語のリストからいくつかの単語を選び、独特な形で表示します。
EZ-Gimpyは、Gimpyのバリエーションで、一語だけを使用します。
この方式は認識しやすい文字を選び、曲げたり装飾したりして背景と組み合わせます。
この手法は、アルファベットと数字をランダムに選び、曲線や影で変形させます。
画像型CAPTCHA
画像を利用した認証テストは、数字や文字の組み合わせによる煩雑な方法ではなく、識別しやすい視覚要素を用いて作成されます。最終的に、いくつかの一般的な画像が表示され、利用者は最も適切な画像を選ぶか、意味の通るものを示す必要があります。
また、GoogleはGoogle Street View CAPTCHAを利用し、利用者に住所や道路標識の入力を求める場合もあります。
ほとんどの利用者は画像型CAPTCHAをすぐに解答できますが、コンピュータが正しく画像を解析する能力は部分的に制限されているため、画像型CAPTCHAはテキスト型よりも高い安全性を提供します。
音声型CAPTCHA
音声型CAPTCHAは、テキスト型や画像型と併用されることが多く、利用者は連続して読み上げられる数字や文字に従って解答します。
ボットは、音声の中から重要な数字や文字を区別することができません。つまり、音声型CAPTCHAもボットにとっては解読が難しいのです。
数値または言語問題型
スパムボットを回避するために、数値または言語の問題を用いるCAPTCHAも利用されています。場合によっては、スクリーンリーダーで問題文を確認できるよう工夫されています。
これらの数学的な問題はそれほど複雑ではありませんが、コンピュータには計算が得意であるため、あえて難易度を上げる必要があります。さらに、テキストが付加されることでスクリーンリーダーには解答が困難になる場合もあります。例えば、7×7の答えが49の場合、結果の最初の数字だけを入力するよう求められると、さらに難しくなります。
CAPTCHAは登録プロセスでも利用され、認証や基本情報の確認として用いられます。たとえば、SMF(Simple Machines Forum)の利用時、次のステップに進む前に訪問者が数問の問題に回答する必要があります。
従来のCAPTCHAの代替手段として、reCAPTCHAはGoogle提供の無料ツールです。誕生後すぐに、GoogleはCarnegie Mellon Universityの科学者からreCAPTCHAを導入しました。
reCAPTCHAは従来のCAPTCHAよりも高度な仕組みとなっており、テキストが含まれる画像の認証を求める点では従来と似ています。しかし、reCAPTCHAは実際の画像、例えば街中の写真や書籍の文字、歴史的な新聞記事などを利用しています。
その後、GoogleはreCAPTCHAの使い勝手を改善し、従来のような曖昧または破損したコンテンツを表示する手法に依存しない仕組みに刷新しました。reCAPTCHAでは以下の複数の手法が採用されています:
CAPTCHAを利用する際の欠点は何か
CAPTCHAテストは利用者の操作を妨げ、サイトでの体験に悪影響を与え、最悪の場合、サイトの離脱を招く可能性があります。
CAPTCHAは視覚情報に依存しているため、視覚に障害のある方には解答が困難です。
上述の通り、CAPTCHAは完全なボット対策ではなく、主要な防御手段として過信するべきではありません。
CAPTCHAを導入することで、自動スパムを防ぎつつ人間だけがアクセスできるため、サイトへの不要なアクセスが大幅に減少します。コンテンツサイトの管理者は投稿の確認作業が軽減されます。
各CAPTCHA提供者は、AI技術の進歩に対応すべく、テストをより複雑に設計しています。その結果、人間でさえ解答が困難になる場合もあります。
現代のサイバー犯罪者やハッカーは非常に高度な技術を持っており、CAPTCHAを突破するのはそれほど難しくありません。多くのハッカーは、機械学習を利用してCAPTCHAのパターンを予測し、ボットが突破できるようにしています。
さらに、深層学習モデルも有力な手段です。大量のCAPTCHAを事前に解答し、パターンを学習することで、解読方法を身につけます。
上記のCAPTCHA突破技術は高度で専門知識が必要です。一般利用者の場合、どのようにCAPTCHAを回避できるでしょうか?
ブラウザのアドオンを利用すれば、利用者がサイトにアクセスした瞬間にCAPTCHAを自動で回避する方法が存在します。注目すべきアドオンにはRumolaとAntiCaptchaがあります。
WallarmではAntiCaptchaを試し、高度なCAPTCHA解答ソルバーがFirefoxやChromeで自動的にCAPTCHAを検出し解答することを確認しました。これにより、サイト訪問者が自ら解答する必要がなくなります。特に、視覚障害のある方にも有用です。
RumolaはSafari、Chrome、Firefoxで同様に動作し、ブラウザ拡張機能とブックマークレットが提供されています。ただし、サードパーティ製ツールの利用はデータリスクを伴うため、使用するツールのログポリシーを確認し、十分なセキュリティ対策を講じた上で利用することが望ましいです。
Turingテストは、コンピュータがどの程度人間の会話を模倣できるかを評価するものです。1950年、計算機科学の先駆者Alan Turingがこのテストを提唱しました。テスト中、コンピュータの応答が人間と見分けがつかない場合、テストは合格とされます。Turingテストは、正誤ではなく応答の「人間らしさ」が評価基準となります。
CAPTCHAはTuringテストとは異なり、誰がボットであるかを直接判別するものではなく、人間が簡単に解答でき、PCが苦戦するような簡単な課題を提示する仕組みです。主にテキストや画像の認識がその例となります。
もしサイトの安全性を高めるためにCAPTCHAを利用するなら、そのコードを安全に管理する方法を知る必要があります。CAPTCHAが守られていれば、サイト自体も守られます。以下に、一般的かつ有効な方法を紹介します。
About reCAPTCHA - Google support
最新情報を購読