[tor-bugs] #7167 [Pluggable transport]: Combine traffic obfuscation with address diversity of flash proxy

Tor Bug Tracker & Wiki blackhole at torproject.org
Sun May 26 13:41:45 UTC 2013


#7167: Combine traffic obfuscation with address diversity of flash proxy
-----------------------------------------+----------------------------------
 Reporter:  karsten                      |          Owner:  asn
     Type:  project                      |         Status:  new
 Priority:  normal                       |      Milestone:     
Component:  Pluggable transport          |        Version:     
 Keywords:  SponsorF20131101 flashproxy  |         Parent:     
   Points:                               |   Actualpoints:     
-----------------------------------------+----------------------------------

Comment(by asn):

 I started looking into integrating flashproxy within obfsproxy.
 Unfortunately, the obfsproxy architecture is quite conservative (pure
 client/server model, client opens SOCKS server, client listens on
 upstream, server listens on downstream, focuses on traffic obfuscation),
 whereas flashproxy is much more avant-garde (both client and server
 listens on downstream, focuses on IP address obfuscation not on traffic
 obfuscation, etc.).
 This means that integrating flashproxy in obfsproxy will require a big
 refactoring, which will not necessarily be helpful in the future when
 integrating other PTs. For example, looking at #7153 it seems that the
 suggested changes are hand-tailored for specific PTs, without having big
 reusable value.

 When I communicated my thoughts to David, we brainstormed on something
 between ideas b) and c) of comment:2. That is, maybe we shouldn't try to
 integrate both PTs into one, but we should find a nice way to use them
 both at the same time. For example, from the PoV of obfsproxy, flashproxy
 should just be a magic socket that transports the bytes to the correct
 location. And from the PoV of flashproxy, obfsproxy should just be a magic
 obfuscator that encodes/decodes bytes. That is, we are moving to a more
 layered approach, which I think is a good way to think of and develop
 network protocols.

 Some things to think about:
 a) How should we pass bytes between obfsproxy and flashproxy? Should it be
 SOCKS chaining, or just pipe bytes from one program to another?

 b) Who should manage these two programs? In the original post of this
 ticket, it was suggested that Tor would manage those two programs. Another
 approach would be to have obfsproxy spawn and manage flashproxy. Without
 thinking much about it, I think the latter approach is also worth
 considering, since managing subprocesses in Python is probably easier than
 in C, and furthermore Tor would never need to learn about this (obfsproxy
 would just expose a new transport name (e.g. obfsflashproxy) that would do
 the obfsproxy+flashproxy combination internally.)

-- 
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/7167#comment:6>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list