Chang Lan <[email protected]> writes:

> Hi there, 
>
> During the first two weeks of my GSoC project, I have implemented a HTTP 
> CONNECT-based pluggable transport. In short, I use HTTP CONNECT semantics to 
> establish a secure channel between the client and the bridge. Specifically, 
> this is the scenario:
>
> 1. Connection establishment:
>
>      +------------------------------+
>      |CONNECT bridge_ip:443 HTTP/1.0|
>      |User-agent: blablabla         |
>      +------------------------------+
>               |
>               |
> +----------+  |   +----------+      +----------+
> |  client  |----->|  proxy   |----->|  bridge  |
> +----------+      +----------+   |  +----------+
>                                  |
>                                  |
>                  +------------------------------+
>                  |   (Establish a connection)   |                   
>                  +------------------------------+
>
>
> 2. Data relay
>
>      +------------------------------+
>      |    (Encrypted Payload)       |
>      +------------------------------+
>               |
>               |
> +----------+  |    +----------+       +----------+
> |  client  |<----->|  proxy   |<----->|  bridge  |
> +----------+       +----------+   |   +----------+
>                                   |
>                                   |
>                  +------------------------------+
>                  |   (Encrypted Payload)        |                   
>                  +------------------------------+
>
>
>
>
> I hope the diagrams above are self-explanatory. It is only my initial attempt 
> to get familiar with HTTP protocol. Once I make sure it is working correctly 
> under squid proxy I will upload it to the repository.
>
> The use of CONNECT method is restricted in many networks, so it is better to 
> implement the HTTP transport using the usual HTTP methods as POST, GET, etc. 
> In the next stage, I plan to implement a new HTTP transport based on BOSH[1]. 
> There are many issues to care about (in order of priority):
>
> * bi-directional data transfer over HTTP
> * proxy cache
> * HTTP request/response encoding
> * encryption
> * scanning resistance
>
> Have a nice weekend!
>
> [1]: http://xmpp.org/extensions/xep-0124.html
>

Hi Chang,

do you have a specification document for the pluggable transport you
are implementing? Coding stuff without a specification is not the
right way to do this, and it also makes it much harder for us to
evaluate whether your pluggable transport is a good idea.

For example, which ideas from
https://github.com/sjmurdoch/http-transport/blob/master/design.md
will you end up using?

Thanks!
_______________________________________________
tor-dev mailing list
[email protected]
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev

Reply via email to