[tor-bugs] #9166 [Tor]: Write a UTP-based channel implementation

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Jul 1 13:31:55 UTC 2013

#9166: Write a UTP-based channel implementation
 Reporter:  nickm          |          Owner:                  
     Type:  defect         |         Status:  new             
 Priority:  normal         |      Milestone:  Tor: unspecified
Component:  Tor            |        Version:                  
 Keywords:  tor-relay utp  |         Parent:  #9165           
   Points:                 |   Actualpoints:                  

Comment(by sjmurdoch):

 Replying to [comment:2 nickm]:
 > As I understand it, the branch today works by adding a UTP connection
 "on the side" of every or_connection_t.  Whenever an OR connection is
 launched, so is a corresponding UTP connection.  The branch seems to want
 to use TLS for initial key setup, and does not appear to do encryption on
 the UTP connections yet.

 That's correct. Cells that are sent via channels go via uTP (and not TLS)
 but versions, netinfo, certs and auth* get sent directly on a OR
 connection rather than channel. I tried sending these via channels but
 this failed (my reverted attempt was in

 >   * Aw geez.  it's using the TLS master key as some kind of key material
 for the UTP session.  That's pretty darned kludgy.  I'd really want a key
 derivation function in there at least.
 >   * It doesn't appear anything uses the TLS master key though.

 Indeed this is horrid, but only necessary because uTP and TCP connections
 need to be linked to the same OR connection. Once all necessary cells are
 sent over uTP there will be no need for any such mechanism.

 Replying to [comment:3 nickm]:
 > Looking at the issues above, the issues likeliest to affect performance
 measurements (Assuming this actually works at all, which I haven't tested,
 but I believe Steven says it does) is the lack of rate-limiting, and the
 possibility of sending cells redundantly. (If I'm  reading the code right,
 data is actually sent on both the TCP *and* the UTP connection.  Was that

 I intended that cells except handshake cells should be sent over uTP and
 handshake cells sent over TCP. The (badly described) commit of
 fc63eca9ff26384b66707f3dfc15a4555c259a5d stops cells being sent on the OR
 connection if a uTP connection is available.

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

More information about the tor-bugs mailing list