SVX日記
2007-06-06(Wed) ゲイツ認証ならぬSVX認証
故あって、非常に簡易的な認証システムを必要としている。で、今の状況にピッタリなのが、いわゆる「ゲイツ認証」なのであった。
完成イメージは以下のような感じ。SVXの画像をすべてチェックして認証ボタンを押し、正しくチェックされていれば認証が完了し、tDiaryのコンテンツにアクセスできるようになる。一度認証したら、以後クッキーの続く限り、ページへのアクセスは自由だ。
2007-06-08(Fri) tDiary用「鉄塔認証」プラグイン完成
ちゅーわけで、tDiary用の「ゲイツ認証」プラグインが完成した。つーか、実は一昨日に記事を書いた時点でかなりの状態までできていたのだが。
で、一昨日の時点では「SVX認証」などという名称の予定であったが、この名前はヤメた。というのも、肝心の多数のSVXのイメージを十分な品質で揃えられなかったからである。オレ著作権で大量の同テーマの写真というと……実は昔こういうサイトを作っていたもんで……あるんですな、大量の「送電鉄塔」の写真が。というワケで「鉄塔認証」という名称にした。英語名「PylonAuth」。中国名「白竜逢瀬」(←ウソ)。
別にこのサイトに認証を適応するつもりはないが、ココで動作を試すことはできる。主に、検索エンジンやウェブアーカイバを排除するために作った認証方法である。
なお、CAPTCHAイメージはImageMagickのconvertコマンドを使って合成しているので、ちゃんと1枚のイメージになっており、こういうマヌケなコトにはなっていない。また、サーバで正解を保持するのはやっかいなので、認証情報はクライアントから送り返すようになっているが、正しくMD5を使っているので、理論的に破ることは十分に困難であると思われる。
認証に使うイメージの枚数は可変なので、それを8枚くらいにして、真にイメージの法則を知っている人間しか正しい選択ができないようにすれば、実用的な認証にもギリギリ利用できるかもしれない。もし、何らかの方法で1枚のイメージに2個のチェックを付けられるように工夫すれば、5枚で10ビットとなり1024通りだ。こうなれば数字3桁のCAPTCHAと同程度の防御率となる。
また、CAPTCHAイメージを毎回生成するとサーバの負荷がバカにならないので、頻度を下げ、過去のイメージを使いまわすことができるようにも作ってある。デフォルトでは新規生成は10回に1回、100個のイメージを保持し、使いまわすようになっている。
プラグインはGPLで公開する。プラグイン本体とサンプルの鉄塔認証データ。インストールの方法はmisc/plugin/pylonauth_plugin.rbにコメントとして書いてある。