CAPTCHA

langはチャレンジ/レスポンス型テストの一種で、応答者がコンピュータではなく生身の人間であることを確認するために使われる。

ウィキペディアにおいても、ログインしていない状態のユーザが外部リンクを追加する際、スパム の防止のためこの種の認証が用いられる。外部リンクを追加しない場合にも濫用される。

この用語はカーネギーメロン大学のルイス・フォン・アン、マヌエル・ブラム、ニコラス・J・ホッパー、IBMのジョン・ラングフォードによって2000年に造られた。en という語は「en」の人為的頭字語である。

認知ソフトウェアに対抗するために難化が繰り返された結果、既に人間の認識が困難になるほど難化しており、本来の目的を果たせていない場合がある。

1. 概要
-----

もっとも一般的な画像によるCAPTCHAの場合、次のように画像に記されている文字や数字を読み取ることができるか否かによって人間と機械を判別する。

en システムは、ランダムな文字や数字の列を画面に表示する。表示される文字は歪んでいたり一部が覆い隠されていたりして、機械が自動的に読み取ることは難しい。
ユーザーは画面に描かれている文字の列を読み取り、同じ文字列をシステムに入力する。
システムが表示した文字列とユーザーが打ち込んだ文字列が一致していれば、ユーザーは歪んだ画像を認識する能力を持っていると考えられる。システムはそのユーザーが人間であると推測する。
システムにアクセスできる人間を日本語使用者に限定したい場合、画像の文字種をひらがな・カタカナに限定する。
応用として、画像の文字種でアラビア数字のみを入力させる場合、アラビア数字そのものではなく読み方をひらがな・カタカナで表示する。アラビア数字だと、言語を問わずほとんどの人間が読めるが、ひらがな・カタカナまで読める日本国外人口はそれほど多くないため、日本国外からのアクセスを大幅に抑制できる。コンピュータがテストを監督することから、人間が監督する標準的なチューリングテストとの対比として、en はときに逆チューリングテストとも呼ばれる。

また、複数の画像の中から指定された画像を全て選ぶ「私はロボットではありません」と呼ばれるものも存在する。

en は日本語では「画像認証」とも呼ばれている。

2. 起源
-----

en はもともと、1997年にAltaVistaのアンドレイ・ブローダーとその同僚たちによって、ボットが彼らの検索エンジンにURLを追加するのを防ぐために開発された。彼らは画像をOCRによる攻撃に耐えられるようにする方法を探していた。ブラザー工業のスキャナの取扱説明書には、OCRの結果を改善するためには均質な活字面、無地の背景を用いるよう薦められていた。そこで彼らは取扱説明書に「OCR認識の結果を悪くする」と書いてある条件を真似て最初の en を作り出した。ブローダーによれば、en は検索エンジンへのスパム追加を95%削減できたという。

3. 用途
-----

en はボットが種々のコンピュータのサービスを使うのを防ぐために使われる。 応用用途として挙げられることとして、ボットがオンライン投票に参加したり、無料メールやサービスのアカウントに登録するのを防ぐことなどがある。さらに最近では、ボットが生成するスパムを防ぐために、メールメッセージが配達される前に送り主が en テストの通過を要求することなどがある。

また、en は人間のリソースを使うこととなるが、この労力を「人間であることの確認」以外にも文書の電子化に使うという en プロジェクトも行われている。

4. 特徴
-----

定義より、en は以下の特徴を持っている:

en は自動化されている。テストを管理運用するにあたって人間の介在をほとんど、あるいは全く必要としない。これはテストにおける人間の管理や介入の必要性を避けることができ、コストや信頼性においても明らかに有益である。
使用されるアルゴリズムは多くの場合公開される。ただし、特許によって妨げられるかもしれない。これが規定されているのは、en の突破には、リバースエンジニアリングなどの手法を用いて達成できるような単なるアルゴリズムの発見よりも、人工知能の分野における難問の解決法を要求する、ということが必要なためである。

5. アクセシビリティ
-----------

視覚認識の問題に基づく en は、視覚障害を持ったユーザが保護されたリソースにアクセスする際の妨げとなる。en は機械可読ではないように設計されているので、スクリーンリーダのような支援ツールでも解釈できない。

しかし、en が視覚的である必要はない。 例えば音声認識のように、人工知能によって解くのが困難な問題であれば、en として使うことができる。ユーザが音声認識問題を選択できるような en の実装もある。しかしながら、音声en の開発は画像en よりも後れを取っており、あまり普及はしていない。また、テキストの意味を理解させるような問題も en として用いることができる。例えば、論理パズルや常識・計算問題などである。

W3Cによる論文では en のアクセシビリティ上の問題点がいくつか示されている。

6. 回避策
------

en を回避するために、囮ウェブサイトでユーザを集め、彼らを騙して en の問題を解かせるという手法がとられることがある。

ユーザがスパマーの開設した囮ウェブサイトを訪れると、スパマーのサーバーは攻撃対象のサーバーにアクセスし、アカウント取得等の処理を開始する。そして攻撃対象の en をダウンロードし、囮ウェブサイトにアクセスするための en としてユーザに提示する。ユーザは、en が再利用されるとは知らずに、正しい回答を提供する。そしてスパマーはその回答を利用し、攻撃対象の en を突破することができる。

また、大量の人員を雇い、彼らに解かせるという手法もある。W3Cの論文には、「そのようなオペレータは一時間に数百の en を解読できる」とある。一方、この手法は経済的に実行不能であるとする指摘もある。

MoriらはIEEE CVPR'03において、最も有名な en の一つであるEZ-Gimpyを突破する手法を詳述した論文を発表し、その手法は92%の確率で突破可能であると検証された。また、より複雑であまり広く普及していないGimpyプログラムが、同じ手法により33%の確率で突破された。しかし、彼らのアルゴリズムが実際に実装され、利用されているかどうかについては、現時点でははっきりしていない。

機械による解読も巧妙になってきている。PWNtchaのようなプロジェクトによって、広く普及していた en の解読精度が目覚ましく進歩し、結果として en を過剰に難化させることとなった。

文字認識技術や囮ウェブサイトによらず、既知の en 画像のセッションIDを再利用するという手法もある。

7. 過剰な難化
--------

視力に問題のない人にとってさえ、知能化が進む認知ソフトウェアに対抗して設計された新世代の en は解くことが著しく困難である。すでに無視できないほどの人数の認識能力を上回っており、結果として人間の応答すら遮断してしまっている。

en を認識できなかった人々は応答を諦めているものと考えられ、そのような人々にとって過剰に難化した en は単なる障害でしかない。

他、正しい文字を入力しても、弾かれることがある。

8. 脚注
-----

9. 関連項目
-------

認証
reCAPTCHA

10. 外部リンク
---------

[1]
[2]

10.1. en の実装
------------

10.1.1. en
----------

[3]date=2020年11月}} en を実装する en モジュールのコレクション
[4]

10.1.2. en
----------

[5]
[6]
[7]
[8]

10.1.3. PHP
-----------

[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]

10.1.4. en
----------

[18]
[19]

10.1.5. en
----------

[20]

10.1.6. en
----------

[21]
[22]

10.1.7. en
----------

[23]

10.1.8. en
----------

[24]

10.2. en サービス
-------------

http://www.protectwebform.com/
http://captchas.net/
http://address-protector.com/

10.3. en 突破
-----------

http://www.captchacreator.com/
[25] - OCRを用いない en の突破
[26]
[27]date=2020年11月}} Mori他。IEEEから刊行。IEEEの有償の会員のみが表示可能
[28]
[29]
[30]
[31]