NEXTWISE
 
Close up! > CAPTCHA、ネコ認証

Close up!

CAPTCHA、ネコ認証

kikaku詳細, NEXTワード2007年10月25日 1:34 PM

相手が、人間か機械かを自動的に判別すること。これは、インターネット上のWebサービス、特にCGM(Consumer Generated Media:消費者生成メディア)にとって重要な課題である。「CAPTCHA」と「猫認証」は、これに対処するための技術である。

あなたは、次の画像から文字を読み取れるだろうか。

captcha1.png

見てのとおり、『この文字を読めますか?』と書いてある。多くの人が、この文字画像をなんとか読めると思う(視覚障害者に申し訳ないが、困難がつきまとうかも知れない)。

このような文字は、あらかじめ用意しておいたプログラムにより自動生成できるが、逆にプログラムで自動認識するのは難しい。だから、それを相手に判別して入力してもらえば、相手が人間か機械かを自動判別できる。

captcha2.png

これは、画像により表示された文字で、人間とプログラムを判別する認証方式のひとつで、CAPTCHA(キャプチャ)と呼ばれる。通常、Webサイトで表示される文字は、”テキスト”と呼ばれ、文字情報をコンピュータにより認識・操作できる。たとえば、このブログの文字はテキストで表示している。テキストは、コピー&貼り付けでワープロに貼り付けることができる。これに対して、画像による文字は、文字を写真に撮ったようなものなので、コンピュータが文字情報を取り出すには特殊な操作が必要になる。

このメッセージは、文字がゆがんでおり、書体やサイズもバラバラである。文字同士が重なっているし、上に線も引いてある。背景もボンヤリしている。これらの要素が重なって、この画像からプログラムが自動的に文字を識別することは、困難になることが予想される。

インターネット上のWebサービスのユーザー登録やログイン・ブログへのコメントでは、このような画像から文字を読み取り・入力を求められることがある。次の図は、Yahoo! JapanのユーザーID登録時に表示されるものだ。

yahoo_id.png

CAPTCHAの文字画像は、プログラムを使って、大量にユーザーIDを取得したり、コメントへの自動投稿をできる限り困難にするために使われる。

■人間とプログラムを判別する

プログラムを使って、Webサービスで大量のユーザーIDを自動取得したり、ブログにコメントを自動投稿できると、こんなことが起こる。まず、ブログや掲示板では、自動的に大量の広告を投稿できてしまう。会員制サービスの中に、ネットオークションサービスがあれば、他の入札者を邪魔したり、評価を不正に上げることができるだろう。これは、広告的な情報を無差別にばら撒きたいスパム業者やオークション業者にとっては都合がいいが、ユーザーや運営側に迷惑極まりない。

ブログやSNSといった、人間同士のコミュニケーションの促進により成立しているCGM(Consumer Generated Media:消費者生成メディア)では、これは致命的なことになる。消費者同士のコミュニケーションの結果として作られていくメディアが、プログラムによる自動投稿により、ノイズだらけの退屈なものになってしまう。

これを防ぐため、Webサービス側は、相手が人間かプログラムかを判別する手段を持つ必要がある。

■CAPTCHA

CAPTCHAとは、「Completely Automated Public Turing test to tell Computers and Humans Apart」(コンピュータと人間を区別する完全に自動化された公開チューリングテスト)の略である。

もともと、1997年にAltaVistaによって開発された。この用語は、カーネギーメロン大学のルイス・フォン・アン、マヌエル・ブラム、ニコラス・ホッパー、IBMのジョン・ラングフォードによって2000年に造られた。この呼び名は、幅広く知られているが、カーネギーメロン大学の登録商標になっている。そのため、学術論文などでは、「HIPs」(Human Interactive Proofs)という呼び名を使っている場合が多い。

■ネコ認証:プログラムは、子猫を識別できるか

しかし、ゆがんだ文字を読み取るCAPTCHAには、いくつかの欠点がある。たとえば、利用者の手間が挙げられる。ゆがんだ読みにくい文字を読み取り、それを手動で入力しなおすことは、確かにプログラムには困難だけれど、人間にとっても面倒な作業だ。視覚障害を持つ人にとっても、不便なことになる。

そこで考え出されたのが、ネコ認証と呼ばれる方式である。猫認証、子猫認証と表記される場合もある。

仕組みは、とても簡単だ。この認証方式では、次のような動物の画像を複数表示する。利用者は、この中からネコと思われる画像だけを選択するだけ(参考)。人間には、ここからネコを簡単に見分けられても、プログラムは人工知能を持ち出さないと、簡単には識別できない。利用者は、読みにくい文字を読み取る必要がないし、マウスだけで選択できるというメリットもある。

cat_auth.png

マイクロソフトリサーチは、Asirraというネコ認証のデモを公開している(参照)。動物のかわりに、ほかの画像による認証も提案されている。たとえば、自然に関する写真を選ぶ「Human Auth」(参照)、ビル・ゲイツの写真を識別する「ゲイツ認証」(参照)、メイド画像を識別する「萌え認証」などがある。

■ネコ認証を見破る方法、発明される

このような画像認証は、現在のプログラムの能力では、認識するのは難しい。しかし、ちょっとした工夫で、突破する方法が提案されている。

この手法では、スパム業者らは、あらかじめポルノ画像配布サイトなどを開設しておく(画像は、インターネットで大量に自動収集できる)。このサービスを無料で利用するために、CAPTCHAやネコ認証が表示されるのだが、これが実は、他の(まともな)Webサイトから自動転送したものなのだ。ポルノサイトの利用者は、もちろん人間なので、正しい答えを入力できる。ポルノサイトは、その入力結果をまともなWebサイトへの入力として転送する。その結果、スパム業者は、まともなWebサービスにまんまと進入してしまうわけだ。

cat_hack.png

人間とプログラムを識別する競争は、イタチごっこの側面がどうしても付きまとう。プログラムによる識別を難しくすれば、人間にとっても面倒になる。一方で、コンピュータの性能向上により、プログラムの画像認識能力は常に向上していく。利用者の利便性とバランスを取りながら、これからも、この競争は続いていくだろう。