概要
新しいクライアントは、トラッカーや、ピアを交換するスウォームの少なくとも1人のメンバーの知識なしで、スウォームに参加できますか?
できません。それは無理だ。*
*(ローカルエリアネットワークのノードがたまたまDHTのノードである場合を除きます。この場合、Avahiなどのブロードキャストメカニズムを使用して、このピアを「発見」し、そこからブートストラップできます。彼らは自分自身をブートストラップ?結局、マルチキャストではなく、あなたが公共のインターネットに接続する必要がある状況を打つでしょう。そして、公共のインターネットは、ユニキャストのみで、ピアの所定のリストを使用している立ち往生しそう。)
参照資料
Bittorrent DHTは、Kademliaとして知られるプロトコルを介して実装されます。これは、Distributedハッシュテーブルの理論的概念の特別なケースです。
博覧会
Kademliaプロトコルでは、ネットワークに参加するときにブートストラップ手順を実行します。これには、DHTネットワークに既に参加している少なくとも1つのノードのIPアドレスとポートを事前に知っておく必要があります。たとえば、接続するトラッカー自体がDHTノードである場合があります。1つのDHTノードに接続したら、DHTから情報をダウンロードします。これにより、より多くのノードの接続情報が提供されます。次に、「グラフ」構造をナビゲートして、より多くのノードへの接続を取得します。他のノードへの接続、およびペイロードデータ(ダウンロードのチャンク)。
私は太字であなたの実際の質問を考える-知らずにKademliaのDHTネットワークに参加する方法のことを任意の他のメンバーを-偽の仮定に基づいています。
あなたの質問に対する太字の簡単な答えは、そうではありません。DHTメタデータを含む可能性のある1つのホストに関する情報もまったく知らないと、立ち往生します。開始することすらできません。つまり、DHT情報をブロードキャストするために開かれたポートを使用して、公共のインターネットでブルートフォース攻撃でIPを発見しようとする可能性があります。しかし、おそらく、BTクライアントは特定の静的IPまたはDNSにハードコーディングされ、DHTメタデータを提供するだけの安定したDHTノードに解決されます。
基本的には、DHTは唯一のように接合機構として分散化され、かつ接合機構はかなり脆いので、あなたが持っているので(!全体のインターネット上で「放送」に方法はありませんユニキャスト DHTを取得するには、個々の事前に割り当てられたホストにデータ)、Kademlia DHTは実際には分散化されていません。厳密な意味ではありません。
このシナリオを想像してください。P2Pを停止したい人が出て、ブートストラップに使用される一般的に使用されるすべての安定したDHTノードで攻撃を準備します。攻撃を開始すると、一度にすべてのノードに攻撃を仕掛けます。ワム ; ブートストラップDHTノードはすべて1回ですべてダウンします。それで?集中型トラッカーに接続して、そこからピアの従来のリストをダウンロードする必要があります。まあ、彼らもトラッカーを攻撃するなら、あなたは本当に、本当に入り江。つまり、KademliaとBTネットワーク全体は、インターネット自体の制限に制約されています。つまり、90%以上を防ぐために、正常に攻撃またはオフラインにする必要があるコンピューターの数は限られています(比較的少数です)ネットワークへの接続からのユーザーの。
「疑似集中型」ブートストラップノードがすべてなくなると、DHT の外部の誰も内部ノードを知らないためブートストラップされないDHTの内部ノードは役に立たなくなります。新しいノードをDHTに取り込むことはできません。そのため、各内部ノードは、コンピューターをシャットダウンしたり、更新のために再起動したりするなどの理由で、時間の経過とともにDHTから切断されるため、ネットワークが崩壊します。
もちろん、これを回避するために、誰かが事前に定義された安定したDHTノードまたはDNSアドレスの新しいリストでパッチを適用したBitTorrentクライアントを展開し、代わりにこの新しいリストを使用するようにP2Pコミュニティに大々的に広告を出すことができます。しかし、これは、攻撃者(ノードイーター)がこれらのリストを徐々にダウンロードし、勇敢な新しいブートストラップノードをターゲットにして、オフラインにする「モグラ叩き」の状況になります。