[P2P]匿名システムにおける局小的非匿名システムの提案
昨日のBlogで匿名システムの中で、ある一定の権限の人が正当な手続きをすればデータの削除、あるいは個人データの開示をする事が必要かもしれないことを説明した。今回はどのようにしてそのようなモデルが実現するか案ベースだが説明をしたい。今回は分散ハッシュでP2Pシステムを運用し、例として掲示板システムを挙げておこう。
まず、各ユーザname(ノードXとしよう)は公開鍵p_key・秘密鍵s_keyのペアを2つ作る。これを{p_key1,s_key1},{p_key2,s_key2}としよう。Node_ID=hash(name)となるノードAに対して、{p_key1,p_key2,name}を格納する。
通常ノードXは掲示板に書き込むときにs_key1を使って署名を行う。これを掲示板名bbs_nameにおいて
Node_ID=hash(bbs_name)となるノードBに書き込み、ノードBはノードAのp_key1を使って署名の検証性を確認する。ここまでは先日書いたとおりである。これに加え、ノードXはソフトウェア上で個人情報、アクセス時間などをs_key2で暗号化し、(かつこの情報はs_key2を使って署名を行う)ノードBに書き込む。これによって、ノードBには掲示板情報と暗号化された個人情報が格納されている事になる。ソフトウェアは改ざんしにくいことを前提とし、個人情報の暗号化については不正ができない(例えばIPアドレス詐称など)と仮定した。もっとスマートな方法があるかもしれないが。
さて、ここからが問題である。まず、s_key2は秘密分散方法によって閾値z1でz2個に鍵を分ける。いまz1=3,z2=5としよう。すると、
s_key2はs_keyz1,s_keyz2,s_keyz_3,s_keyz_4,s_keyz_5にわけ、それぞれNode_ID=hash(name)+y,hash(name)+2y,hash(name)+3y....となるノードに格納する。s_keyz_iは少なくとも3つ集まればs_key2に復元できる。ただし、s_key2を復元するにはNode_ID=hash(name)+q×yとなるノードの複数の協力がなければならない。
s_key2を得た場合、これを使って掲示板に書き込んだ時のノードXの個人情報が判明する。また、s_key2で電子署名をした削除要求により、ノードBはそのノードに対する書き込みをその部分だけ削除することができるようにシステムを作っておこう。
このシステムはP2Pノードに参加している数個のノードの協力が必要である。つまり、だれかが削除要求をしても、参加してるノードがそれが削除に当たらないと判断すれば、掲示板データは削除されないし、個人情報も漏れない。また、ノードの協力なしに組織や団体が一方的に情報を削除したり、調査をすることはできない。こうすれば、モラルが一定以上に保たれたコミュニティが生まれるし、調査なども適切な権限の下に行えると考えられる。
このような匿名性のバランスを保つ方法は今後ホットトピックになることだろう。
「パソコン・インターネット」カテゴリの記事
- 第3回Twitter研究会のライトニングトークの実施について(2012.01.25)
- 第3回Twitter研究会公式サイトの公開+講演概要3つ追加しました(2012.01.15)
- 第3回Twitter研究会参加者募集のお知らせ+講演概要について(2012.01.09)
- 2012年のIT系勉強会開催予定について(2012.01.03)
- 第3回Twitter研究会の講師を発表します!(1/28[土]開催)(2011.12.30)

Comments