Adding exit node capability to Freenet

Vmon <[email protected]> Thu, 24 Jan 2013 01:45:46 -0700
Newsgroups gmane.network.freenet.technical
Message-ID <[email protected]>
--=-=-=
Content-Type: text/plain

Hello everybody,

I have this idea in mind and would like to know if there has been some
effort in implementing it or not. The idea is to add exit nodes to
freenet that when the content isn't available on the network some nodes
fetch it from traditional web. The idea is coming from this tool called
"Unblock":  

http://unblock.cs.washington.edu/unblock.pdf

It's a hybrid overlay/proxy system that helps people bypass
censorship. However, it lacks the distributed storage component of the
Freenet, which can be very valuable when the censorship is very tight
(whitelisting for example) and hence exit nodes and their bandwidth are
rare compared to the demand inside the censored area.

I would like to know if there has been any effort in implementing such a
hybrid solution in Freenet.

Earlier this evening I had a discussion on that with toad on IRC which
I'm attaching here but his final conclusion is here:

"it's something you could layer on top of freenet with a plugin. it will
be hideously slow but it might be faster or more convenient than 
the alternatives (tor via a bridge, if they don't block them; VPNs; 
tunnels via external friends, end up getting shared very thinly, low
bandwidth; etc)

it's been suggested occasionally but not implemented afaik, i don't
remember where

it's likely to be high latency - similar to the
man-on-a-bicycle-once-a-week schemes they use for some villages 
in the middle of nowhere in the third world that can't afford a
satellite but for static content we can deal with that - and it WILL be
faster than that assuming we're not using sneakernet transport :)"

Cheers,
Vmon


--=-=-=
Content-Type: text/plain
Content-Disposition: attachment; filename=freenet-discussion-20130123.txt

<vmon> Hey guys I had this idea of using freenet in censored area where only
       some people have access to outside world. This require freenet not only
       look inside the network for the content but also tries to connect to an
       exit node if its ip is set.				        [15:41]
<vmon> has anybody already work on this idea
<vmon> pretty much what unblock is doing
<zidel> vmon: ? freenet has no exit nodes			        [15:42]
<vmon> I now but has anybody thought about adding one
<vmon> look at this paper
<vmon> http://unblock.cs.washington.edu/unblock.pdf		        [15:43]
<vmon> they claims that higher performance by introducing exit node idea
<vmon> but they lack the shared p2p storage
<vmon> so I thought it would be nice if "some version" of freenet works like
       unblock but keeps the p2p storage			        [15:44]
*** Apophis (~apophis-24JINUR0KMA02alzEOWGVcdT+t+kcEY9Yss06BVhAy0@public.gmane.org) has quit: Ping timeout:
    264 seconds							        [15:46]
*** Apophis (~apophis-24JINUR0KMA02alzEOWGVcdT+t+kcEY9Yss06BVhAy0@public.gmane.org) has joined channel
    #freenet							        [15:47]
<vmon> anybody? any idea?
<vmon> tomatos?
<zidel> not sure something like that could be done easily with Freenet, given
	the current routing, latency etc.			        [15:49]
* zidel is reading btw, not ignoring you :)			        [15:51]
<vmon>  zidel: thanks						        [15:52]
<vmon> I'll look into but just didn't wanted to re-invent the wheel
*** CodeInChaos (~cic@unaffiliated/codesinchaos) has quit: Ping timeout: 264
    seconds							        [15:54]
<toad_> I do not understand					        [16:06]
<toad_> this object keeps disappearing
<toad_> the field InsertableUSK.privKey was definitely not null on creation
	... and the privKey definitely got stored		        [16:07]
<toad_> and it definitely didn't get deleted
<toad_> but when I load the InsertableUSK again, it's gone
<zidel> vmon: its getting too late here for serious thought, but my initial
	reaction is that it might fit Tor better than it does Freenet
								        [16:09]
<toad_> zidel: he wants a caching layer
<toad_> that makes a certain amount of sense
<toad_> but it depends on what you are trying to get to		        [16:10]
<toad_> i.e. it works fine for static content, where outproxy bandwidth is
	limited and you can cache everything
<toad_> however, if you want to access some web2 social network stuff or
	shopping
<toad_> ... you need it to be a real-time tunnel
<toad_> also imho for static content even high latency isn't necessarily a
	problem							        [16:11]
<toad_> but if you have that sort of severe trouble, you probably want
	something that doesn't depend too much on the outside world
								        [16:12]
<toad_> e.g. freenet-like forums that can propagate across
	opportunistic/sneakernet links etc			        [16:13]
* vmon is catching up
<vmon> toad_: let keep it static for now. Suppose pure text news website like
       m.bbc that their news articles have permanent links and suppose bbc is
       filtered 						        [16:17]
<vmon> It is good to have a mechanism that one node pull that article about
       today's news and store it in the freenet			        [16:18]
*** The_Bishop (~bishop@2001:470:50b6:0:5471:c473:d0f7:1e28) has quit: Quit:
    Wer zum Teufel ist dieser Peer? Wenn ich den erwische dann werde ich ihm
    mal die Verbindung resetten!
<vmon> without human intervention
<toad_> right							        [16:19]
<toad_> there have been various proposals for something like that, it's
	possible in principle					        [16:20]
<toad_> one of the problems is how to verify content
<vmon> toad_: isn't that the problem with any kind of anti-filtering proxies?
								        [16:21]
<vmon> toad_: where can I read on these proposals? on the tech list archive?
<toad_> vmon: well you do want it to be distributed, right?
<toad_> vmon: so it's a serious problem - do you only fetch from manually
	listed known good proxies? in which case, it may be slower...
								        [16:22]
<toad_> you could try the tech archive
<toad_> i dunno
<vmon> tor has the same problem					        [16:23]
<vmon> they police their exit nodes and if you are dishonnest they kick you
       out
<toad_> "they" are a central authority
<vmon> I see 
<vmon> you can add the option of digital signature and users can install keys
       that they trust 						        [16:24]
<toad_> right, it may become a bottleneck though
<vmon> so if they only retrieve the file if it's signed by the correct key
<toad_> also it means you can identify the outproxies' IP address easily - is
	that a problem?						        [16:25]
<toad_> and then you have all the problems of indexing etc
<vmon> how you can identify them?
<toad_> vmon: ask them to do a request to the server you own	        [16:26]
<vmon> you can put them behind tor as soon as reach the free world      [16:27]
<vmon> or the anonymizer of your choice
*** killertux ([email protected]) has quit: Quit: Leaving       [16:28]
<toad_> your basic objective is to minimise the amount of traffic that has to
	go to the outproxies, right?				        [16:29]
<toad_> on the principle that you've built some sort of darknet with lots of
	storage but limited bandwidth to the outside world
<vmon> yes
<vmon> exactly
<toad_> then such a project is quite possible			        [16:30]
<toad_> but it will be a fair bit of work
<toad_> and performance will not be great
<toad_> in fact, i'm pretty sure performance will be lousy :)
<vmon> I'm thinking about a white-list filtering scenaro when outprxies are
       extremely valuables
<toad_> not much point is there? i mean if you're gonna use a whitelist it's
	easier just to push everything on the whitelist into freenet?
								        [16:31]
<vmon> in such case, I think any solution is better than no solution
<toad_> rather than trying to do on demand?
<vmon> no 
<vmon> the authority is running a whitelist
<vmon> so they might let connection to universities but random ips are blocked
       by default						        [16:32]
<toad_> "the authority" is just the person running the outproxy	        [16:33]
<toad_> of course one outproxy on a logical level can be a whole bunch of
	machines - they can use whatever architecture they want to divide the
	work up e.g. by hash
<vmon> no the authority is the government who doesn't want its people read bbc
								        [16:35]
<toad_> I can see that such a system could be useful in some cases
<toad_> vmon: i thought you said the outproxies used whitelists?
<toad_> sorry, i misunderstood
<vmon> so you think no concrete work has been done in this direction    [16:37]
<toad_> it's something you could layer on top of freenet with a plugin. it
	will be hideously slow but it might be faster or more convenient than
	the alternatives (tor via a bridge, if they don't block them; VPNs;
	tunnels via external friends, end up getting shared very thinly, low
	bandwidth; etc)
<toad_> no, it's been suggested occasionally but not implemented afaik
<toad_> i don't remember where					        [16:39]
<vmon> cool 							        [16:41]
<vmon> thanks for your help 
<toad_> good luck
*** Muelli (~muelli-6QIG9A6UmB41gTPK7ryboatsLYGfAfEts0AfqQuZ5sE@public.gmane.org) has quit: Ping timeout: 255
    seconds
<vmon> maybe I also run it through the tech list to see if it catch sb's
       attention
<toad_> it's likely to be high latency - similar to the
	man-on-a-bicycle-once-a-week schemes they use for some villages in the
	middle of nowhere in the third world that can't afford a satellite
	hookup							        [16:43]
<toad_> but for static content we can deal with that - and it WILL be faster
	than that assuming we're not using sneakernet transport :)


--=-=-=
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Tech mailing list
[email protected]
https://emu.freenetproject.org/cgi-bin/mailman/listinfo/tech
--=-=-=--