Hey everyone!
Here are our meeting logs:
http://meetbot.debian.net/tor-meeting/2022/tor-meeting.2022-03-03-15.59.html
And our meeting pad:
Anti-censorship work meeting pad
···
--------------------------------
Next meeting: Thursday March 10th 16:00 UTC
Weekly meetings, every Thursday at 16:00 UTC, in #tor-meeting at OFTC (channel is logged while meetings are in progress)
== Goal of this meeting ==
Weekly checkin about the status of anti-censorship work at Tor.
Coordinate collaboration between people/teams on anti-censorship at Tor.
== Links to Useful documents ==
Our anti-censorship roadmap:
Roadmap: Development · Boards · Anti-censorship · GitLab
The anti-censorship team's wiki page:
Home · Wiki · The Tor Project / Anti-censorship / Team · GitLab
Past meeting notes can be found at:
Tickets that need reviews: from sponsors we are working on:
All needs review tickets: Merge requests · Anti-censorship · GitLab
Sponsor 30
Sponsor 30 - Objective 2.1 · The Tor Project · GitLab
Sponsor 30 - Objective 2.2 · The Tor Project · GitLab
Sponsor 30 - Objective 2.3 · The Tor Project · GitLab
Sponsor 30 - Objective 2.4 · The Tor Project · GitLab
Sponsor 28
must-do tickets: Sponsor 28: Reliable Anonymous Communication Evading Censors and Repressors (RACECAR) · The Tor Project · GitLab
possible tickets: Issues · The Tor Project · GitLab
== Announcements ==
Centralized Probe Result Collector on trial deployment
Russia, Turkey, Beijing probetests are integrated
BridgeDB is now using rdsys
== Discussion ==
obfs4 fail to connect issue
we are coordinating with builtin bridges to update, many has already updated
there is now a docker image with the new version
the obfs4proxy 0.0.13 package will land in debian backports soon
snowflake load and bottlenecks
do we need more proxies?
next steps for bridge capacity
probetest is at is capacity
could standalone proxies (which can make direct TCP connections) bypass snowflake-server and connect directly to the tor ExtORPort
no, snowflake-server holds the turbo tunnel state
we want to move into a design where there are multiple snowflake-servers and multiple bridges
idea: partition snowflake-servers and bridges into non-overlapping "pools"
i.e., snowflake-server A forwards to a set of bridges, snowflake-server B forwards to *its* set of bridges, and they share no bridges in common
(which is a generalization of the current case, where there is 1 snowflake-server and 1 bridge)
(there could be distinct brokers for different pools, but that is orthogonal)
partitioning the set of bridges has this effect: when a broker/proxy wants to connect a client's traffic to a snowflake-server, for a specific bridge there is *one and only one* snowflake-server that is associated with that bridge
therefore multiple connections in the same session, which use the same bridge, will also use the same snowflake-server, and therefore not lose turbo tunnel state
it can work like this:
the client torrc specifies the desired bridge fingerprint in its bridge line as a SOCKS param (redundantly with the fingerprint that is already there as part of the syntax)
e.g. `Bridge snowflake 1111222233334444aaaabbbbccccdddd 192.0.2.3:1 url=https://snowflake.torproject.net/ front=front.example.com ice=... fingerprint=1111222233334444aaaabbbbccccdddd`
the client sends the desired bridge fingerprint along with its offer to the broker
the broker has a mapping of bridge fingerprints to snowflake-server WebSocket URLs. when the broker matches the client with a proxy, the broker informs the proxy of the WebSocket URL to connect to (i.e., which snowflake-server to connect to). it will always be the same snowflake-server URL for the same bridge fingerprint, because the mapping is consistent.
the proxy connects to the WebSocket URL provided by the broker, and it includes the bridge fingerprint in the URL query string when it makes the connection (the same way the client IP address is communicated: e.g. `?client_ip=1.2.3.4:5678&fingerprint=1111222233334444aaaabbbbccccdddd`)
the snowflake-server has its own mapping of bridge fingerprint to ExtORPort addresses. if it's an existing turbo tunnel session, it just resumes the ExtORPort TCP it already has. if it's a new session, it connects to the ExtORPort address corresponding to the bridge fingerprint.
such a design alleviates the state-sharing concerns with multiple snowflake-servers. as long as a client uses a consistent bridge fingerprint during a session (which it will), it will get mapped to the same snowflake-server.
arlolra is planning to write a patch for including the bridge fingerprint as a bridge line SOCKS param, and passing it to the broker, which is a necessary step for any of this
then there can be multiple snowflake bridge lines in torrc, each with different bridge fingerprints. load balancing will come from the tor client's local random selection.
there is a "thundering herd" concern with the way tor currently uses multiple bridge lines. tor will attempt to connect to all of them at once, and keep using only one of them. This means N broker transactions and N STUN exchanges, and possibly N-1 proxies held idle.
maybe it's not such a big problem, if N is not too large
an alternative would be a modification to tor where it shuffles its bridge list, and tries only one at a time
another alternative is to write the torrc file dynamically: choose a random bridge line, then write torrc containing only that one randomly selected bridge line
need to consider backward compatibility: a client that doesn't communicate its desired fingerprint gets mapped to the existing
== Actions ==
== Interesting links ==
Pluggable Transports Implementer's Meeting 2021 : Free Download, Borrow, and Streaming : Internet Archive Pluggable Transports Implementers Meeting 2021 videos
== Reading group ==
We will discuss "Throttling Twitter: an emerging censorship technique in Russia" on 10 March
https://dl.acm.org/doi/pdf/10.1145/3487552.3487858
The Internet censorship bibliography
Questions to ask and goals to have:
What aspects of the paper are questionable?
Are there immediate actions we can take based on this work?
Are there long-term actions we can take based on this work?
Is there future work that we want to call out, in hopes that others will pick it up?
== Updates ==
Name:
This week:
- What you worked on this week.
Next week:
- What you are planning to work on next week.
Help with:
- Something you need help with.
anadahz: 2022-01-27
Last week:
- Increase timeout check cycles for default-bridge-felix-1 and default-bridge-felix-2 as they have been generating too many alerts: Increase number of cycles for felix bridges (!1) · Merge requests · The Tor Project / Anti-censorship / monit-configuration · GitLab
cecylia (cohosh): last updated 2022-03-03
Last week:
- updated version of snowflake in Tor Browser to include logged events
- Bump version of snowflake to include PT LOG events (#40440) · Issues · The Tor Project / Applications / tor-browser-build · GitLab
- started work on conjure PT for Tor (conjure#1)
- The Tor Project / Anti-censorship / Pluggable Transports / conjure · GitLab
- reviewed and merged some small snowflake MRs
- snowflake!79
- snowflake!80
- checked out shadow fixes for go programs
- snowflake simulation broken in preload mode · Issue #1549 · shadow/shadow · GitHub
- helped monitor snowflake broker stats
- [anti-censorship-team] Surge in Snowflake client polls
- commented on adding more snowflake bridges (snowflake#28651)
This week:
- continued work on conjure PT
- continue to monitor snowflake broker stats
Needs help with:
dcf: 2022-03-03
Last week:
- posted summary of snowflake bridge outage on 2022-02-18 [anti-censorship-team] Snowflake bridge outage, 2022-02-18
- tried porting extor-static-cookie to rust [anti-censorship-team] Rust port of extor-static-cookie
- tried the bridgedb+rdsys setup [anti-censorship-team] bridgedb+rdsys test setup
- inquired with OTF about funding for the snowflake bridge
- posted about hardware limitations at the snowflake bridge [tor-project] More resources required for Snowflake bridge
- posted notes on using STATUS for PT version reporting Bridges should report implementation versions of their pluggable transports (#11101) · Issues · The Tor Project / Core / Tor · GitLab
- commented on space changes for STATUS VERSION Add STATUS VERSION message for PT protcol (!63) · Merge requests · The Tor Project / Core / Tor Specifications · GitLab
Next week:
Help with:
agix: 2021-02-10
Last week:
- Continued work on gettor-twitter
Next week:
- Hopefully finish the task
Help with:
-
arlolra: 2022-03-03
Last week:
-
Next week:
- Figure out where in pion/webrtc ALPN should be configured and used
- Maybe add Chacha20Poly1305 to pion/dtls
GitHub - pion/dtls: DTLS 1.2 Server/Client implementation for Go
- Pass bridge fingerprint in SOCKS param to the broker
Help with:
-
maxb: 2021-09-23
Last week:
- Worked on uTLS for broker negotiation (#40054) · Issues · The Tor Project / Anti-censorship / Pluggable Transports / Snowflake · GitLab re: utls for broker negotiation
- Had conversation with someone about upstream utls http round tripper feat: sketch out utls http.RoundTripper by bassosimone · Pull Request #74 · refraction-networking/utls · GitHub
- Too busy with work
Next week:
- _Really_ want to get a PR for utls round tripper
meskio: 2022-03-03
Last week:
- deploy rdsys + bridgedb in production (rdsys#12)
- update docker obfs4-bridge image with the new obfs4proxy (docker-obfs4-bridge#12)
- coordinate with TPA to clean up the old email setup in BridgeDB
- coordinate with metrics so the new assignments file
- work on an update of the pt-spec to include the version on the STATUS message
Next week:
- use rdsys bridges in circumvention settings (bridgedb#40045)
Shelikhoo: 2022-03-03
Last Week:
- [Merge Request Awaiting] Add SOCKS5 forward proxy support to snowflake (snowflake!64)
- [Merge Request Awaiting] uTLS for broker negotiation
- [Discussion] Proposal: Support for Dynamic IP obfs4 bridges with unattended proxy information update (aka "Subscription")
- [Coding & Deployment] Proposal: Centralized Probe Result Collector (anti-censorship/team#54)
Next Week:
- [Coding & Deployment] Proposal: Centralized Probe Result Collector (anti-censorship/team#54)
HackerNCoder: 2021-12-16
This week:
Last/done:
Setup web mirror on tor.encryptionin.space
Next:
Get (new VPs with) new IP and setup new web mirror on new domain
hanneloresx: 2021-3-4
Last week:
- Submitted MR for bridgestrap issue #14
Next week:
- Finish bridgestrap #14
- Find new issue to work on
Help with:
-
--
meskio | https://meskio.net/
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
My contact info: https://meskio.net/crypto.txt
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Nos vamos a Croatan.