CAPTCHAとは?CAPTCHAの種類と仕組み

CAPTCHA(Completely Automated Public Turing Test to tell computers and humans apart:コンピュータと人間を識別するための完全自動の公開チューリングテスト)は、アクセスを制限するために設計されています。人間であれば、これらのテストに合格してアクセスすることができますが、ボットの場合はアクセスできません。 

世界中のWebサイトのうち上位100万サイトのほとんどが、何らかの形でCAPTCHAを使用しています。しかし、このテクノロジーには多くの制限があるため、これを排除すべきだという意見もあります。 

では、どちらが正しく、どちらが間違っているのでしょうか?そして、会社を守るためには何をすべきなのでしょうか?

CAPTCHAとは何か、どのように機能するのか、そしてなぜWebベースのリソースにCAPTCHAの追加を検討する必要があるのかについて詳しく見てみましょう。

captcha

CAPTCHAとは? 

Webサイトにアクセスしたり、ログインしたり、予約したり、購入を計画したり、コメントを残したりと、何らかの操作をしようする場合、その操作の前に小さなテストに合格しなければなりません。そのテストは、通常、CAPTCHAフォームで行われます。 

CAPTCHAテストは、1990年代半ばから存在しています。当時は、スパムがWebサイトのユーザーエクスペリエンスを台無しにしてしまうのを防ぐためのツールでした。 

現在では、WebデザイナーはCAPTCHAコードを以下の目的で使用しています。

  • 防止:コードは、ボットがブログやコメント欄に、ウェブサイト、販売、映画などに関する情報を大量に送りつけるのを防ぐことができます。また、ボットがフォーム(投票など)を複数回送信するのを防ぐこともできます。 
  • 保護:サイトがサインアップを提供している場合、CAPTCHAを使えば、ボットが何百、何千ものユーザー名やパスワードを要求するのを防ぐことができます。これと同じテクニックで、Webアドレスをスパム送信者から守ることができます。 
  • 防御:CAPTCHAのコードは、ボットがユーザーのパスワードシステムにリスト型攻撃を仕掛けるのを防ぐことができます。メールワーム対策にもコードがあります。 

Webサイトをスクロールしたり、フォームに記入しようとしたりするとき、誰もが一度はCAPTCHAに遭遇したことがあるでしょう。パズルを解いたり、テストに合格したりしないと先に進めないものはすべて、このテクノロジーの一例です。しかし、CAPTCHAにはたくさんの種類があり、見たことのないものもあります。 

以下は、CAPTCHAテストの例です。

  • 画像:見覚えのあるもの(街角など)の写真が表示され、カテゴリーに当てはまるもの(歩道など)をすべてタップするよう求められます。 
  • 数字:簡単な数式が表示され、それを解きます。 
  • 音声:読み上げられた一連の文字と数字を正しく入力します。 
  • 文字:何らかの干渉(線や吹き出しなど)により、やや読みづらい一連の文字が表示されます。正しい文字を正しい順序で入力する必要があります。 

CAPTCHAテストは、驚くほど独創的な場合もあります。単語が1つか2つ欠けている文章が与えられ、指示に従ってそれを完成させなければなりません。デザイナーによっては、飛ばないものを地面に置かせるといったパズルを使うこともあります。

CAPTCHAテストの仕組み

画像、数字、単語、ゲームのいずれを使用するにしても、コンピューターではクリアできないチャレンジを人間に提示することになります。人間はコンピューターよりも賢いという考え方が、すべてのCAPTCHAテストを支えています。 

プログラマーは、コンピューターがいくつかの方法のうちのいずれかで反応するようプログラミングすることができます。例えば、空欄に常に「554」を入力するようボットにコードで指示することができます。しかし、同じサイトであってもCAPTCHAは常に変化するため、事前にプログラムされたテクニックは通用しません。攻撃を成功させるには、そのコードも常に変化しなければなりませんが、平均的なハッカーにはそれを実現する時間はありません。 

CAPTCHAコードの利点と欠点 

ボットは、Webサイトの体験を台無しにします。自動応答で埋め尽くされたコメント欄にわざわざ目を通そうとは思う人はいません。また、セキュリティチームも、パスワードの推測がもたらす付加的なリスクを処理したくはないでしょう。セキュリティとユーザーエクスペリエンスが重要であれば、CAPTCHAは理にかなっています。 

しかし、実際には以下のような欠点があります。

  • セキュリティの脆弱性:機械学習機能を持つプログラムは、巧みに設計されたCAPTCHAコードでさえも解読できます。自社サイトにテストを設置し、フォローアップを怠れば、会社をハッカーにさらすことになりかねません。熱心な攻撃者は、コードを解いて侵入するために人を雇う可能性もあります。 
  • 法的要件:米国のほとんどの州では、目の見えない人や耳の聞こえない人を含め、すべての人がサイトにアクセスできるようにしなければなりません。CAPTCHAテストが視覚的または聴覚的なキューにのみ依存している場合、アシスティブテクノロジーはそれらを解釈することができません。事実上、サイトの利用をブロックすることになり、多額の罰金が課される可能性があります。 
  • 言語の壁:研究者によると、英語を母国語としない人は、CAPTCHAに苦労することが多いそうです。英語の文字を認識するのに時間がかかり、文章ベースのテストに回答する方法を理解していないかもしれません。他の言語を話す人々もサイトにアクセスできる場合、潜在的な視聴者の一部を除外している可能性があります。 
  • 文化的制約:米国で通用するチャレンジがギリシャでは通用しないかもしれません。例えば、米国の交通信号に関するチャレンジの場合、海外からの訪問者には理解できないかもしれません。 

セキュリティとアクセシビリティのバランスを取ることは、必ずしも容易ではありません。CAPTCHAは、そのタスクを飛躍的に難しくします。

CAPTCHAテストの代替案 

標準的なCAPTCHAテストは、Webサイトへのアクセスと利用を難しくします。しかし、CAPTCHAを使用する必要も、完全に排除する必要もありません。リソースを確保するために、他の選択肢を活用しましょう。 

No CAPTCHA/reCAPTCHAシステムには、2つの選択肢があります。標準的なユーザーは、「私はロボットではありません」というボックスを1度クリックすれば、あとは普通に進むことができます。もしシステムが何らかの不審な活動を検出した場合、CAPTCHAボックスが表示され、ユーザーはそのチャレンジに合格しなければなりません。

CAPTCHA ボックス

スパム検出ツールに頼ることもできます。これらのプログラムは、ユーザーが送信したデータを調べ、疑わしいものにフラグを立て、承認または削除を求めます。このようなシステムはユーザーには見えませんが、サイトを安全かつセキュアに保ちます。 

Oktaでは、ユーザーに負担をかけずにデータを保護するセキュリティの存在を信じています。セキュリティとユーザビリティの両立を実現する上で、当社がどのようにお手伝いできるのか詳しくご説明させていただきます。まずは、お気軽にお問い合わせください。
 

参考文献

CAPTCHA Usage Distribution in the Top 1 Million Sites(2021年2月、BuiltWith) 

Home.CAPTCHA. 

CAPTCHA Can Ruin Your UX. Here's How to Use It Right.(2020年11月、Auth0)

Everything You Need to Know About CAPTCHA(2017年4月、Medium) 

How Good Are Humans At Solving CAPTCHAs? A Large-Scale Evaluation(2010年、Stanford University) 

Why CAPTCHAs Have Gotten So Difficult(2019年2月、The Verge) 

In Search of the Best CAPTCHAs(2011年3月、Smashing Magazine)