reCAPTCHA
概要
reCAPTCHAとは、Webサイトにアクセスしてきたのが自動巡回中のソフトウェア(ボット)ではなく確かに人間であることを確かめるCAPTCHA(キャプチャ)システムの一つ。米グーグル(Google)社が提供している。入力フォームのあるページなどに同社のサーバから呼び出したスクリプトを設置すると、人間かどうかの判定やスコア付けを行ってくれる。ロボットによる自動操作を拒否したり、疑わしい場合に追加の認証を要求したりすることができる。
開発者がGoogleアカウントを取得すれば無償で利用することができ、チェックを受ける閲覧者は特に何の手続きも必要ない。毎秒1000回以上あるいは月に100万回以上の認証を実施する場合は有償の「reCAPTCHA Enterprise」を利用しなければならない。
reCAPTHCA v3
最新のv3はv2までとは異なり、閲覧者に入力は求めず、サイト上での振る舞いなどから人間らしさをスコア付けしてサイト側に通知する。完全にロボットだと思われる場合は0.0、完全に人間だと思われる場合は1.0となる。
サイト側では受け取ったスコアを元に利用者の扱いを決める必要がある。よく用いられるのは閾値(しきい値)を設けて「足切り」する手法で、「0.5未満ならロボットとみなしてアクセスを拒否する」といった仕組みを作る。
アプリケーションの種類や開発者の方針、利用できる認証手段などに応じて、一定以下の疑わしい場合のみ追加の認証を求めたり、入力を受け付けるが無視するといった対応にすることもできる。サイト運営者側の対応が必要なためv2までの用途をそのまま代替することはできない。
reCAPTCHA v2
v2は初期の文字を入力する方式をやめ、「私はロボットではありません」(I'm not a robot.)と表示されたチェックボックスをマウス操作やタッチ操作でチェックするだけでよい。同社ではマウスカーソルの移動など利用者の操作を検知し、人間らしさを評価しているとしている。
「invisible」オプションを有効にするとチェック操作も不要となり、ページ上での振る舞いを元に人間かどうかを判別する。いずれの方式でも、ロボットと断定できないが人間かどうか疑わしい場合は、複数の画像を表示して条件に合うものを選択する画像認証を追加で実施する。
初期のreCAPTCHA
オリジナルのreCAPTCHAはカーネギーメロン大学で開発されたCAPTCHAシステムで、判読しにくい文字が含まれる画像を提示して利用者に書かれている文字を入力させることで人間かどうかを確かめる。一般的なCAPTCHAシステムでは、文字をわざと歪ませたり図形やノイズを重ねた画像を生成して出題するが、reCAPTCHAでは実在の文献のスキャン画像からOCR(自動文字認識)システムが読み取れなかったものを使用する。
この方式では出題側は正解を持たないが、出題する画像の一部に自動認識済みの文字も併記しておく。利用者が認識済みの部分を正しく回答できていれば、不明な部分の文字も正しく回答しているとみなし、その回答をOCRへフィードバックする。人間によるCAPTCHA入力を書籍の電子化に役立てることができ、Google社による書籍電子化プロジェクトなどで実際に利用された。