[tor-bugs] #28942 [Circumvention/Snowflake]: Evaluate pion WebRTC

Tor Bug Tracker & Wiki blackhole at torproject.org
Sun Sep 1 13:45:26 UTC 2019


#28942: Evaluate pion WebRTC
--------------------------------------------+------------------------------
 Reporter:  backkem                         |          Owner:  cohosh
     Type:  enhancement                     |         Status:  accepted
 Priority:  Medium                          |      Milestone:
Component:  Circumvention/Snowflake         |        Version:
 Severity:  Normal                          |     Resolution:
 Keywords:  anti-censorship-roadmap-august  |  Actual Points:
Parent ID:                                  |         Points:  5
 Reviewer:                                  |        Sponsor:
                                            |  Sponsor28-must
--------------------------------------------+------------------------------

Comment (by cohosh):

 Replying to [comment:49 dcf]:
 > Replying to [comment:46 cohosh]:
 > > Update on this: I tried building with pion/webrtc v2.0.23 (using
 pion/sctp v1.6.4 and otherwise sticking to the versions specified in
 `go.mod` for webrtc v2.0.23) and it bootstraps fully.
 >
 > I tried this hint here:
 >  * [https://gitweb.torproject.org/user/dcf/tor-browser-build.git/log/?h
 =pion-webrtc&id=6bfc0beea25295c04cb9a1753ea0a433786500e4 pion-webrtc]
 branch
 >  * https://people.torproject.org/~dcf/pt-bundle/tor-browser-pion-
 webrtc-20190901-6bfc0beea2/
 >
 > However it still doesn't work for me :/ Maybe I misunderstood what you
 suggested. I re-ran the [attachment:gomodtorbm gomodtorbm] script with
 pion-webrtc at v2.0.23 and restored the manual fixups. Then I singularly
 upgraded pion-sctp to v1.6.4. You can see exactly the changes
 [https://gitweb.torproject.org/user/dcf/tor-browser-build.git/commit/?h
 =pion-webrtc&id=6bfc0beea25295c04cb9a1753ea0a433786500e4 here]. Does it
 look right?
 >
 > It's also possible there's something wrong with my local network setup.
 Can someone try one of the bundles in https://people.torproject.org/~dcf
 /pt-bundle/tor-browser-pion-webrtc-20190901-6bfc0beea2/ and see if it
 works?

 Interesting...

 I downloaded `https://people.torproject.org/~dcf/pt-bundle/tor-browser-
 pion-webrtc-20190901-6bfc0beea2/tor-browser-linux64-9.0a4_en-US.tar.xz`
 and extracted the `snowflake-client` executable and ran it in snowbox.

 The client bootstrapped fully to 100%. Logs are:

 {{{
 2019/09/01 13:30:25 Negotiating via BrokerChannel...
 Target URL:
 Front URL:   localhost:8080
 2019/09/01 13:30:27 SOCKS accepted:  {[scrubbed]  map[]}
 2019/09/01 13:30:30 BrokerChannel Response:
 200 OK

 2019/09/01 13:30:30 Received Answer.
 2019/09/01 13:30:30 ---- Handler: snowflake assigned ----
 2019/09/01 13:30:30 Buffered 316 bytes --> WebRTC
 2019/09/01 13:30:30 WebRTC: DataChannel.OnOpen
 2019/09/01 13:30:30 Flushed 316 bytes.
 2019/09/01 13:30:30 Traffic Bytes (in|out): 742 | 316 -- (1 OnMessages, 1
 Sends)
 2019/09/01 13:30:35 Traffic Bytes (in|out): 925165 | 348793 -- (123
 OnMessages, 49 Sends)
 2019/09/01 13:30:40 WebRTC: At capacity [1/1]  Retrying in 10 seconds...
 2019/09/01 13:30:41 Traffic Bytes (in|out): 1813256 | 54848 -- (179
 OnMessages, 48 Sends)
 2019/09/01 13:30:48 Traffic Bytes (in|out): 5430 | 5430 -- (10 OnMessages,
 10 Sends)
 2019/09/01 13:30:49 WebRTC: closing DataChannel
 2019/09/01 13:30:49 WebRTC: closing PeerConnection
 2019/09/01 13:30:49 ConnectLoop: stopped.
 2019/09/01 13:30:49 WebRTC: DataChannel.OnClose [locally]
 2019/09/01 13:30:49 WebRTC: Closing
 2019/09/01 13:30:49 WebRTC: melted all 1 snowflakes.
 2019/09/01 13:30:49 copy loop ended
 2019/09/01 13:30:49 ---- Handler: closed ---
 2019/09/01 13:30:49 SOCKS listening...
 2019/09/01 13:30:49 snowflake is done.
 }}}

 This was with a standalone proxy also running the pion library and with a
 standalone proxy without pion.

 Then I ran this in snowbox with only a browser-based proxy running and I
 got the same failure where it doesn't bootstrap past 10%. Log:

 {{{
 2019/09/01 13:42:28 Negotiating via BrokerChannel...
 Target URL:
 Front URL:   localhost:8080
 2019/09/01 13:42:28 BrokerChannel Response:
 200 OK

 2019/09/01 13:42:28 Received Answer.
 2019/09/01 13:42:38 WebRTC: At capacity [1/1]  Retrying in 10 seconds...
 2019/09/01 13:42:48 WebRTC: At capacity [1/1]  Retrying in 10 seconds...
 2019/09/01 13:42:50 SOCKS accepted:  {[scrubbed]  map[]}
 2019/09/01 13:42:50 ---- Handler: snowflake assigned ----
 2019/09/01 13:42:50 Buffered 321 bytes --> WebRTC
 2019/09/01 13:42:55 Traffic Bytes (in|out): 0 | 321 -- (0 OnMessages, 1
 Sends)
 2019/09/01 13:42:58 WebRTC: At capacity [1/1]  Retrying in 10 seconds...
 2019/09/01 13:42:58 WebRTC: No messages received for 30 seconds -- closing
 stale connection.
 2019/09/01 13:42:58 WebRTC: closing PeerConnection
 2019/09/01 13:42:58 WebRTC: Closing
 2019/09/01 13:42:58 copy loop ended
 2019/09/01 13:42:58 ---- Handler: closed ---
 2019/09/01 13:42:58 SOCKS listening...
 }}}

 So a pion client must not be working well with the browser based proxies.
 I tried running a non-pion client just to make sure it wasn't a problem
 with the proxy code and that client bootstrapped fine.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/28942#comment:50>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list