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

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri Jun 14 22:53:51 UTC 2019


#28942: Evaluate pion WebRTC
-------------------------------------+-------------------------------
 Reporter:  backkem                  |          Owner:  cohosh
     Type:  enhancement              |         Status:  assigned
 Priority:  Medium                   |      Milestone:
Component:  Circumvention/Snowflake  |        Version:
 Severity:  Normal                   |     Resolution:
 Keywords:  ex-sponsor-19            |  Actual Points:
Parent ID:                           |         Points:
 Reviewer:                           |        Sponsor:  Sponsor28-can
-------------------------------------+-------------------------------

Comment (by cohosh):

 I got proxy-go building with pion/webrtc. The changes necessary were
 fairly small and can be seen
 [https://github.com/cohosh/snowflake/commit/8770de768e8852611bb470b9114180a7504b7758
 here]. Datachannel creation and teardown appear to be working as expected
 and some data is flowing through.

 However, I'm having trouble bootstrapping the Tor client past 50%. Here's
 a log of the pion port:
 {{{
 Jun 14 22:44:25.188 [notice] Tor 0.2.9.16 (git-9ef571339967c1e5) running
 on Linux with Libevent 2.0.21-stable, OpenSSL 1.1.0j and Zlib 1.2.8.
 Jun 14 22:44:25.188 [notice] Tor can't help you if you use it wrong! Learn
 how to be safe at https://www.torproject.org/download/download#warning
 Jun 14 22:44:25.188 [notice] Read configuration file "/go/bin/torrc-5".
 Jun 14 22:44:25.190 [warn] Path for DataDirectory (datadir5) is relative
 and will resolve to /go/bin/datadir5. Is this what you wanted?
 Jun 14 22:44:25.191 [notice] Opening Socks listener on 127.0.0.1:9055
 Jun 14 22:44:25.000 [notice] Parsing GEOIP IPv4 file /usr/share/tor/geoip.
 Jun 14 22:44:25.000 [notice] Parsing GEOIP IPv6 file
 /usr/share/tor/geoip6.
 Jun 14 22:44:25.000 [notice] Bootstrapped 0%: Starting
 Jun 14 22:44:25.000 [notice] Delaying directory fetches: No running
 bridges
 Jun 14 22:44:27.000 [notice] Bootstrapped 5%: Connecting to directory
 server
 Jun 14 22:44:27.000 [notice] Bootstrapped 10%: Finishing handshake with
 directory server
 Jun 14 22:44:30.000 [notice] Learned fingerprint
 2B280B23E1107BB62ABFC40DDCC8824814F80A72 for bridge 0.0.3.0:1 (with
 transport 'snowflake').
 Jun 14 22:44:30.000 [notice] Bootstrapped 15%: Establishing an encrypted
 directory connection
 Jun 14 22:44:30.000 [notice] Bootstrapped 20%: Asking for networkstatus
 consensus
 Jun 14 22:44:30.000 [notice] new bridge descriptor 'flakey' (fresh):
 $2B280B23E1107BB62ABFC40DDCC8824814F80A72~flakey at 0.0.3.0
 Jun 14 22:44:30.000 [notice] I learned some more directory information,
 but not enough to build a circuit: We have no usable consensus.
 Jun 14 22:44:32.000 [notice] Bootstrapped 25%: Loading networkstatus
 consensus
 Jun 14 22:44:34.000 [notice] I learned some more directory information,
 but not enough to build a circuit: We have no usable consensus.
 Jun 14 22:44:34.000 [notice] Bootstrapped 40%: Loading authority key certs
 Jun 14 22:44:34.000 [notice] Bootstrapped 45%: Asking for relay
 descriptors
 Jun 14 22:44:34.000 [notice] I learned some more directory information,
 but not enough to build a circuit: We need more microdescriptors: we have
 0/6533, and can only build 0% of likely paths. (We have 0% of guards bw,
 0% of midpoint bw, and 0% of exit bw = 0% of path bw.)
 Jun 14 22:44:34.000 [notice] Bootstrapped 50%: Loading relay descriptors
 Jun 14 22:45:07.000 [notice] Delaying directory fetches: No running
 bridges
 }}}
 compared to a log of using go-webrtc:
 {{{
 Jun 14 22:48:51.025 [notice] Tor 0.2.9.16 (git-9ef571339967c1e5) running
 on Linux with Libevent 2.0.21-stable, OpenSSL 1.1.0j and Zlib 1.2.8.
 Jun 14 22:48:51.025 [notice] Tor can't help you if you use it wrong! Learn
 how to be safe at https://www.torproject.org/download/download#warning
 Jun 14 22:48:51.025 [notice] Read configuration file "/go/bin/torrc-6".
 Jun 14 22:48:51.026 [warn] Path for DataDirectory (datadir6) is relative
 and will resolve to /go/bin/datadir6. Is this what you wanted?
 Jun 14 22:48:51.027 [notice] Opening Socks listener on 127.0.0.1:9056
 Jun 14 22:48:51.000 [notice] Parsing GEOIP IPv4 file /usr/share/tor/geoip.
 Jun 14 22:48:51.000 [notice] Parsing GEOIP IPv6 file
 /usr/share/tor/geoip6.
 Jun 14 22:48:51.000 [notice] Bootstrapped 0%: Starting
 Jun 14 22:48:51.000 [notice] Delaying directory fetches: No running
 bridges
 Jun 14 22:48:53.000 [notice] Bootstrapped 5%: Connecting to directory
 server
 Jun 14 22:48:53.000 [notice] Bootstrapped 10%: Finishing handshake with
 directory server
 Jun 14 22:48:53.000 [notice] Learned fingerprint
 2B280B23E1107BB62ABFC40DDCC8824814F80A72 for bridge 0.0.3.0:1 (with
 transport 'snowflake').
 Jun 14 22:48:53.000 [notice] Bootstrapped 15%: Establishing an encrypted
 directory connection
 Jun 14 22:48:53.000 [notice] Bootstrapped 20%: Asking for networkstatus
 consensus
 Jun 14 22:48:53.000 [notice] new bridge descriptor 'flakey' (fresh):
 $2B280B23E1107BB62ABFC40DDCC8824814F80A72~flakey at 0.0.3.0
 Jun 14 22:48:53.000 [notice] I learned some more directory information,
 but not enough to build a circuit: We have no usable consensus.
 Jun 14 22:48:54.000 [notice] Bootstrapped 25%: Loading networkstatus
 consensus
 Jun 14 22:48:58.000 [notice] I learned some more directory information,
 but not enough to build a circuit: We have no usable consensus.
 Jun 14 22:48:58.000 [notice] Bootstrapped 40%: Loading authority key certs
 Jun 14 22:48:58.000 [notice] Bootstrapped 45%: Asking for relay
 descriptors
 Jun 14 22:48:58.000 [notice] I learned some more directory information,
 but not enough to build a circuit: We need more microdescriptors: we have
 0/6533, and can only build 0% of likely paths. (We have 0% of guards bw,
 0% of midpoint bw, and 0% of exit bw = 0% of path bw.)
 Jun 14 22:48:58.000 [notice] Bootstrapped 50%: Loading relay descriptors
 Jun 14 22:49:01.000 [notice] Bootstrapped 57%: Loading relay descriptors
 Jun 14 22:49:01.000 [notice] Bootstrapped 65%: Loading relay descriptors
 Jun 14 22:49:01.000 [notice] Bootstrapped 71%: Loading relay descriptors
 Jun 14 22:49:01.000 [notice] Bootstrapped 78%: Loading relay descriptors
 Jun 14 22:49:01.000 [notice] Bootstrapped 80%: Connecting to the Tor
 network
 Jun 14 22:49:02.000 [notice] Bootstrapped 90%: Establishing a Tor circuit
 Jun 14 22:49:02.000 [notice] Tor has successfully opened a circuit. Looks
 like client functionality is working.
 Jun 14 22:49:02.000 [notice] Bootstrapped 100%: Done
 }}}

 I've reproduced this several times with no luck getting past 50%. Going to
 take a look at whether the messages are getting through as expected.

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


More information about the tor-bugs mailing list