Anonymous Indexing Problem: Difference between revisions

From Adam Colton
Jump to navigation Jump to search
Created page with "If Alice is looking for a resource that Bob can provide, how can Bob know that Alice needs it and provide it without either revealing their IP. Challenges * DDOS * Overhead ..."
 
No edit summary
Line 20: Line 20:
Strictly speaking, this doesn't prevent DDOS, but it distributes it evenly over the network and forces Eve to do a lot more work per request.
Strictly speaking, this doesn't prevent DDOS, but it distributes it evenly over the network and forces Eve to do a lot more work per request.


However, Eve could inject those requests as a [SwitchBoard] node. I'm a little less concerned about this because a user would need to modify the code (not just script kiddy to repeat send), it exposes the malicious node ([SwitchBoard] nodes are IP exposed) and they could potentially be tracked.
However, Eve could inject those requests as a [[SwitchBoard]] node. I'm a little less concerned about this because a user would need to modify the code (not just script kiddy to repeat send), it exposes the malicious node ([[SwitchBoard]] nodes are IP exposed) and they could potentially be tracked.


===== Rate Limit =====
===== Rate Limit =====
Line 31: Line 31:


== The Response ==
== The Response ==
This part is actually pretty easy. If Bob get the request and a return route, he can simply respond. But it can be even easier. If Bob only gets the request and not a return route, he can post a return route in [SwitchBoard] which Alice can check for a few seconds after the request has gone out.
This part is actually pretty easy. If Bob get the request and a return route, he can simply respond. But it can be even easier. If Bob only gets the request and not a return route, he can post a return route in [[SwitchBoard]] which Alice can check for a few seconds after the request has gone out.


[[Category:Waxnet]]
[[Category:Waxnet]]

Revision as of 21:09, 3 May 2016

If Alice is looking for a resource that Bob can provide, how can Bob know that Alice needs it and provide it without either revealing their IP.

Challenges

  • DDOS
  • Overhead

The Request

There are two ways for Alice to make the request

  1. Anonymously broadcast that she is looking for the resource
  2. Check a common index

Broadcasting

If Alice broadcasts the request, it must reach a large number of recipients before any of them can respond. If only a few people see the request, we can narrow down the responder to that set, compromising Bobs anonymity. But this means that sending a single message into the network results in high replication. So Eve can send many requests into the network to maliciously flood the network at high leverage.

DDOS Prevention

Specific Entry

Requests propagate through [SwitchBoard], each node queueing up and passing along requests about once a second. If each node maintains 8 'neighbors', that would propagate the request to 16M nodes in 8 seconds.

Strictly speaking, this doesn't prevent DDOS, but it distributes it evenly over the network and forces Eve to do a lot more work per request.

However, Eve could inject those requests as a SwitchBoard node. I'm a little less concerned about this because a user would need to modify the code (not just script kiddy to repeat send), it exposes the malicious node (SwitchBoard nodes are IP exposed) and they could potentially be tracked.

Rate Limit

The requests are anonymous, so we can't actually rate limit a user. But we could do something like BitCoin and require a hash puzzle. The goal here is to make the work required to post a request equal to the the total work done by the network.

A more interesting, but vastly more complex idea would be to have a sort of network-maintenance queue holding things like EigenTrust problems. In order to post, the requester needs to do some amount of work.

Indexing

I cannot even begin to find a way to make indexing work. Resource aren't necessarily static, so it's not actually possible to index them. If it were, even a short form list could be huge. But that's not possible because each resource needs at least one return route to make the request. So, this just does not seem feasible and I'm going to stop thinking about it.

The Response

This part is actually pretty easy. If Bob get the request and a return route, he can simply respond. But it can be even easier. If Bob only gets the request and not a return route, he can post a return route in SwitchBoard which Alice can check for a few seconds after the request has gone out.