フィッシング詐欺も怖くない?
2008.09.12
、といいのですが(苦笑)。このエントリでは、ゼロ知識証明によるログイン認証のやり方(たとえば Fiat-Shamir 認証 このPDFの28ページ以降にきっちりした説明があります)を紹介します。このやり方で認証すれば、
たとえ認証の全プロセスが盗聴されていたとしても、一切パスワードが漏れず、盗聴者が所有者に成り代わってログインすることができない
という魔法のようなことが出来てしまうのですよ、実は。
ただし、このゼロ知識証明は、「対話証明」と呼ばれるやり方で、
一度パスワードを提示して終わり
というものではないのです。何回かのやり取り(IDのビット数分の回数で充分ですが)を行って、全体で「知識がない場合、これをすべてパスする確率は極めて小さい...」となるというものです。けど、皆さんそういわれても
信じれない!
という方がほとんどじゃないでしょうか?? そういう方はまず Wikipedia のゼロ知識証明の項をお読みになるといいのでは。
ゼロ知識証明の研究は、ある人が秘密の知識(パスワードなど)を所持していることをもって本人であることを他の人に示したいがこの秘密自体は誰にも開示しなくてよい認証方式を実現することが動機である。(略)ゼロ知識証明の応用例には、公開鍵暗号、デジタル署名、ユーザ認証などがある。(略)個人情報を用いてユーザ認証を行う場合、ユーザはゼロ知識証明のプロトコルに従い、個人情報を入力する。健全性があるので、ユーザは真正な入力でないと正しさを証明できず、そしてゼロ知識性があるため、個人情報そのものは漏れることはないことになる。
と書かれてます....このページにもある「洞窟の問題」を読むとイメージが沸くと思います。どうです、納得していただいけました?
ですから、ゼロ知識証明を応用したプロトコルを使えば、見せ掛けの偽 Web サイトを使った「パスワード盗み」は事実上不可能になるわけです....だったらフィッシング詐欺は怖くないでしょ。ここでのやり取りをいくら記録したところで、その情報を元に真正な Web サイトにログインできるわけがないのですから。実はOpenID でも、
ひょっとして、サービス提供者がホントに認証サーバにリダイレクトしているのではなくて、見せ掛けの偽認証サーバに送ってるとか、あるいはプロキシ動作をして、送られるリクエストを横取りしてる?
とか、心配しませんか? これら、全部手口としてアリです。ですから、
- 1. アドレスバーに表示されるURLを真剣に確認する
- 2. SSL証明書の発行先を確認する(出来れば本来の発行者を記憶しておくといいのでは? ベリサインだと法人登記による証明が必要ですから、少なくとも「実在する法人である」ことの証明力はありますよ)
というあたり、実は
OpenID を使う上での必須項目
じゃないかと思うのです(たとえばYahoo! でも「Yahoo! JAPANのログインページが正しいかを確認するには」でちゃんと警告しています)が....が、ちゃんと実践してます?
しかし、ゼロ知識証明を使ったログイン認証が普及したら、
ログインのプロセスをどう監視しても、パスワードを取得できない
ということになるわけです。ですから、これ
個人の注意力とか、警戒心に訴えるのではなくて、システム的に悪事を働くことを極めて難しくする
という「正しいアプローチ」なのでは..と私は思うのです。
まあ、ゼロ知識証明によるログイン認証の普及という面では
- 1. ブラウザでBigDecimal な重い計算をさせる必要がある。
- 2. 対話認証なのでリクエスト・レスポンスが一回で済まず、トラフィックが増える(Ajaxでやればいいのかな?)。
- 3. 安全性を考えると、やや長いパスワードである方がいいから、手で入力するのが難しいか? できればブラウザで保持したくないよね...
- 4. レガシーなアカウント・パスワードのやり方とは全然違うので、ユーザに心理的な抵抗感があるか?
- 5. 普通のブラウザを使う場合は、自前の「パスワードを直接は絶対送らない」ページからログインすることになるから、少し使い方が違うなぁ....
というあたりが問題かもしれませんが....とはいえ、OpenID が流行するのならば、いっそこと「ゼロ知識証明もあります、どう?」というのを広める必要があるのかもしれません。
投稿者 : 杉浦 こずえ | 投稿日時 : 2008.09.12 15:27
あすなろBLOGのトラックバック・コメントは承認制になっています。
すぐにブログに反映されませんので、ご了承ください。





