[tor-bugs] #9022 [Pluggable transport]: Create an XMPP pluggable transport

Tor Bug Tracker & Wiki blackhole at torproject.org
Tue Jun 18 19:42:14 UTC 2013


#9022: Create an XMPP pluggable transport
---------------------------------+------------------------------------------
 Reporter:  asn                  |          Owner:  feynman 
     Type:  task                 |         Status:  accepted
 Priority:  normal               |      Milestone:          
Component:  Pluggable transport  |        Version:          
 Keywords:                       |         Parent:          
   Points:                       |   Actualpoints:          
---------------------------------+------------------------------------------

Comment(by feynman):

 Replying to [comment:42 rransom]:
 > Replying to [comment:41 feynman]:
 > > Replying to [comment:38 asn]:
 > > > Hey feynman,
 > > >
 > > > thanks for all the new features, and sorry for being less active on
 this lately.
 > > >
 > > > BTW, due to the encryption of TLS, I'm not sure how helpful the
 caching is, since all TLS records should look unique on the wire. For the
 same reason, zlib might not find much stuff to compress in your TLS
 traffic.
 >
 > > TLS encryption should be completely independent of caching. It is not
 caching the TLS packet, but the data it sends *before* it gets encrypted
 with TLS. The same goes for the zlib compression stuff.
 >
 > Tor connections are encrypted (and authenticated) using TLS before they
 reach your XMPP transport.

 That would imply the zlib compression would be quite useless when relaying
 Tor traffic, but the caching scheme should work all the same. The whole
 XMPP transport does no analysis on what it is reading. It simply passes on
 the data byte for byte. The caching scheme combined with id numbers for
 packets should help ensure chunks of data get to the proper destination
 consistently and in the right order.

 Whatever Tor does when it reads and writes to a TCP socket should work
 independently from the mechanism that actually delivers the data to its
 destination. My understanding is that the packet would ordinarily be
 encoded with an IP header and sent directly through a gateway to the
 internet.

 When using hexchat, the data is sent to a local TCP socket running hexchat
 (call it hexchat1). Hexchat1 then reads the data (thereby stripping it of
 its TCP header) and passes it over a chat server to another hexchat
 program (call it hexchat2) that sends the data to the appropriate ip:port
 (giving it a new TCP header in the process).

 The client thinks it is sending the data to hexchat1, and the server
 thinks it is receiving data from hexchat2, but the data itself is never
 changed. It might be broken into smaller chunks or combined into bigger
 chunks, and it might be delivered at unpredictable rates, but it is never
 altered.

 That at least is how this should work in principle.

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


More information about the tor-bugs mailing list