[tor-bugs] #29430 [Applications/Tor Browser]: Use uTLS for meek TLS camouflage in Tor Browser

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Feb 7 23:17:13 UTC 2019


#29430: Use uTLS for meek TLS camouflage in Tor Browser
------------------------------------------+-----------------------
     Reporter:  dcf                       |      Owner:  tbb-team
         Type:  enhancement               |     Status:  new
     Priority:  Medium                    |  Milestone:
    Component:  Applications/Tor Browser  |    Version:
     Severity:  Normal                    |   Keywords:  meek utls
Actual Points:                            |  Parent ID:
       Points:                            |   Reviewer:
      Sponsor:                            |
------------------------------------------+-----------------------
 Now that meek and meek_lite have or will soon have support for TLS
 camouflage using uTLS (#29077), we have the option of using that instead
 of the meek-http-helper headless Firefox extension.

 The torrc line:
 {{{
 ClientTransportPlugin meek exec ./TorBrowser/Tor/PluggableTransports/meek-
 client-torbrowser -- ./TorBrowser/Tor/PluggableTransports/meek-client
 }}}
 will lose the meek-client-torbrowser to become just
 {{{
 ClientTransportPlugin meek exec ./TorBrowser/Tor/PluggableTransports/meek-
 client
 }}}

 In bridge_prefs.js, the bridge line will get an additional `utls`
 parameter:
 {{{
 meek 0.0.2.0:2 97700DFE9F483596DDA6264C4D7DF7641E1E39CE
 url=https://meek.azureedge.net/ front=ajax.aspnetcdn.com
 utls=HelloIOS_Auto
 }}}

 There's the option of continuing to use the same meek repo as we do now;
 or of removing that code and using obfs4proxy instead, since they both
 have uTLS support. Using obfs4proxy will have the advantage of smaller
 packaging, because there will be one binary instead of two.

 There's one more complication, which is tor-launcher and Moat. tor-
 launcher has its own meek configuration separate from Tor Browser's. It
 gets the path to the meek-client executable [https://gitweb.torproject.org
 /tor-launcher.git/tree/src/chrome/content/network-
 settings.js?h=0.2.18#n539 from the control port] (ultimately from torrc-
 defaults), but it has [https://gitweb.torproject.org/tor-
 launcher.git/tree/src/defaults/preferences/prefs.js?h=0.2.18#n48 its own
 version] of the `url=` and `front=` parameters, and it
 [https://gitweb.torproject.org/tor-launcher.git/tree/src/modules/tl-
 bridgedb.jsm?h=0.2.18#n211 passes those to the executable] to the
 executable as `-url` and `-front` command line arguments, not as SOCKS
 args. meek-client with uTLS has a `-utls` command line arg, so that's easy
 to adapt; but since obfs4proxy doesn't understand those command line args,
 either obfs4proxy would have to add them, or tor-launcher would have to
 start passing them as SOCKS args.

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


More information about the tor-bugs mailing list