定義
ウェブサイトにアクセスしたのが本物の人間なのか、それとも自動で命令を繰り返すコンピュータープログラム(ボット)なのかを見分けるためのセキュリティ技術です。コンピューターやAIには難しいけれど、人間なら直感的に簡単に解けるクイズや行動データを使い、サーバーへのやみくもなアクセス攻撃やスパム登録を効果的に防ぎます。
なぜ、ぐにゃぐにゃの文字を読まされたのでしょう?
ネット通販で限定スニーカーを買うときや、人気ライブのチケットを予約するときに、画面に出てきた波打つように曲がった英字と数字を、目をこらして入力した経験は、きっと誰にでも一度はあるはずです。
自動化された悪意のあるプログラムであるボットやマクロは、人間よりずっと速くクリックやデータ入力を繰り返せます。もしウェブサイトに何の防御もなければ、高価なライブのチケットはあっという間に転売ヤーのプログラムに買い占められ、掲示板は宣伝の書き込みで埋め尽くされてしまうでしょう。
初期のCAPTCHAは、この問題を解決するために、人間だけが持つ視覚的な認知能力をうまく利用しました。当時のコンピュータープログラムは、ひどくゆがんだ文字をうまく読めませんでしたが、人間はノイズが多く混ざってゆがんだ文字でも、背景と切り分けて難なく読めたからです。
この視覚認識の差を利用して、プログラムの不正な侵入を食い止め、サーバーの大切な資源を守ってきました。毎回文字を打つのは利用者にとって少し面倒でしたが、悪質なマクロによる大規模な攻撃をふるい落とす、頼もしい盾の役目をしっかり果たしてくれたのです。
もう少し正確にいうと:クリック1回で人間だとわかる秘密
最近は、複雑な文字をじっと見つめて入力するかわりに、「私はロボットではありません」というチェックボックスを1回押すだけだったり、街の写真から信号機や消火栓を選んだりする方式のほうが、ずっと一般的になりました。
もう少し正確にいうと、現代のCAPTCHA技術は、画面上のクイズの正解だけを見ているわけではなく、マウスカーソルの動きのような行動のサインもあわせて見ています。人間はマウスを動かすとき、細かい震えやカーブを自然に描きますが、単純な自動化プログラムは、機械的なまっすぐの経路で一瞬のうちに移動することが多いからです。ただし、高度なボットは人間らしい動きをまねることもあるため、マウスの動きだけで判定するわけではありません。
さらに、アクセスしてきたIPアドレス、クッキー、ウェブページに滞在した時間、使っているウェブブラウザーの設定情報まで総合的に照らし合わせて、危険度のスコアをつけているといわれています。正確な判定方法は公開されていません。人間にとってはごく普通の行動が積み重なって、強力な本人確認の証拠になるというわけです。
おかげで利用者は、長いセキュリティ文字をいちいち入力する手間が省け、画面を軽くクリックするだけで、自分が本物の人間だとサーバーに証明できるようになりました。
AIの進化と、目に見えない透明なCAPTCHA
最近はAIやディープラーニングの技術がめざましく進歩して、コンピュータープログラムも、写真の中の横断歩道を見つけたり、ゆがんだ文字を読み取ったりすることを、人間よりずっと速く正確にこなせるレベルに達しました。
ボットの視覚能力が人間を超えはじめたことで、CAPTCHA技術も、利用者にクイズを出して解かせる従来の方式から、急速に離れつつあります。利用者がページを見て回るいつもの習慣を静かに観察し、人間である確率をスコアに換算する「見えないCAPTCHA」がその代表です。
この方式では、悪意のあるボットだと強く疑われるごく少数のアクセスに対してだけ、追加の認証手続きを求めます。その結果、大多数の一般の利用者はまったく邪魔されることなく、ウェブサイトのさまざまな機能をなめらかに、便利に使えます。
CAPTCHAはもう、面倒なテスト用紙を差し出す門番ではありません。裏側でお客さんの歩き方をそっと確かめて、安全に扉を開けてくれるスマートなセキュリティシステムへと進化しているのです。
よくある誤解
CAPTCHAは、サーバーが問題を出して、正解しないと通れないだけの単純な暗号クイズだ。
文字や写真のクイズだけでなく、マウスカーソルの動き、滞在時間、ブラウザーの環境など、複数のサインをあわせて分析して、人間かどうかを見分けています。
日常で出会う場面
チケット販売サイトや限定品のショップで、決済の直前に出てくるセキュリティ文字の入力欄です。
ログインするときに「私はロボットではありません」にチェックを入れ、信号機の写真を選ぶ画面です。
つまり ひとことで
CAPTCHAは、人間とプログラムの認知や行動の違いを分析して、悪意のあるボットの攻撃を防ぐセキュリティ技術です。