[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [tor-bugs] #28803 [Applications/Tor Browser]: Integrate building pluggable transports for Android into tor-browser-build
#28803: Integrate building pluggable transports for Android into tor-browser-build
-------------------------------------------------+-------------------------
Reporter: gk | Owner: tbb-
| team
Type: task | Status: new
Priority: High | Milestone:
Component: Applications/Tor Browser | Version:
Severity: Normal | Resolution:
Keywords: tbb-rbm, tbb-mobile, TBA-a3, | Actual Points:
TorBrowserTeam201812 |
Parent ID: | Points:
Reviewer: | Sponsor:
-------------------------------------------------+-------------------------
Comment (by sisbell):
It looks like the candidate PTs are
1. obfs4 (implemented in orbot)
1. meek (implemeted in orbot - uses meek_lite)
1. fteproxy[wiki:FteProxy -]has no plans for support on Android:
https://github.com/kpdyer/fteproxy/issues/187
'''Configuration:'''
The obfs binary used by orbot supports: obfs3, obfs4. meek lite binary
also is available. So we can support (1) and (2). All of these are
configured and written to a custom torrc file:
'''!ClientTransportPlugin''' ''transport'' exec ''path-to-binary''
[options]::
The bridge list is read from a text file in the res/raw folder. The
bridges are then written to the custom torrc file.
'''Building the libraries:'''
Orbot uses Pluto to build the transports for Android:
https://github.com/guardianproject/pluto . However, there is an updated
Pluto 2 library available:
https://github.com/guardianproject/AndroidPluggableTransports
So first question is do we want to use Pluto 1 (which is what orbot is
currently using) or Pluto 2 which is the current recommended version?
To build the transport (for Pluto 1), we will need:
1. Build go toolchain for android (this could be a separate project/go-
android-toolchain)
1. Build (with go) github.com/n8fr8/meek/meek-client
1. Build (with go) git.torproject.org/pluggable-
transports/obfs4.git/obfs4proxy
Pluto has a script which sets the correct parameters go compile params and
flags. We can modify this script for use in tor-browser-build
The files in Pluto are then packaged into an Android library with the
binaries in the res/raw folder. For our purposes, we could put these into
the assets folder instead since we want to add this in the last phase of
the tor-browser build. We will need to just make sure to create an
installer class that will pull from the assets folder into the private
data section of the app so we can execute the binaries during runtime.
For Pluto 2 the build is different: It uses the following git repo for
building the transports: [https://gitlab.com/eighthave/goptbundle
https://gitlab.com/eighthave/goptbundle .]We can then follow a similar
process for installing as outlined above.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/28803#comment:1>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
_______________________________________________
tor-bugs mailing list
tor-bugs@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-bugs