[tor-dev] A simple HTTP transport and big ideas

David Fifield david at bamsoftware.com
Tue Feb 4 01:54:39 UTC 2014


On Fri, Jan 31, 2014 at 09:59:34AM -0800, David Fifield wrote:
> Here is a repository containing a simple HTTP-based transport.
> 	git clone https://www.bamsoftware.com/git/meek.git
> 	cd meek/meek-client
> 	export GOPATH=~/go
> 	go get
> 	go build
> 	tor -f torrc
> Usually when you think of an HTTP transport, you think of something that
> steganographically tries to make something look like plain HTTP requests
> and responses. Try and forget that idea for now, because that's not what
> I have in mind.
> 
> The protocol is simple. The client generates a random string to serve as
> a session id. It puts this session id in a POST to the server. The
> server has a map from session ids to ORPort connections; if the POST's
> id is not in the map, the server creates a new ORPort connection,
> otherwise it uses an existing one. The server copies the POST body to
> the ORPort, and copies a block of data from the ORPort to the HTTP
> response. The client receives the response, and when it has more to
> send, it does another POST (with the same session id). Then repeat.

I made a wiki page. It depicts a sample traffic flow.

https://trac.torproject.org/projects/tor/wiki/doc/meek

David Fifield


More information about the tor-dev mailing list