http://blogs.wankuma.com/nagise/archive/2007/10/26/104428.aspx
本気でCAPTCHAを破ろうと思えばどうにかなるのですが、それでも付けるところは多いですね。それは何故でしょう?
こういった仕組みを作るのは「何かを守る」という目的があります。例えばパスワードという仕組みはIDを守る為にありますし、非可逆暗号によるデータ管理は、管理者から機密情報を守る為にあります。
では一体何を守るのでしょうか。
例えば会員登録フォームにCAPTCHAを付ける事によって、スクリプトによるアカウント取得を防ぎます。メール送信フォームにCAPTCHAをつけることによってスパム発信源にする事を防ぎます。コメントフォームにCAPTCHAをつけることによって、コメントスパムを防ぎます。
つまり、スクリプトによる機械的な処理を防ぐ為にあります。機械と人間を区別する為にあるのです。
例えば入力フォームに[5942を入力してください]と文字列に記述されていた場合、これを破るにはどうすればよいでしょうか。答えは簡単です。HTMLを解析すればよいのです。こんなCAPTCHAでは簡単に破られますね。そこでさらに破りにくくする為に文字画像が登場します。それでも単純な文字画像の場合、簡単なプログラムで破られてしまいます。文字解析のアルゴリズムは日々進化していますし、ソーシャルでCAPTCHAを破るサービス等もあるみたいです。
解析プログラムに解析されないように複雑化したCAPTCHAは、人間が読めなくなることがあります。これを嫌う人は結構いるのではないでしょうか。
前述したとおり、CAPTCHAは何かを守る為にあるのですが、本気でクラックしようとする人間に対しては無力だったりします。それなに、何故CAPTCHAをつけるのでしょうか。これはバランスの問題かと思います。CAPTCHAを破る行為に見合う対価が得られるかという問題です。
恐らくはてなは、「本気で破ってまでスパムコメントする価値があるのか」というところと、「そこそこ人間も読みやすい方がいいかな」というところで、あの実装なんでしょう。これがhotmailのようなアカウントに一定の価値があるサービスの場合、もっと高度なCAPTCHAが必要になるでしょう。
ところで、こんなCAPTCHAもあるそうです。猫認証と呼ばれるものです。パターン認識はきわめて難しいでしょう。
CAPTCHAを設置する際は、破る人にとって破った結果が、一定の価値をもたらすものなのかを精査するべきでしょう。CAPTCHAを破る事によって得られる価値がないのにも関わらず、視認性を無視したCAPTCHAの設置は単なる自意識過剰です。設置するなとも設置するべきとも言いませんが、闇雲に設置するのはいかがかなと思います。