« [P2P]P2Pとレポート | トップページ | [P2P]匿名性に求めるものとは? »

2004.12.08

[P2P]P2PとSNSの融合~その1:ユーザ認証

MixiでP2PとSNSに対するディスカッションが盛り上がっている
P2PとSNSの融合はあり得るか
ここでは技術的な観点からどうすればSNSをP2Pで実現するか眺めてみよう。
いきなりSNS機能を全部実現するのはムリなので、少しずつ考察してみる。

SNSでは友達の友達までがプロフィールやBlogを見ることが出来たりする機能がある。そこで、ある人がその人の友達の友達であることを証明する必要がある。まずこれを実現してみよう。
認証といえばPKIかPGPなのだが、今回はPKIを取ってみよう。(ということは証明書発行、廃棄についてはサーバを使う事になる。)

今、A、B、Cがいるとする。このとき、AとB、BとCは友達関係だがAとCは直接友達の関係ではない。さて、AはCにどうやって、Bと知り合いであるのか証明してみよう。

AがBと友達関係であれば(Mixiでいうマイミク)AのプロフィールとそれをAの秘密鍵で電子署名したものについて、
Bの秘密鍵で電子署名すれば良い。これを「AのBによるプロフィール証明書」と呼ぶことにする。Aはこれを入手しておく。

CがAはBの友達であることを検証しよう。
Aは「AのBによるプロフィール証明書」をCに送る。ここでまずDHTの原理からHash(name_B)となるNode_IDにBの公開鍵が置いてあるので、それでBの署名を確認する。今度はHash(name_A)となるNode_IDにAの公開鍵が置いてあるので、それでAのプロフィールの正当性を証明する。これで検証は終わりだ。
ちなみにAとBの公開鍵はCAによって電子署名されている事に注意。N次の友達の輪の証明もこれをマネしてできないことはないが、面倒なことになるだろう。

もうすでにお分かりだと思うが、ある人がコミュニティに参加できるかどうかは電子証明書をDHTの参加しているノードに照らせばできる。つまり、ユーザの電子証明書におけるCAの署名を確認するのだ。もちろん、CAは随時不要・不正なユーザに対するCRLリストをDHTに格納するので、それを参照する必要もある。つまりある名前CのCRLはNode_ID(name_C)においてあるのだ。

もうひとつ。先ほど信頼の輪を多重電子署名で処理していたが、FOAFに電子署名を使っても同じようなことが実現できる。こちらの方がスマートだろう。
FOAFについては、下記のページがいいだろう。
メタデータによる知人ネットワークの表現
つまりA⇔B⇔Cという信頼関係があるとき、BはFOAFを作ってC、Aが友人であることを記述。それにBの秘密鍵で電子署名をする。このFOAFはBの公開鍵と共にNode_ID(name_B)に格納。CはBの公開鍵でFOAFの電子署名を検証後、AがBの友人であることがわかる。ただし、Bが勝手にAの友人と名乗る事が可能である事に注意!そのため、Aのリクエストがあってから、CはBのFOAFの検証しAがBの友人を確認するという手順を取ることになる。

認証サーバがあるとP2Pっぽくなくてヤダ!という人はPGPで上記の事が実現できるかどうか検討して欲しい。


|

« [P2P]P2Pとレポート | トップページ | [P2P]匿名性に求めるものとは? »

パソコン・インターネット」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: [P2P]P2PとSNSの融合~その1:ユーザ認証:

» SNSとP2Pの融合(mixiのコミュニティより) [hsato V2.0]
8月から議論されています。 SNSをP2Pのようなサーバレスで作ったらどうか、SNSはインターネットのオーバーレイである、友達同士を確認するために認証を組み合... [続きを読む]

受信: 2004.12.10 10:01

» SNSはオープンになるべきだと思う理由 [ここギコ!]
[P2P]P2PとSNSの融合??その1:ユーザ認証 -Tomo’s HotLine- リンク先は、FOAF等を認証アカウントに用いて、P2PのSNSを構築する... [続きを読む]

受信: 2004.12.17 12:18

» 匿名性とWinnyそしてSNS [みよしてつおのぼやき部屋]
Winnyの開発者が逮捕されたことは記憶に新しいが、なぜ逮捕されなければならなか... [続きを読む]

受信: 2004.12.28 01:27

« [P2P]P2Pとレポート | トップページ | [P2P]匿名性に求めるものとは? »