Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Turbo Tunnel now available in Snowflake in Tor Browser alpha #35

Open
wkrp opened this issue May 28, 2020 · 1 comment
Open

Turbo Tunnel now available in Snowflake in Tor Browser alpha #35

wkrp opened this issue May 28, 2020 · 1 comment

Comments

@wkrp
Copy link
Member

wkrp commented May 28, 2020

Tor Browser 9.5a13 was released last week. This is the first release of Tor Browser to include Turbo Tunnel features for Snowflake. To use it, all you have to do is select "snowflake" from the menu. You can download the browser here:

Snowflake is based on the use of temporary WebRTC proxies. Turbo Tunnel enables you to switch from one proxy to another when the first one fails, with no loss of end-to-end session state. Before this, you had to get lucky and be assigned a long-lived temporary proxy, or else your session would stop working after a while. Now, the client software will notice that the temporary proxy has gone, and pick up where it left off with a new one.

The Turbo Tunnel design will make possible other enhancements, for example splitting traffic across multiple proxies simultaneously as a hedge against being assigned a low proxy.

Since deploying the new version, we've found that some clients, because of their NAT type, are unable to connect to most temporary proxies. These clients will eventually connect, but it may take several minutes.

In this deployment we used KCP and smux for the inner session layer. We prototyped also with QUIC, but the quic-go package seems at this point to be too unstable for deployment. #14 is a consideration of various session protocols.

If you want to keep an eye on what the Snowflake client software is doing, you can enable logging. edit the file Browser/TorBrowser/Data/Tor/torrc-defaults (or Contents/Resources/TorBrowser/Tor/torrc-defaults on Mac) and append the following options to the ClientTransportPlugin snowflake line:

-log snowflake-client.log -log-to-state-dir

The log will appear in Browser/TorBrowser/Data/Tor/pt_state/snowflake-client.log (or Contents/Resources/TorBrowser/Tor/pt_state/snowflake-client.log). Here's a guide to interpreting log messages:

WebRTC: DataChannel created.
You were assigned a temporary proxy by the broker, but you don't know yet whether it works or not.
WebRTC: establishing data channel: timeout waiting for DataChannel.OnOpen
The proxy you were assigned didn't work. The client will try again.
WebRTC: DataChannel.OnOpen
The proxy you were assigned works and you are now exchanging data.
Traffic Bytes (in|out): 981657 | 38139 -- (777 OnMessages, 168 Sends)
The `in|out` numbers say how many bytes were exchanged in 5 seconds.
WebRTC: No messages received for 30s -- closing stale connection.
redialing on same connection
The proxy you were using stopped working. The client will try again to find another one and resume the session.
@wkrp
Copy link
Member Author

wkrp commented Jun 3, 2020

Tor Browser 10.0a1 now includes Snowflake for Android as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant