On 11/06/14 20:57, Robert Hailey wrote:
> On 2014/06/11 (Jun), at 9:51 AM, xor wrote:
>
>> How can we make the resource of 
>> Freenet nodes / user identities / pseudonyms scarce enough to ensure that 1 
>> attacker cannot pretend to be 10000 entities?
>>
>> ...
>>
>> There seem exactly 3 solutions to it:
> There are others, maybe even some not-yet-imagined... and others that may be 
> wholly impractical.
>
> Your key point is too true! Find the scarcity!
>
> I suspect that a good solution might have to be aware of border gateway 
> routes, or maybe have a built in traceroute function... operating on the 
> scarcity of "routes" between networks, or the "density" of ISP links to 
> datacenters versus consumer ip addresses.
>
> Even if we discover a great theory to isolate a good scarce resource, 
> building it into an emergent system will likely be an order of magnitude 
> harder.... and likely to be a moving target (e.g. with network 
> reorganization/upgrades, or the IPv6 protocol change, etc).
>
> Perhaps it would be possible to use human decernment?
>
> -
>
> Suppose each node had a SSK that they regularly updated... much like the ARK 
> record, but we can't use ARK for this case... maybe closer to a 
> date-based-redirect... basically a way for any node to verify that another 
> node is (1) recently online [unspoofable date], and (2) has taken the trouble 
> [accrued time/effort of inserting] to maintain a current record [because it 
> exists]. A weak proof-of-work, but something to build on...
>
> Further suppose that for each active (or recent) opennet connection, but at 
> the node's leisure, a traceroute will be performed... usually giving us a 
> list of IP addresses between us & them (sometimes it doesn't work)... from 
> that array, we discard any common prefixes to other peers that do not claim 
> to be in the same subnet (which is to say, "how we get to the internet"; and 
> specifically excepting the easier-to-detect "same subnet" case), and the 
> remainder we insert at a predictable-but-not-scannable address [i.e. 
> hash(ip_address)] our verifiable proof-of-work... [I guess it would have to 
> sign the hash or ip_address, so other's can't use our proof]... in such a way 
> that inserts to the same address "accrue", and are fetchable in-total 
> (more-or-less, not very important).
>
> What we then have is something good & bad...
>
> On the good side, any node can reason:
> (1) how similar and how likely to share a bottleneck two peers will be... 
> (doesn't do much for sybil, given multiple datacenters, but maybe..),
> (2) at any particular point in the chain (keeping in mind that a sybil agent 
> might own network hardware) how many "connections" they have (*VERY* nice for 
> sybil)
>
> On the bad side, 
> (1) it may be impossible to mechanically decern the difference between a core 
> internet router and a sybil network (I'm hoping the dropped route prefix 
> would fix this),
> (2) it might not help against short-lived connections (a mobile attacker, or 
> churning sybil?),
> (3) there would now be an easy test to see if a given ip address runs (or 
> routes to) a freenet node... without even sending them a packet.
>
> However...
>
> We could then probe for... that is gather, all this weight data, graph it, 
> and perform research against it to (1) know if we at any particular time we 
> are under a sybil attack, (2) notice any massive influx of nodes & at what 
> point, and (3) develop an effective countermeasure by tweaking [for example] 
> the above prefix dropping algo, or whitelisting core routers, etc... as the 
> hashed ip address should be safe enough to publish, and meaningful enough for 
> interested nodes to match against.
>
> For such research, we could even include the hash of the "next hop" and/or 
> "previous hap", so we can build a graph or get a directional qualification 
> (how many connection *into* versus *out-of*)... if that's even meaningful...
>
> -
>
> For a little more work, we could require that the original ssk have a list of 
> all of it's "votes"... *hashed-again* (maybe several times, maybe even 
> salted) so that one cannot easily walk an id back to it's set of 
> connections... that would (1) prevent one proof-of-work from being used for 
> an arbitrary number of votes, and (2) let us give each vote a weight 
> inversely proportional to number of entries the id validates.
>
> -
>
> Yep... it would be a lot of work to even *begin* to get a handle on sybil !!! 
> ... and it's a bit inverted, as you need to use the high-level functions of 
> the network (get/insert) and operating system (traceroute) to validate a 
> low-level function (connection).
Have you read some of the stuff I posted about IP address scarcity? You
have some extra complexity but the principle is the same. But IMHO IP
based scarcity or even AS-based scarcity is pointless. The best scarcity
available right now is manually-created phone-verified Google accounts
and they go for $0.10/piece. Not enough to deter any serious attacker.

The only real solution is darknet. The catch is to make that work well
we'd need a LOT of users...

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Devl mailing list
Devl@freenetproject.org
https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to