[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [tor-bugs] #29206 [Circumvention/Snowflake]: New design for client -- server protocol for Snowflake



#29206: New design for client -- server protocol for Snowflake
-----------------------------------------------+---------------------------
 Reporter:  cohosh                             |          Owner:  cohosh
     Type:  task                               |         Status:
                                               |  needs_review
 Priority:  Medium                             |      Milestone:
Component:  Circumvention/Snowflake            |        Version:
 Severity:  Normal                             |     Resolution:
 Keywords:  anti-censorship-roadmap-september  |  Actual Points:
Parent ID:                                     |         Points:  6
 Reviewer:  dcf                                |        Sponsor:
                                               |  Sponsor28-must
-----------------------------------------------+---------------------------

Comment (by cohosh):

 Alright, I had a chance to take a look at the obfs4 integration with Turbo
 Tunnel: https://github.com/net4people/bbs/issues/14#issuecomment-544747519

 Another option is to just scrap the work done here so far and work turbo
 tunnel into snowflake.

 One of the main differences between Snowflake and obfs4 in how it relates
 to the work on Turbo Tunnel so far is the difference in how Dial would be
 called. There is no `Dial` in snowflake, but rather a simultaneous routine
 that collects snowflakes in the background until we are ready to use them.
 A call to a call to [https://gitweb.torproject.org/pluggable-
 transports/snowflake.git/tree/client/lib/snowflake.go#n20
 snowflakes.Pop()] retrieves it for use by the `Handler` function.

 I'm curious about whether Turbo Tunnel is going to be implemented as a
 separate library.

 Snowflake could accommodate this with a dial function similar to the one
 provided by the obfs4 ClientFactory:
 https://dip.torproject.org/dcf/obfs4/blob/reconnecting-
 quic/transports/base/base.go#L56
 Here `Dial` would likely be provided by `SnowflakeCollector` and just wrap
 the call the `snowflakes.Pop`. Then `dialAndExchange` could take a
 `Dialer` interface as the first argument.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/29206#comment:33>
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