Re: Why competing Gnutella clients help LimeWire

"Bill Pringlemeir" <[email protected]>
Newsgroups gmane.network.gnutella.devel
Message-ID <[email protected]>
--- In [email protected], Roger Kapsi <roger@...> wrote:

> That's why you want to limit the number of Nodes per k-bucket per  
> Class C Network. Under the assumption the DHT is big and the Node IDs  
> are globally/random the chances are slim to none that two or more  
> Nodes end up in the same k-bucket of somebody's RouteTable.

Even non-malicious failures, such as an ISP or router malfunction make
this desireable, to build redundancy.  That is a very good idea.  If
you make a spec on mojito (or whatever the GNET protocol is), this
should be recommended. 
 
> The same applies to FIND* responses. It's suspicious if a certain  
> number of the k-contacts in the response is from the same IP range.

> We already take care of the latter and I'll add some code for the  
> first case soon.

I am not so sure that the second is a better idea.  It is easy to
return bogus IPP values that have inferior nodes IDs.  A malicious
group has the latitude to lie about node ids (as there is no control
over node ids in Kademlia).  This leads to many weaknesses.

1. location diversion, controlling alpha nodes in a k-bucket with long
lived peers, a very good node ID match can be given to colluding
nodes.  The colluding node can change its node id based on the search.
Standard Kademlia only backs up one level, so if the alpha nodes
return alpha*k bogus nodes, the search would terminate without
completing the operation.

2. Censure, a particular hash value can be censured by owning k of the
closest node ids to the hash value.  The nodes can accept STORE
commands, but not return values for FIND_VALUE.  Further, the nodes
could record the node id and/or IPP doing the STORE command and return
FIND_VALUE results for that node only.

The second one can be of opportunity to spammers and the like who
might like to return alternate files to the legitimate sources.  This
could be detected if other nodes can "proxy" the FIND_VALUE requests.
 However, there needs to be some sort of black listing to exclude
these nodes.  I guess this might tie into handling of colliding node ids.

fwiw,
Bill Pringlemeir.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.