ねこ認証とはてなアタック

  • コンピュータと人間をどう区別するか?人間には簡単にできるけれどコンピュータには簡単にできない仕事をやらせればよい。これを自動化チューリングテストと呼ぶ*1。MSNの.net passport取得の時なんかにぐにゃぐにゃとした文字を読み取らされて、それを入力させられることがある。これはロボットなどが機械的にアカウントを取得するのを防ぐために、チューリングテスト解かせて、人間だけがアカウントを取得できるようにしているのである。
  • もうすこし詳しく言うと、これは実は一方向性関数みたいなもので、コンピュータは自分でチューリングテストを作ることができるけれど、それを解くことはできない、という性質を利用している。ぐにゃぐにゃアルファベット認識問題では、コンピュータはぐにゃぐにゃ問題を簡単につくることができるけれど、ぐにゃぐみゃ画像から元の文字を復元することはほとんどできない。だから巡回ロボットがアカウントを詐取しようとしても、自動化チューリングテストを突破できないため無理なのだ。一方人間の脳は今のところコンピュータよりも視覚情報の処理に優れているから、多少ひしゃげたアルファベットでも瞬時に見分けることができる。
  • こういう性質の問題ならばなんでもいいんだよ、ということで、ぐにゃぐにゃアルファベット問題よりもはるかに魅力的なねこ認証(kitty authentication)が Welcome to THEPCSPY, lair of Oli Warner に紹介されている。3*3マスの画像の中から3枚のねこ画像を選ぶというテストである。ただし、ねこ画像は無限にたくさんは無いだろうから、実用レベルとして厳密にはセキュアだとはいえないと思うのだけど、一応自動化チューリングテストを構成してはいる*2

*1:Captcha(キャプチャ、"Completely Automated Public Turing test to tell Computers and Humans Apart)ともいうらしい

*2:一方、ぐにゃぐにゃ文字問題はほぼ無限に生成できる。ひょっとしてねこ画像も画像圧縮の過程なんかで大きな冗長性をもたせて人には同じ画像にみても機械からは同一画像と判別できないような細工をしているのかも。