あらすじ:パスワードではなく画像の組み合わせを使って認証させる仕組み(RecognitionAUTH)を採用したOpenIDプロバイダを見つけたが、これはあまり良くないんじゃないかと思った。
myvidoopという、パスワード不要のOpenIDプロバイダを見つけた。
よくあるOpenIDプロバイダは普通にユーザ名とパスワードでログインを求めてくるが、myvidoopでは画像を使ってパスワードなしでログインできるところが面白い。
まずユーザ登録時に好きな「カテゴリ」を3つ選んでおく。カテゴリは「犬」、「高層ビル」、「飲み物」、「飛行機」などで、全26種類。ログイン時する際は、ユーザ名を入れると写真がサムネールで15枚ほど表示される。その中から自分のカテゴリの写真3枚を見つけ、一緒に表示されているアルファベットを入力する。正しければログイン完了だ。

ちなみに画像はカテゴリごとに一枚というわけではなく、同じ「犬」でも色んな犬の写真が出てきたりする。
RecognitionAUTHという名前でConfidentというところが売りに出しているこのシステム。試したみた感想だが、あんまり良くないんじゃないだろうか。端的に言うと簡単ではあるが、カテゴリを忘れにくいわけでもなく、自分のネット界の要となることを任せるには安心感が足りないという印象だ。
本棚.orgと比べてみる
画像でログインといえば僕は本棚.orgの例が浮かぶ。こちらは画像を自前で用意し、それぞれにいくつかの選択肢をつけてクイズを作るというもの。例えば自宅近くの公園の写真を使って「5丁目の公園」「4丁目の公園」「駅前」などを選択肢とすればよい。そんな画像を数枚使えば、数クリックでログインできることになる。
こういった認証システムを検討する時は、いくつかの重要なポイントがあるだろう。まずはもちろん、破られにくいかどうか。破られるというのにはDoS的なものもソーシャルエンジニアリングも含む。例えばパスワードは組み合わせ的には比較的破りやすいし、80%の人がチョコレートと引換にパスワードを教えてしまうというような話があった。
次に、安心感があるかどうか。様々な認証システムを見ていると、安心感があることと実際に安心であることは必ずしも同じではない。例えば指紋認証などはナイーブには安心感があるけども、実際の強度はそれほどでもない。
ログインできない事はないか。一番よくあるのはパスワードを忘れることだが、他にもたとえばFlashやJavascriptなど特定の環境に依存してしまうことも考えられる。
使いやすいかどうか。これは一つの認証方式でも大いに変わりうる部分だ。普通のパスワードでもそれなりに使いづらいが、オンラインバンキングでは何故かソフトキーボードをちまちまとクリックしなければいけない所などもあり、そうなると最悪である。
大体において安全性と使いやすさ・失敗しにくさはトレードオフの関係にある。たとえばパスワードは長ければ長いほど安全だが、ログインにかかる時間は長くなるし、忘れやすくもなる。したがって認証方式には一長一短が出るのだが、それが利用シーンに適した一長一短なのかどうかが問題になる。
さて本棚.orgの場合、破られてもせいぜい知らない本が登録されたり本が削除されたりするだけだ。大した被害ではない。まぁ本が消されてたら困るといえば困るが、そのせいでピザが届いたり壷が届いたりすることはない。一方、myvidoopはOpenIDプロバイダである。ログインIDが一つになって便利だが、一度破られれば自分の使っているあらゆるWebサイトへログインを許すことになってしまう。これは重大な違いだ。
それを踏まえてRecognitionAUTHの安全性を考えると、極めて不安である。まず、写真のカテゴリは3個から最高でも5個までしか選べない。ということは結局のところ、アルファベット5文字で認証するわけだ。単純に組み合わせの数で言うと本棚.orgの一般的なユーザよりは多くなるが、それでもDoSが可能ならばあっという間の範囲だ。それに、打ち込む文字列がワンタイムで毎回変わるというのは一見良さそうに見えても殆ど役には立たないはずだ。キーロガーだけでは破れなくなるが、OCRか単純な画面キャプチャを組み合わせればいいだけの話である。
また、五個のカテゴリのソーシャルな脆弱性を考えると、パスワードよりもなお悪い事が分かる。というのは、「パスワードはakI928DCです」というのよりも「キーカテゴリは猫と船とオフィスです」という方が簡単だし伝播しやすいからだ。口に出すのも恥ずかしいようなカテゴリばかりならソーシャルには強くなるかもしれない。
安心感としても3〜5文字というのは不安ではないだろうか。少なくとも僕は不十分な印象を受けた。それに、設定したカテゴリを忘れないかというと特にそんな自信が生まれるわけでもない。
結論
RecognitionAUTHをボコボコにしてしまったが、結局言いたいのは、OpenIDという利用シーンに適してないということだ。利用方法は実際に簡単なので、その点では優れていると思う。Twitterぐらいのサービスひとつを守らせるなら簡単さが生きると同時に不安感が目立たなくなるだろうから、この仕組みはきっとそのあたりで使うべきものじゃないだろうか。