[P2P]DHTにおけるアタックの可能性について
ファイル交換ソフト等でDHTの導入が相次いで発表されている。Jxtaでも一部ではあるがDHTの機能が具備されるようになったことから、P2PネットワークにおいてDHTは欠かせないものとなるに違いない。
ところで、DHTは本当に万能な存在なのだろうか?ここでは簡単な例を作ってアタックの可能性について考えてみる。DHTとしてChordを使う事にしよう。
例えばファイル共有を行うとする。DHTにはそのファイル名及びそのハッシュ値、ファイルを保持しているノードのIPアドレスが書かれているとする。このときに明らかにそのハッシュ値を保持しているノードはファイルを保持しているノードを知ることになる。ただし、ファイル名を書かなければこのリスクを下げる事はできるだろう。(なぜならファイル名のハッシュ値からファイル名を計算するのは困難だから。)いずれにせよ、ノードはあるノードがXというIPアドレスから繋がっているということはわかってしまう。
次に考えられるのは、ノードが自分の保持しているDHTのメタデータを強制的に削除してしまうことである。これは深刻な問題かもしれない。DHTの場合、お互いの保持しているメタデータを同期して、ノードが離脱してもNW全体としてメタデータが保持されていることとなる。そこで、あるメタデータAをメインで管理しているノードAがあるとすれば、そのノードAと同期しているノードBはノードAがメタデータAを削除すると、ノードBもメタデータAが削除されるという風に伝播される可能性がある。これを防止するにはソフトウェア的にメタデータ領域をユーザから隠蔽させるなど一捻りする必要があるかもしれない。
DOSアタックはどうだろう?DHTではメタデータを分散して保持してるために全体としては機能はほぼ停止しないと思われるのだが本当だろうか?
今、あるハッシュ値Aを管理するノードAに対してDOSアタック元のノードXが参照を行うとしよう。
すると、ノードAはDOSアタックによって当然ノードが落ちる。すると、ノードAと同期しているノードBにもDOSアタックの被害が及ぶ。この連鎖反応はおそらくハッシュ値Aが他のノードに引き継がれる速度よりもノードが落ちる速度が速ければある一定時間でDOS攻撃は終了し、ハッシュ値Aに対して全てのユーザはアクセスできないということは続くだろう。逆にまたDOSアタック元のノードのハッシュ値Aの参照のためのルーティングのためにP2Pネットワーク全体の負荷は上がるが、参加ノード数が非常に大きければこれは分散され、それほど大きなウェイトは占めないだろう。
DHTのDOSアタックについての論文はまだ見たことが無いので、この辺を研究すると面白いかもしれない。
「パソコン・インターネット」カテゴリの記事
- 第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