Anti-censorship issueshttps://gitlab.torproject.org/groups/tpo/anti-censorship/-/issues2020-06-27T13:44:09Zhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/trac/-/issues/4679Design a pluggable transport roadmap2020-06-27T13:44:09ZKarsten LoesingDesign a pluggable transport roadmap"Disambiguation" note: This ticket is about comparing pluggable transport protocols, not about writing down the steps for deploying pluggable transports (legacy/trac#4562).
For [sponsor F deliverable 6](uploads/org/sponsors/SponsorF/Yea..."Disambiguation" note: This ticket is about comparing pluggable transport protocols, not about writing down the steps for deploying pluggable transports (legacy/trac#4562).
For [sponsor F deliverable 6](uploads/org/sponsors/SponsorF/Year2#6) we promised to "help SponsorF design a roadmap for the scope of transports we expect need work." This deliverable comprises the following tasks:
* Talk to SponsorF about the prototypes of various pluggable transports they came up with and include them in the roadmap.
* Describe what security properties each of the transports aims to provide (i.e. what censorship techniques it aims to defeat).
* Figure out how far along we are at each of them and what research and development roadblocks remain.
* Prioritize transports by complexity and urgency of deployment.
* Build a plan for how to compose transports appropriately without screwing up their properties.
* For each transport, speculate about how easy and/or smart it would be to bake into Tor itself.
Optimistically assigning this ticket to Steven, because he said he might be able to lead this deliverable. This deliverable needs input from many Tor developers.Steven MurdochSteven Murdochhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake-mobile/-/issues/18Removing animation on inner views while animating the fragment change (settin...2020-08-17T15:22:50ZHashikDRemoving animation on inner views while animating the fragment change (settings <-> Homescreen)[As suggested](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake-mobile/-/issues/11#note_2705557), this ticket is to remove the animation on inner views (elements).[As suggested](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake-mobile/-/issues/11#note_2705557), this ticket is to remove the animation on inner views (elements).HashikDHashikDhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake-webext/-/issues/18".tx" translation option at snowflake.torproject.org2021-01-15T20:31:48ZDavid Fifielddcf@torproject.org".tx" translation option at snowflake.torproject.orgAt the top of the list of translations at https://snowflake.torproject.org/ there is a ".tx" option. The cause seems to be a new .tx directory in the translation submodule, specifically [this commit](https://gitweb.torproject.org/transla...At the top of the list of translations at https://snowflake.torproject.org/ there is a ".tx" option. The cause seems to be a new .tx directory in the translation submodule, specifically [this commit](https://gitweb.torproject.org/translation.git/commit/?h=snowflakeaddon-messages.json_completed&id=a30c07f5fc719b2c24619c3dd231b61314340d80), "Add tx config", from 2020-05-26.
<img src="/uploads/969118842e2a7fa422143fd292933af1/tx.png" height=320>https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/trac/-/issues/4680Design, build, and document Morpher as a pluggable transport2020-06-27T13:44:08ZKarsten LoesingDesign, build, and document Morpher as a pluggable transportFor [sponsor F deliverable 8](uploads/org/sponsors/SponsorF/Year2#8) we promised to work on a pluggable transport based on traffic morphing as described in this UNC [paper](http://freehaven.net/anonbib/#morphing09). The name of this plu...For [sponsor F deliverable 8](uploads/org/sponsors/SponsorF/Year2#8) we promised to work on a pluggable transport based on traffic morphing as described in this UNC [paper](http://freehaven.net/anonbib/#morphing09). The name of this pluggable transport will be Morpher.
We promised to do the following things:
* Implement an initial prototype of the traffic morphing code.
* Integrate the prototype with obfsproxy.
* Write a spec for the Morpher code (so everybody can know what exactly it does).
* Write a spec for a protocol that Morpher uses.
* Make contact with the "traffic morphing" research group at UNC, try to get them to review Morpher, try to get them thinking about next steps, and learn what else they're up to.
I'm optimistically assigning this ticket to asn even though he didn't explicitly say that he's going to lead this deliverable.
We should probably create child tickets for the substeps listed above that aren't completed yet.George KadianakisGeorge Kadianakishttps://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/12Deploy rdsys alongside BridgeDB2022-02-28T16:52:51ZPhilipp Winterphw@torproject.orgDeploy rdsys alongside BridgeDBOnce we have an MVP, it's time to deploy rdsys on polyanthum, alongside BridgeDB. An MVP could (re)implement the HTTPS distributor (tpo/anti-censorship/rdsys#2) and/or Salmon (tpo/anti-censorship/rdsys#1). Here's how BridgeDB and rdsys c...Once we have an MVP, it's time to deploy rdsys on polyanthum, alongside BridgeDB. An MVP could (re)implement the HTTPS distributor (tpo/anti-censorship/rdsys#2) and/or Salmon (tpo/anti-censorship/rdsys#1). Here's how BridgeDB and rdsys could share bridge descriptors:
~~1. BridgeDB and rdsys could both pretend that the other one doesn't exist and simply use all descriptors. That's the simplest solution but it increases the odds of a bridge being blocked (because it's handed out by more than one distributor)~~
2. We could siphon off a fraction of our descriptors and reserve it for rdsys. That means that both rdsys and BridgeDB need code that decides who a given descriptor belongs to.
Milestone for this in http://eweiibe6tdjsdprb4px6rqrzzcsi22m4koia44kc5pcjr7nec2rlxyad.onion/tpo/anti-censorship/rdsys/-/milestones/1Sponsor 96: Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & Tibetmeskiomeskio@torproject.orgmeskiomeskio@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/40045Circumvention settings fallback defautls2022-04-14T08:38:49Zmeskiomeskio@torproject.orgCircumvention settings fallback defautls> I think it would be a good idea for rdsys to provide what it considers a good 'fallback' set of settings for users to try in the event that they are blocked but do not live in one of the countries we have settings for. For now I assume...> I think it would be a good idea for rdsys to provide what it considers a good 'fallback' set of settings for users to try in the event that they are blocked but do not live in one of the countries we have settings for. For now I assume using an obfs4 builtin bridges is the best idea, but that will surely change at some point in the (hopefully distant) future. So an endpoint like circumvention/reasonable_defaults or whatever which returns an array of settings objects in the same format as the circumvention/settings API would be lovely.
Related to #40043.Sponsor 96: Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & Tibetmeskiomeskio@torproject.orgmeskiomeskio@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/87Single source of truth for builtin bridges2022-03-11T17:38:57Zmeskiomeskio@torproject.orgSingle source of truth for builtin bridgesThe current circumvention API (!15) provides bridges manually configured in rdsys config. So each time we change the default bridges we need to do it in two places: torbrowser & rdsys.
Should rdsys get the bridges from the [torbrowser r...The current circumvention API (!15) provides bridges manually configured in rdsys config. So each time we change the default bridges we need to do it in two places: torbrowser & rdsys.
Should rdsys get the bridges from the [torbrowser repo](https://gitweb.torproject.org/builders/tor-browser-build.git/tree/projects/tor-browser/Bundle-Data/PTConfigs/bridge_prefs.js)? Do we have any better source of builtin bridges? Do we prefer to maintain them manually configured in rdsys?Sponsor 96: Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & Tibetmeskiomeskio@torproject.orgmeskiomeskio@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40104proxy lib - be able to configure the proxy type2022-03-21T18:25:21Zmeskiomeskio@torproject.orgproxy lib - be able to configure the proxy typeThe snowflake proxy library is being used by more clients than our standalone proxy. Library users should be able to set the proxy type that will be reported to the broker.
Currently the proxy type is hardcoded: https://gitlab.torprojec...The snowflake proxy library is being used by more clients than our standalone proxy. Library users should be able to set the proxy type that will be reported to the broker.
Currently the proxy type is hardcoded: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/blob/main/proxy/lib/snowflake.go#L202
A use case for it now will be to have a different type in orbot, so we know how many snowflakes are provided by orbot users in comparison to other users.
We should take into account that currently the broker has a [hardcoded list of proxy types](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/blob/main/broker/metrics.go#L26) and the rest is treated as 'unknown'. This was motivated by having a lot of requests with estrange proxy types (https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40089). I guess we can extend the proxy type list for the mayor types we know off or we could do some simple validation of what kind of proxy types are meaningful.meskiomeskio@torproject.orgmeskiomeskio@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/79Use rotating time periods for when each bridge is available for distribution2022-03-24T10:30:02Zmeskiomeskio@torproject.orgUse rotating time periods for when each bridge is available for distributionFrom https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/12#note_2738534:
> I think the original idea was different in that *no matter how many email addresses or subnets you have*, you still can't learn the bridges we gave...From https://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/12#note_2738534:
> I think the original idea was different in that *no matter how many email addresses or subnets you have*, you still can't learn the bridges we gave out yesterday. That is, the idea was to release a small subset of the total bridge population, and then divide that subset according to the resource-you're-proving constraint.
>
> It could be that this design only works well with a large enough bridge population. For example, let's say we take only 5% of our bridges to give out at a time, and we give them out for a 6 hour interval before moving to the next subset. Then it's 5 days before we get around to offering them again. Those numbers prove the concept ("when you show up and decide to start blocking, people still get several days of use out of the bridges they already have") but they aren't as exciting as an example with an even larger period. If we rotate each 24 hours, then we get a much bigger period of 20 days. And if there's some level of churn in that period, then we're also giving out our fresh bridges in a way that's spread-out into the future, forcing the attacker to sustain the attack (this aspect would work better if the rotation period was more like every hour, so you really do have to hit us every hour or you miss a whole batch).
>
> This general principle is part of what makes Salmon appealing too: "give out bridges to a group of people and then stop giving them out \[for a long while\] after that".
>
> If we want to mess around with variations on our bridge distribution strategies in order to get more intuition, that sounds great. If we want to wait and "do it right" with Salmon, so long as we know that the first few iterations won't actually be right and we'll be doing that to gain more intuition ;), that sounds great too.
We might want to use that for the telegram bot #77.Sponsor 96: Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & Tibetmeskiomeskio@torproject.orgmeskiomeskio@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/40036get back the country blocking mechanims2022-05-12T16:38:59Zmeskiomeskio@torproject.orgget back the country blocking mechanimsIt was remove by the move to rdsys and is useful to block bridges by country:
https://gitlab.torproject.org/meskio/bridgedb/-/commit/6eac9c00b0809a3277ce6abe019514be17b0cf13It was remove by the move to rdsys and is useful to block bridges by country:
https://gitlab.torproject.org/meskio/bridgedb/-/commit/6eac9c00b0809a3277ce6abe019514be17b0cf13Sponsor 96: Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & Tibetmeskiomeskio@torproject.orgmeskiomeskio@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/bridgestrap/-/issues/31bridgestrap still scans bridges but won't admit that any of them exist2022-02-11T16:54:24ZRoger Dingledinebridgestrap still scans bridges but won't admit that any of them existI see in bridgestrap's logs that it is still scanning bridges, e.g.
```
2022/02/08 19:56:46 Tested 25 bridges: 24 (96.0%) functional; 1 (4.0%) dysfunctional.
```
and meskio says that "the graphana dashboard for bridgestrap looks good, m...I see in bridgestrap's logs that it is still scanning bridges, e.g.
```
2022/02/08 19:56:46 Tested 25 bridges: 24 (96.0%) functional; 1 (4.0%) dysfunctional.
```
and meskio says that "the graphana dashboard for bridgestrap looks good, most bridges being functional"
but whenever I try to test any bridge via the web interface with its fingerprint, including fingerprints that I just watched bridgestrap successfully reach in its logs, it tells me
```
no resources for the given id
```
That is, it looks like the backend testing is going fine, but somehow the frontend has become disconnected from it.meskiomeskio@torproject.orgmeskiomeskio@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/team/-/issues/53add a third pool to the telegram bot2022-01-24T11:22:12Zmeskiomeskio@torproject.orgadd a third pool to the telegram botThe new pool is the only one that gets bridges blocked, the mechanism of splitting the bridges depending of the age of the account works. But the new pool is getting many requests that might get bridges that are already blocked. I have t...The new pool is the only one that gets bridges blocked, the mechanism of splitting the bridges depending of the age of the account works. But the new pool is getting many requests that might get bridges that are already blocked. I have the feeling that the minimum age required is too high. Lets divide it in two by age of the accounts and see if the censor is still only blocking the newest one and if we can keep more users in the pools that are not being blocked.Sponsor 125: Rapid Response Fund for Russia censorship circumventionmeskiomeskio@torproject.orgmeskiomeskio@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/rdsys/-/issues/83Circumvention map API should provide the list of countries that needs circumv...2022-02-10T19:57:48Zmeskiomeskio@torproject.orgCircumvention map API should provide the list of countries that needs circumventionLet's add an extra API endpoint that just provides the list of countries that have settings for: `/circumvention/countries`.Let's add an extra API endpoint that just provides the list of countries that have settings for: `/circumvention/countries`.Sponsor 96: Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & Tibetmeskiomeskio@torproject.orgmeskiomeskio@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/40038regnerate the captchas2022-06-07T08:42:53Zmeskiomeskio@torproject.orgregnerate the captchasThe existing captchas are over [a year old](https://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/24607#note_2599604), we might make the life of the censor harder regenerating them.The existing captchas are over [a year old](https://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/24607#note_2599604), we might make the life of the censor harder regenerating them.meskiomeskio@torproject.orgmeskiomeskio@torproject.orghttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/trac/-/issues/29277Look into getting default Tor bridges scanned by external reachability tests2021-06-10T14:32:24ZCecylia BocovichLook into getting default Tor bridges scanned by external reachability testsTalk to Roya or Paul about tests available for checking the blocking of default bridges.
First determine where development/research is at with Spooky Scan or possibly Censored planet (https://censoredplanet.org/).
These systems check f...Talk to Roya or Paul about tests available for checking the blocking of default bridges.
First determine where development/research is at with Spooky Scan or possibly Censored planet (https://censoredplanet.org/).
These systems check for blocking remotely and so might tell us something different from OONI.Sponsor 30 - Objective 2.3https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake-mobile/-/issues/19The EditText in settings is missing/invisible buttons2020-10-16T23:31:23ZHashikDThe EditText in settings is missing/invisible buttonsWhen I changed the text color for the overall app theme, it changed the text color in the EditText buttons to white. Since the background is also white, buttons look invisible.
<img src="/uploads/65e138e450dcb84e968b61fcf782e8d7/Screens...When I changed the text color for the overall app theme, it changed the text color in the EditText buttons to white. Since the background is also white, buttons look invisible.
<img src="/uploads/65e138e450dcb84e968b61fcf782e8d7/Screenshot_1602866460.png" width="250" height="500" />HashikDHashikDhttps://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake-webext/-/issues/19Make sure browser proxies are terminating connections properly2023-02-04T09:41:52ZCecylia BocovichMake sure browser proxies are terminating connections properlyWe had a user in #tor mention that their snowflake icon is staying green for hours. If this really is a multi-hour browsing session, that's fine. But if it's due to a closed connection that keeps the snowflake out of commission then we s...We had a user in #tor mention that their snowflake icon is staying green for hours. If this really is a multi-hour browsing session, that's fine. But if it's due to a closed connection that keeps the snowflake out of commission then we should look into it.https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/20813Start producing snowflakes2023-08-01T19:29:39ZArlo BreaultStart producing snowflakesOnce `snowflake-client` gets in the alpha Tor Browser builds (tpo/applications/tor-browser#20735), we're going to have some unhappy users if we don't have a sufficient number of proxies available.
We should start ramping up production a...Once `snowflake-client` gets in the alpha Tor Browser builds (tpo/applications/tor-browser#20735), we're going to have some unhappy users if we don't have a sufficient number of proxies available.
We should start ramping up production asap.
Some ideas in,<br>
https://github.com/glamrock/cupcake<br>
https://github.com/keroserene/snowflake/issues/30
We probably also want to close out the opt-in issue,<br>
https://github.com/keroserene/snowflake/issues/21Sponsor 28: Reliable Anonymous Communication Evading Censors and Repressors (RACECAR)https://gitlab.torproject.org/tpo/anti-censorship/bridgedb/-/issues/2053Investigate why it looks like there at most 500 bridges2021-07-09T18:27:09ZKarsten LoesingInvestigate why it looks like there at most 500 bridgesMike asked why it looks like there can be at most 500 (or 512) bridges in the Tor network:
https://metrics.torproject.org/networksize.png?start=2010-08-01&end=2010-10-12
I think this is coincidence. I'm attaching a graph that doesn't h...Mike asked why it looks like there can be at most 500 (or 512) bridges in the Tor network:
https://metrics.torproject.org/networksize.png?start=2010-08-01&end=2010-10-12
I think this is coincidence. I'm attaching a graph that doesn't have daily averages, but has a data point every 30 minutes. There doesn't seem to be an upper bound to the number of running bridges.
Mike, does that answer your question? If not, can you ask someone with access to BridgeDB to investigate further?https://gitlab.torproject.org/tpo/anti-censorship/censorship-analysis/-/issues/8097I think tor is blocked by my internet provider2021-07-09T18:29:20ZTracI think tor is blocked by my internet providerSorry, I'm really new to Tor, and proxies/etc. The other day, I downloaded the Tor Bundle for Mac OS X, and it would get stuck at "Establishing an encrypted directory connection".
I added bridges, tried the "Firewall only connects to cer...Sorry, I'm really new to Tor, and proxies/etc. The other day, I downloaded the Tor Bundle for Mac OS X, and it would get stuck at "Establishing an encrypted directory connection".
I added bridges, tried the "Firewall only connects to certain ports" option, and even redownloaded to the 64-bit version. I'm not sure if I'm doing something wrong or I am somehow blocked from Tor? Also, I live in Japan.
Here is an image of how my message log looks: http://i46.tinypic.com/23u8ole.png
**Trac**:
**Username**: 48ineGeorge KadianakisGeorge Kadianakis