310 likes | 596 Views
DHTにおけるセキュリティ対策. Tomo’s Hotline 西谷 智広. 1.自己紹介. Tomo’s Homepage ( P2P 関連) ,Tomo’s Hotline の執筆 -Skype Conference 、P2P・DHT勉強会立ち上げ -UNIX Magazine に 10 が都合DHT記事が掲載 -VoIP Conference を立ち上げ予定(2007年前半). 2.DHT のセキュリティとは?. セキュリティ三大要素: CIA 機密性( Confidentiality) 認証 データのアクセス権設定 信頼されたノードとの暗号化通信
E N D
DHTにおけるセキュリティ対策 Tomo’s Hotline 西谷 智広 第2回DHT勉強会資料 西谷 智広
1.自己紹介 Tomo’s Homepage(P2P関連),Tomo’s Hotlineの執筆 -Skype Conference、P2P・DHT勉強会立ち上げ -UNIX Magazineに10が都合DHT記事が掲載 -VoIP Conferenceを立ち上げ予定(2007年前半) 第2回DHT勉強会資料 西谷 智広
2.DHTのセキュリティとは? • セキュリティ三大要素:CIA • 機密性(Confidentiality) • 認証 • データのアクセス権設定 • 信頼されたノードとの暗号化通信 • 完全性(Integrity) • データの改ざん • データの紛失 • 可用性(Availability) • ノードIDの偽装 • 悪意のノード注入によるアクセス妨害 • ルーティングテーブルの改ざん • DHTセキュリティ研究は今後、注目される(されるべき)分野!! 第2回DHT勉強会資料 西谷 智広
3.ルーティングの正当性検証 • ノードIDの検証 • ノードが管理する情報範囲(ハッシュ値の検証) • ルーティングテーブルの正当性検証 第2回DHT勉強会資料 西谷 智広
3-1.ノードIDの偽装対策 • ノードIDを該当ノード情報から検証できるシステムが必要 • 方法としては、 • ノードのIPアドレス+ポート番号のハッシュ値をノードIDとする • ノードに払い出された電子証明書内容のハッシュ値をノードIDとする(西谷案) 2種類が考えられる。 第2回DHT勉強会資料 西谷 智広
3-1.ノードIDの偽装対策[案1] • [案1]ノードのIPアドレス+ポート番号ハッシュ値をノードID • メリット • 検証が楽(IPアドレス、ポート番号は直接通信する時に必要) • 開発費用小 • デメリット • ノードID衝突の可能性(プライベートアドレス同士) • ノードがグローバルアドレスを取得する機構等が必要(UPnP等) 第2回DHT勉強会資料 西谷 智広
3-1.ノードIDの偽装対策[案1] • NAT越え 案A UPnP利用 案B STUNサーバ利用 STUNサーバ インターネット インターネット ルータ ルータ UPnP機構 (IDG) ノード ノード 第2回DHT勉強会資料 西谷 智広
3-1.ノードIDの偽装対策[案1] • STUNサーバを利用してもNAT越えできない場合あり。(Symmetric NATの場合等) • 上記の場合はB2BUA的な通信が必要。[案C]このときには案1の利用は困難。 案C 他ノードを介する ノード インターネット ルータ ルータ ノード ノード 第2回DHT勉強会資料 西谷 智広
3-1.ノードIDの偽装対策[案2] • [案2]電子証明書内容のハッシュ値をノードID(西谷案) • メリット • ノードのネットワーク形態によらずノードIDの改ざんを検証できる。 • 電子証明書を使うことにより、ノード間の認証、暗号化が(原則サーバレスで)容易に可能。 • デメリット • ノードに電子証明書の配布する必要あり。証明書更改も順次行う必要あり。 • 上記に伴いCA等が必要。 (PGP的なアプローチもあるが、ここでは触れない) • 開発費用が高い。 第2回DHT勉強会資料 西谷 智広
3-1.ノードIDの偽装対策[案2] • 証明書の内容例 • 氏名 • 証明書発行シリアル番号 • 発行日 • 有効期間 • 発行機関 • オプションを利用すれば、上記以外のデータも証明書に格納化。 • 証明書内容のハッシュ値をノードIDとする。 • 証明書有効を検証するためのハッシュ値(デジタル署名用ハッシュ値)をそのままノードIDとして利用するアイデアもある。 第2回DHT勉強会資料 西谷 智広
3-1.ノードIDの偽装対策[案2] • 案2に対する注意点 • 電子証明書のリポジトリ • 案P:特定サーバを利用 • 通信集中、運用費高 • 案Q:DHTノードに分散(通信分散、運用費ほぼ0) • 通信分散、運用費用低 • 証明書の紛失対策が必要→後述 • Node_ID=hash(X+Y)に格納。Xは証明書のデータ、Yはある数値。 • Y=0にすると証明書対象ノードが証明書保有ノードになり、Y≠0の方がセキュアと考えられる。(詳細検討が必要) 第2回DHT勉強会資料 西谷 智広
3-2.情報管理範囲の正当性 • Chordを例にとる 1 5 1≦Hash(X)≦4 5≦Hash(X)≦8 9 9≦Hash(X)≦10 第2回DHT勉強会資料 西谷 智広
3-2.情報管理範囲の正当性 1 5 1≦Hash(X)≦4 5≦Hash(X)≦12 9 9≦Hash(X)≦10 第2回DHT勉強会資料 西谷 智広
3-2.情報管理範囲の正当性 • 次々隣接ノード利用による検証 1 5 1≦Hash(X)≦4 5≦Hash(X)≦12 矛盾! 9 情報管理範囲を ヒアリング 9≦Hash(X)≦10 第2回DHT勉強会資料 西谷 智広
3-2.情報管理範囲の正当性 • Lookup要求元ノードに自ノードの管理範囲を返答するのもアイデア 第2回DHT勉強会資料 西谷 智広
3-3.ルーティングテーブルの正当性 • 検証可能な場合 Pastry→プレフィックス • 存在する全ノード数推定から検証可能? →ノードが大局的には均一に存在することを 仮定 • ノードへの到達方法を複数持たせる Ex.Chordでハッシュ値が小さい方向へのルーティングもアリとする。 →悪意のノードによるノード到達性妨害を阻止 →可用性の向上 第2回DHT勉強会資料 西谷 智広
3-3.ルーティングテーブルの正当性 • 全ノード数推定方法(例) • 隣接ノード方向へホップし、極小的なノード密度を観測する • リンクしているノードIDと本来すべてノードが存在している場合、リンクすべきノードIDとの差 • ランダムなノードを選び、到達する際のホップ数から推測 第2回DHT勉強会資料 西谷 智広
4.データの紛失対策 • 基本的にはレプリケーション • 情報Xに対して • Node_ID=Hash(X) • Node_ID=Hash(X+Y) • Node_ID=Hash(X+2Y) …. に格納する。(Yはある数値) • レプリケーションノードを多くするほど、紛失は起こりにくくなる。しかしながらDHTシステムに蓄積されるデータ量やデータ参照通信量は多くなる。 • 結論:紛失対策とDHTノード負荷はトレードオフ 第2回DHT勉強会資料 西谷 智広
5.データの改ざん対策 • 電子証明書をノード配布すれば解決可能。 • ノードYが情報XをNode_ID=Hash(X)に格納する際に • 情報X • Hash(X) • S_Key(Hash(X)、ノードYの秘密鍵) • ノードYの秘密鍵でHash(X)を暗号化 • Hash(ノードYの証明書情報) • ノードYの証明書を保有するノードIDを参照するための情報 を格納する。 • ノードYの証明書を取得できれば、 • 情報XがノードYによって格納したこと • 情報Xが改ざんされてないこと の2点が検証可能。 第2回DHT勉強会資料 西谷 智広
6.ノード間の認証 • ノードに電子証明書を配布すれば解決可能。 • 基本的にはPKIと同様な方法 • 電子証明書+チャレンジレスポンスで認証 • ノードXをノードYが認証する場合 • 手順1:ノードYはノードXの電子証明書をリポジトリから取得(リポジトリはDHTノード、サーバどちらでも可能) • 電子証明書自体の検証も必要(発行者検証、CRL等) • 手順2:ノードYはノードXへチャレンジレスポンス処理を要求 • 手順3:チャレンジレスポンスが成功すれば認証成功 第2回DHT勉強会資料 西谷 智広
7.ノードに蓄積するデータの暗号化 • ノードYが情報XをノードZ=Hash(X)に蓄積したい • ノードY以外に情報Xは見られたくない • ノードYは以下の情報をノードZに格納すればよい。 • S_Key(情報X、ノードYの秘密鍵) • S_Key(Hash(X),ノードYの秘密鍵) • Hash(ノードYの証明書情報)(オプション) 第2回DHT勉強会資料 西谷 智広
8.多数の悪意ノード注入による攻撃 • 多数の悪意のノードによって、ルーティングをしない攻撃を同時に行う場合を考える • ただし選択的攻撃はしないとする • [問題]どの程度の悪意のノードがあればDHTシステム全体としての機能がダウンするだろうか? • 物性物理学で用いられるパーコレーション(浸透)理論を応用してみる 第2回DHT勉強会資料 西谷 智広
8.多数の悪意ノード注入による攻撃 • パーコレーション理論 • サイトパーコレーション • ボンドパーコレーション • ゲル物体を研究するために使われ始めた 第2回DHT勉強会資料 西谷 智広
8.多数の悪意ノード注入による攻撃 • サイトパーコレーション 第2回DHT勉強会資料 西谷 智広
8.多数の悪意ノード注入による攻撃 × 第2回DHT勉強会資料 西谷 智広
8.多数の悪意ノード注入による攻撃 連続する確率 (Θ) 1 Θ(P) 1 0 Pc 正規のノード率(P) ・ΘはP≦Pcで0 ・ΘはP>Pcで単調増加連続関数 第2回DHT勉強会資料 西谷 智広
8.多数の悪意ノード注入による攻撃 • 次元が上がるほどPcは低くなる • 2次元正方格子の場合、Pc=0.5 • DHTの場合、リンク数はLog(N)程度のため、「次元が高い」と類推すると、悪意のノードが相当多くてもシステムとしては動作する確率が高いと考えられる • DHT⇔パーコレーションの解析的な理論はまだ研究されてない?(のはず) • ただし複雑ネットワーク関連で解析的な研究はすでに活発にされている。 • Winnyシステムがなかなか停止できない理由が説明できる(かも?) 第2回DHT勉強会資料 西谷 智広
8.多数の悪意ノード注入による攻撃 • ボンドパーコレーション 第2回DHT勉強会資料 西谷 智広
8.多数の悪意ノード注入による攻撃 • Staticな解析は今後急速に進むだろう? →悪意のノード数とホップ数の関係 →悪意のノードに対抗できるDHTの開発 • Dynamicsはまだ手をつけてない(はず) →ワーム感染 →NWの成長 第2回DHT勉強会資料 西谷 智広
参考文献 • Emi Sit et.al. Security Considerations for Peer-to-Peer Distributed Hash Tables In IPTPS 2002 • 増田 直紀 他「複雑ネットワークの科学」 (産業図書) 第2回DHT勉強会資料 西谷 智広
終わりに • 日本発のDHTセキュリティ研究を一緒に促進しましょう! • 複雑ネットワーク関連の研究がヒントになるかも? • 数学:群論、グラフ理論、複雑NW、トポロジー 物理:パーコレーション、平均場理論、繰り込み理論、格子ゲージ理論・・・ 関連する分野は多いはず。 第2回DHT勉強会資料 西谷 智広