知ってる? ボット排除技術「reCAPTCHA」で単語を2つ入力する理由

reCAPTCHA

Googleは2013年10月25日、Webサービスに対するボットによるスパム攻撃などを排除する技術「reCAPTCHA」を改良し、アクセスしたユーザが人間である場合には、人間であることを判別した上で数字の画像を使うことで、より簡単にCAPTCHA画像を識別できるようにしたことを発表した。

CAPTCHAとは、Webサービスにアクセスしようとするユーザが人間なのかボットなのかを判別するための仕組み。歪んだ文字などを提示することで、人間か否かを判断する。reCAPTCHAは、Googleが提供しているCAPTCHAサービスだ。

reCAPTCHA

Googleによれば、近年、ボット側の人工知能の高度化により、人間とボットとの間で文字を解読する能力差が縮まってきたとのこと。そこで、歪んだ文字に頼らない仕組みを開発。高度なリスク分析技術によって、CAPTCHA画像を解読する最中だけでなく、その前後のユーザ行動も考慮するようにした。総合的に判断することで、CAPTCHA画像の識別以前の段階でユーザが人間なのかボットなのかを区別する。

今後は、人間向けのreCAPTCHAは数字画像を使用することで、人間にとってはより簡単に利用することができるようになる。

reCAPTCHAで単語を2つ入力する理由

人間向けには数字画像を使用するという改良はユーザにとって嬉しいこと。ただ、少し気になるのが、reCAPTCHAの開発目的である「人間の脳というリソースの有効活用」という側面がどうなってしまうのかということだ。

そもそも、CAPTCHAという技術では、文字や数字をユーザに読み取らせるために提示する画像は1枚で、ひとつの文字列からなる場合が多い。そして、その読み取りのために人間が費やす時間は、Googleによれば一日あたり合計で15万時間に及ぶ。

ボット対策のためとはいえ、「人間の脳という貴重なリソースを無駄使いさせてしまうシステムを作ってしまった」と初期CAPTCHA開発者の一人は理解していた。

そこで、その膨大なリソースを有効活用するために開発されたのが、このreCAPTCHAだった。

その肝となる発想は至極単純なものだ。

reCAPTCHA

OCR(光学文字認識)でスキャンした文字のうち、「既に認識できている単語」と「認識できているか疑わしい単語」をユーザに1つずつCAPTCHA画像として提示する。もし、ユーザが「既に認識できている単語」を正しく入力できたなら、もう片方の「認識できているか疑わしい単語」の入力も正しいことが多いと考えられる。

例えば、上の画像では「This」が「認識できているか疑わしい単語」、「aged」が「既に認識できている単語」となるとする。次にreCAPTCHAで、この2つの単語のCAPTCHA画像をユーザに提示する。そこで、ユーザが「aged」の画像を正しく入力できたなら、「This」の画像に対する入力も正しいと考える(実際は、もう少し複雑な運用がなされている)。

そうすることで、OCRだけではうまく認識できない文字を多くのユーザによる人海戦術で解読することが可能となる。ユーザの脳という貴重なリソースを、OCRの不完全さを補完する作業に少しずつ割り当てることができるというわけだ(New York TimesやGoogleブックスなどのデジタル化に利用されているとのこと)。

今回の改良で、人間に対して数字画像が提示されることになるとのことだが、2つの単語のうち片方だけが数字でもう片方が従来通りの文字ならば、当初の開発目的どおりの運用がなされるということだろうか。reCAPTCHAを利用する際に、少し気をつけてみてほしい。