commit e8c89a12416026945aa65d67bcc011d9c1b6a3b2 Author: Nick Mathewson nickm@torproject.org Date: Mon Apr 14 16:36:50 2014 -0400
Make pluggable-transports-through-proxy.txt into proposal 232 --- proposals/000-index.txt | 2 + .../232-pluggable-transports-through-proxy.txt | 78 ++++++++++++++++++++ .../xxx-pluggable-transports-through-proxy.txt | 78 -------------------- 3 files changed, 80 insertions(+), 78 deletions(-)
diff --git a/proposals/000-index.txt b/proposals/000-index.txt index bec7a14..b6742d4 100644 --- a/proposals/000-index.txt +++ b/proposals/000-index.txt @@ -152,6 +152,7 @@ Proposals by number: 229 Further SOCKS5 extensions [DRAFT] 230 How to change RSA1024 relay identity keys [DRAFT] 231 Migrating authority RSA1024 identity keys [DRAFT] +232 Pluggable Transport through SOCKS proxy [DRAFT]
Proposals by status: @@ -173,6 +174,7 @@ Proposals by status: 229 Further SOCKS5 extensions 230 How to change RSA1024 relay identity keys [for 0.2.?] 231 Migrating authority RSA1024 identity keys [for 0.2.?] + 232 Pluggable Transport through SOCKS proxy NEEDS-REVISION: 131 Help users to verify they are using Tor 190 Bridge Client Authorization Based on a Shared Secret diff --git a/proposals/232-pluggable-transports-through-proxy.txt b/proposals/232-pluggable-transports-through-proxy.txt new file mode 100644 index 0000000..721df94 --- /dev/null +++ b/proposals/232-pluggable-transports-through-proxy.txt @@ -0,0 +1,78 @@ +Filename: 232-pluggable-transports-through-proxy.txt +Title: Pluggable Transport through SOCKS proxy +Author: Arturo Filastò +Created: 28 February 2012 +Status: Draft + +Overview + + Tor introduced Pluggable Transports in proposal "180 Pluggable + Transports for circumvention". + + The problem is that Tor currently cannot use a pluggable transport + proxy and a normal (SOCKS/HTTP) proxy at the same time. This has + been noticed by users in #5195, where Tor would be failing saying + "Unacceptable option value: You have configured more than one proxy + type". + +Trivia + + This comes from a discussion that came up with Nick and I promised + to write a proposal for it if I wanted to hear what he had to say. + Nick spoke and I am writing this proposal. + +Acknowledgments + + Most of the credit goes to Nick Mathewson for the main idea and + the rest of it goes to George Kadianakis for helping me out in writing + it. + +Motivation + + After looking at some options we decided to go for this solution + since it guarantees backwards compatibility and is not particularly + costly to implement. + +Design overview + + When Tor is configured to use both a pluggable transport proxy and a + normal proxy it should delegate the proxying to the pluggable + transport proxy. + + This can be achieved by specifying the address and port of the normal + proxy to the pluggable transport proxy using environment variables: + When both a normal proxy and the ClientTransportPlugin directives + are set in the torrc, Tor should put the address of the normal proxy + in an environment variable and start the pluggable transport + proxy. When the pluggable transport proxy starts, it should read the + address of the normal proxy and route all its traffic through it. + + After connecting to the normal proxy, the pluggable transport proxy + notifies Tor whether it managed to connect or not. + + The environment variables also contain the authentication + credentials for accessing the proxy. + +Specifications: Tor Pluggable Transport communication + + When Tor detects a normal proxy directive and a pluggable transport + proxy directive, it sets the environment variable: + + "TOR_PT_PROXY" -- This is the address of the proxy to be used by + the pluggable transport proxy. It is in the format: + <proxy_type>://[<user_name>][:<password>][@]<ip>:<port> + ex. socks5://tor:test1234@198.51.100.1:8000 + socks4a://198.51.100.2:8001 + + Acceptable values for <proxy_type> are: 'socks5', 'socks4a' and 'http'. + If no <password> can be specified (e.g. in 'socks4a'), it is left out. + + If the pluggable transport proxy detects that the TOR_PT_PROXY + environment variable is set, it attempts connecting to it. On + success it writes to stdout: "PROXY true". + On failure it writes: "PROXY-ERROR <errormessage>". + + If Tor does not read a PROXY line or it reads a PROXY-ERROR line + from its stdout and it is configured to use both a normal proxy and + a pluggable transport it should kill the transport proxy. + diff --git a/proposals/ideas/xxx-pluggable-transports-through-proxy.txt b/proposals/ideas/xxx-pluggable-transports-through-proxy.txt deleted file mode 100644 index 3fc7754..0000000 --- a/proposals/ideas/xxx-pluggable-transports-through-proxy.txt +++ /dev/null @@ -1,78 +0,0 @@ -Filename: xxx-pluggable-transports-through-proxy.txt -Title: Pluggable Transport through SOCKS proxy -Author: Arturo Filastò -Created: 28 February 2012 -Status: Draft - -Overview - - Tor introduced Pluggable Transports in proposal "180 Pluggable - Transports for circumvention". - - The problem is that Tor currently cannot use a pluggable transport - proxy and a normal (SOCKS/HTTP) proxy at the same time. This has - been noticed by users in #5195, where Tor would be failing saying - "Unacceptable option value: You have configured more than one proxy - type". - -Trivia - - This comes from a discussion that came up with Nick and I promised - to write a proposal for it if I wanted to hear what he had to say. - Nick spoke and I am writing this proposal. - -Acknowledgments - - Most of the credit goes to Nick Mathewson for the main idea and - the rest of it goes to George Kadianakis for helping me out in writing - it. - -Motivation - - After looking at some options we decided to go for this solution - since it guarantees backwards compatibility and is not particularly - costly to implement. - -Design overview - - When Tor is configured to use both a pluggable transport proxy and a - normal proxy it should delegate the proxying to the pluggable - transport proxy. - - This can be achieved by specifying the address and port of the normal - proxy to the pluggable transport proxy using environment variables: - When both a normal proxy and the ClientTransportPlugin directives - are set in the torrc, Tor should put the address of the normal proxy - in an environment variable and start the pluggable transport - proxy. When the pluggable transport proxy starts, it should read the - address of the normal proxy and route all its traffic through it. - - After connecting to the normal proxy, the pluggable transport proxy - notifies Tor whether it managed to connect or not. - - The environment variables also contain the authentication - credentials for accessing the proxy. - -Specifications: Tor Pluggable Transport communication - - When Tor detects a normal proxy directive and a pluggable transport - proxy directive, it sets the environment variable: - - "TOR_PT_PROXY" -- This is the address of the proxy to be used by - the pluggable transport proxy. It is in the format: - <proxy_type>://[<user_name>][:<password>][@]<ip>:<port> - ex. socks5://tor:test1234@198.51.100.1:8000 - socks4a://198.51.100.2:8001 - - Acceptable values for <proxy_type> are: 'socks5', 'socks4a' and 'http'. - If no <password> can be specified (e.g. in 'socks4a'), it is left out. - - If the pluggable transport proxy detects that the TOR_PT_PROXY - environment variable is set, it attempts connecting to it. On - success it writes to stdout: "PROXY true". - On failure it writes: "PROXY-ERROR <errormessage>". - - If Tor does not read a PROXY line or it reads a PROXY-ERROR line - from its stdout and it is configured to use both a normal proxy and - a pluggable transport it should kill the transport proxy. -