conjure issueshttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/conjure/-/issues2022-06-30T16:27:34Zhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/conjure/-/issues/3Create a local test environment for Conjure client, relay station, and bridge2022-06-30T16:27:34ZCecylia BocovichCreate a local test environment for Conjure client, relay station, and bridgeWe're going to have to work with Eric and the refraction networking relay station maintainers to deploy connect the various Conjure pieces we need. Ideally we'd set up a test environment to try out different details and designs first so ...We're going to have to work with Eric and the refraction networking relay station maintainers to deploy connect the various Conjure pieces we need. Ideally we'd set up a test environment to try out different details and designs first so we're not just testing everything in production.
I've done a Docker-based setup for testing refraction networking (a.k.a decoy routing) before with the [Slitheen test-env](https://gitlab.com/slitheen/test-env). Something similar might be repurposed here.Sponsor 30 - Objective 2.3Cecylia BocovichCecylia Bocovich2022-05-27https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/conjure/-/issues/2Create a Tor PT server for Conjure2022-06-30T16:27:34ZCecylia BocovichCreate a Tor PT server for ConjureThere's a few details we need to sort out for what the Conjure bridge is going to actually look like. The [refraction networking relay station code](https://github.com/refraction-networking/conjure) is responsible for negotiating IP endp...There's a few details we need to sort out for what the Conjure bridge is going to actually look like. The [refraction networking relay station code](https://github.com/refraction-networking/conjure) is responsible for negotiating IP endpoints with the Conjure client and speaking the server side of whichever obfuscation protocol the client chose (in our case this will likely be obfs4).
Once the relay station strips off this obfuscation layer, it should send the resulting traffic to our Conjure bridge. We might have to work with Eric and the refracton networking relay station maintainers to sort out the details, but this will ideally speak something like [Tor's ExtOrPort PT spec](https://gitweb.torproject.org/torspec.git/tree/pt-spec.txt#n373) sent over an encrypted connection with with the bridge and be able to carry information like the client's address so we can do metrics.Sponsor 30 - Objective 2.3Cecylia BocovichCecylia Bocovich2022-06-03https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/conjure/-/issues/1Create a Tor PT client for conjure2022-06-30T16:27:34ZCecylia BocovichCreate a Tor PT client for conjureWe can import the [refraction networking client](https://github.com/refraction-networking/gotapdance) code as a library directly from our main program as described in the code snippet in their [README](https://github.com/refraction-netwo...We can import the [refraction networking client](https://github.com/refraction-networking/gotapdance) code as a library directly from our main program as described in the code snippet in their [README](https://github.com/refraction-networking/gotapdance#usage).
This will be done similarly to how the Snowflake client now calls the Snowflake client library from [the main Go package](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/blob/0054cb2dec19e89e07b8c5a6d8b9d23589842deb/client/snowflake.go).Sponsor 30 - Objective 2.3Cecylia BocovichCecylia Bocovich2022-06-10https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/conjure/-/issues/4Implement conjure as a pluggable transport2022-09-28T18:12:26ZGabagaba@torproject.orgImplement conjure as a pluggable transportGet [the refraction networking client](https://github.com/refraction-networking/gotapdance)'s code into a pluggable transport for Tor. This issue tracks an MVP version of Conjure that is suitable to ship in alpha versions of Tor Browser....Get [the refraction networking client](https://github.com/refraction-networking/gotapdance)'s code into a pluggable transport for Tor. This issue tracks an MVP version of Conjure that is suitable to ship in alpha versions of Tor Browser.
- [x] get familiar with the Go code https://github.com/refraction-networking/gotapdance
- [x] create conjure repo in https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports for this new PT
- https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/conjure
- [x] implement a staging environment for testing (#3)
- [x] implement a working PT (#1, #2)
- [x] connect PT to production Conjure station (#6)
- [x] deploy a Conjure bridge
- [ ] secure the connection between the station and the bridge (#15)
- [ ] reproducible builds in tor-browser-build (#14)
- [ ] get IPv6 working (#13)
- [ ] save phantom registrations for later use (#7)
- [ ] protect the registration with either decoy routing or domain frontingSponsor 30 - Objective 2.3Cecylia BocovichCecylia Bocovich