2013年4月8日月曜日

画像認証カタログその1:PassPoints

画像認証ブログなう

画像認証と言うと「CAPTCHA」がすっかり有名になりました。有名というか悪名高いというか、まあ面倒な仕組みとして認識されているものと思います。
このブログではCAPTCHAは脇においておいて、画像で認証する方式を扱いたいと思っています。つまりパスワードの役割を果たすような画像を用いた認証方式について綴っていきたいと思っています。もちろんCAPTCHAとここで言う意味の「画像認証」はある意味親戚というか地続きなのですが、原理や用途が少しずれているので一応区別していきたいと思います。

画像で認証してパスワードにする話

画像で認証してログインできるようにするという話は昔からあるにはあるらしいです。
そんなに珍しい発想ではないらしい。
まあ詳しい歴史とかは今後また研究していこうかと思いますが、ひとまず有名どころを一個ずつ紹介していこうかなとか。

PassPoints

最初のやつはPassPointsです。
PassPoints: Design and longitudinal evaluation of a graphical password system
2005年の論文ですね。原理は、画像を提示されたらその上の座標を複数順番にクリックするというものです。ある意味、現在のWindows 8の画像認証の直接のご先祖様のようなシステムです。(Windows 8の方式については後々触れる機会があるでしょう。)



分類と考察

分類としては「システム提供画像」型「一枚絵」型「座標」型になるかと思います。(分類については追々整理していきます。)
そんなに穴のあるシステムではないと思います。そこそこの実用性と堅牢性があるんじゃないかと思っています。何もないところから破ろうと思えばかなり困難ではないかと思いますし、ポイント数を増やせば強度は上げることができます。
ただし画像が毎回同じというのが弱点でしょう。人間がこの手の画像上に任意に座標を設定しようとする場合、多分、何か目印になるものを選ぶと思います。たとえば写っている人物の顔とかパラソルの先端とか…。そういうところから突破されそうですね。
それと現代のタッチパネルシステムで実装することを考えた場合、パネルに指紋が残りますので、それを利用すると突破されやすい気がします。
あとネットワーク越しにサーバーに座標を送って認証することを考えてみると、ちょっと難しいんじゃないかという考察ができます。座標を生で送信するのは論外として、一枚の画像を表示したままにしてその上のクリックされた座標を次々送信するというのは大変かも知れません。盗聴されると怖いですし。
Webで実装するとしたらどうするのだろう。JavaAppletで実装して座標は最後にまとめて暗号化して送信すればいいのかな。HTMLで構成したweb UIでもJavaScriptを駆使すればなんとかなるのかな。

まとめ

実はPassPointsそこそこ面白いというのが分かりました。
Modeling user choice in the PassPoints graphical password scheme(2007)
Purely Automated Attacks on PassPoints-Style Graphical Passwords(2010)
みたいな関連論文も出てますね。自動攻撃の論文は面白そうです。

0 件のコメント: