at posts/single.html

OpenID と認証

先日の日記へのツッコミや、『OpenID は「認証」としては使えない』、そしてどんぞこ日誌(2005-05-30)を読んで、なんとなく問題が見えてきた気がする。

OpenID は何をやってくれるのか?

仮に、 OpenID のユーザ ID が(URL でなく)任意の文字列だとすると、 OpenID は誰でも自由にユーザ登録ができるシステムだと考えられる。 この場合、このユーザID自体は何の意味も持たない。 なぜなら、誰でもユーザ登録ができるので、ユーザ登録をしていること自体に価値はないから。

ただ、実際の OpenID のユーザ ID には URL を使っていて、他人の URL を使ってのユーザ登録はできないような仕組みになっている。 もちろん、その URL に脆弱性が無い限りだけども。 OpenID は、「あるユーザ」が「特定のURL」に関連付けられていることを保証してくれている。 でも、その「特定のURL」のユーザが信用できるかどうかは、OpenIDは何も保証してくれない。

どんぞこ日誌(2005-05-30)から引用。

それから重要なのが、現状のOpenIDは認証として完結しないということ。OpenIDは「今日コメントしたボブと名乗る人物は、昨日コメントしたボブと同じURLを管理下におく誰かです」ということしかわからないわけです(参考)。

OpenID の認証方法について

OpenID での認証は、TypeKey認証のようにどこか一箇所に認証サーバがあるというものではない。 ユーザが入力したユーザID (URL) ごとに、OpenID プロトコルに対応した認証サーバが必要になる。 でも、それだと大変なので、delegate という仕組みを使って、他の OpenID 認証サーバに認証を依頼することができる(ただのにっきの図を参照)。

ここで問題になるのは、認証サーバごとに認証のレベルが違うということ。 辺境から戯れ言で述べられているけど、同じOpenIDのサーバである TypeKey と Videntity.org でも、レベルが違う。 極端に言えば、パスワードが要らずに他人でログイン可能な OpenID サーバだって簡単に作れてしまう。 (そのサーバがユーザに利用されるかどうかは別問題だけど)

辺境から戯れ言から引用。

たとえユーザ同士で信頼関係を構築していたとしても,それを支える認証サーバの運用がヘボければ,そこからセキュリティは崩れる。

こういう危険性は考えておかないと。

信頼をどうやって構築していくか

信頼を構築しないと使えない以上、これは、OpenIDは何に使えるかを考えることと同じなのかも。 基本的に、サービス側で信用を構築していくモデル(メール、SPAM判定)よりも、ユーザ側で信用を構築していくモデル(SNS)のほうに向いている気がしているけど。 URLとFoaFを関連付けるとかね。

どんぞこ日誌 - FOAF認証、OpenID その続きを読んで、もう少し勉強しよう。

追記 (2005/09/25)

[辺境から戯れ言 − FoaF認証より。

FoaF に WOT を組み込むのなら今の(HTML のlink 要素に情報を書き込む) OpenID のやり方は筋が悪すぎる。どうせやるのなら OpenID の語彙を作って FoaF に組み込むべきだろう。その上で FoaF に電子署名を施せばよい。それで(公開鍵が有効であれば) FoaF および OpenID の本人性は担保される。

なるほど。 確かに、電子署名で本人性を担保するのは一つの理想形。 でも、最大のネックは鍵 (Private Key) の管理だと思う。 DSA鍵を使ってsshログインをしている人かPGPを使っている人くらいしか、なじみは無いだろうから。

FoaF認証じゃなくてFoaF承認の方が適切らしい。 アクセスコントロールの話なのね。