16:01:24 #startmeeting tor anti-censorship meeting 16:01:24 Meeting started Thu Feb 26 16:01:24 2026 UTC. The chair is onyinyang. Information about MeetBot at https://wiki.debian.org/MeetBot. 16:01:24 Useful Commands: #action #agreed #help #info #idea #link #topic. 16:01:24 hello everyone! 16:01:24 here is our meeting pad: [https://pad.riseup.net/p/r.9574e996bb9c0266213d38b91b56c469](https://pad.riseup.net/p/r.9574e996bb9c0266213d38b91b56c469) 16:01:26 I can host the meeting... 16:01:44 okay, thanks onyinyang 16:01:48 hello 16:02:20 hi~ 16:02:23 hi o/ 16:03:35 I think there's only one new discussion point which is: orbot asked us about using snowflake assets for their kindness mode improvements 16:04:54 I guess we can remove the others 16:05:13 yep, thanks 16:05:55 oh i have an update on the go1.22 stuff 16:06:09 cohosh, I think you added the orbot point? did you want to say anything about it before that? 16:06:10 it needs more discussion 16:06:19 yeah the orbot thing is quick 16:06:24 ok cool 16:06:33 they asked us if they could use the snowflake assets for the kindness mode UI 16:06:52 the assets are permissively licensed so no trouble on that front 16:07:06 but they wanted a quick check with the team to see if anyone has reservations about it 16:07:24 sounds good to me 16:07:24 i don't see any issue with it 16:07:43 they are using snowflake logo for an app that has snowflake support, sounds like the right use for it 16:07:55 I think it is nice too 16:08:06 cool 16:08:27 ok that _was_ quick :) 16:08:36 so the next point is snowflake client go 1.22 support 16:08:45 hehe >~< 16:08:50 yeah so last week we decided to roll back the kcp library 16:09:11 it turns out it's not that simple, and there was a golang.org/x/net update for a security fix that required a version bump to 1.23 16:09:18 https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/issues/40490#note_3354767 16:10:10 we're running into a limitation of having a single go module for multiple projects 16:10:11 have you checked that we are actually afected by that security fix? 16:10:46 i did a quick assessment at the time: https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/merge_requests/605#note_3241953 16:11:47 it was probably not, but we do use that part of th code and since I didn't think it would affect Tor Browser builds we went ahead and deployed the update 16:11:48 I see 16:12:17 one way we could handle this is to split snowflake into multiple modules, each with their own go.mod 16:12:41 but it's not even trivial to deal with local changes across multiple modules there unless you use workspaces 16:12:51 https://go.dev/ref/mod#workspaces 16:12:55 * dcf1 reads 16:13:00 I think if we do not update any code, and only update go.mod for the new dependencies, we could just have a overlay go.mod and so.sum for macos 16:13:36 yeah that's the other option, which is to apply a manual patch to go.mod and go.sum for tor browser builds 16:15:37 it might not be a bad idea to produce a go.sum/mod just for the OSX build of TB, and be able to update the rest 16:16:07 that's probably the quickest fix 16:16:45 restructuring snowflake would require deprecating the current module and would require library users to change how they import snowflake libraries 16:17:27 we'll need to check with them how will that fit in their building process 16:17:28 but we'll need to be careful to don't make any changes in the code that uses new APIs 16:17:54 Yeah, I think this legacy check can be made using CI without too much issue 16:18:31 maybe i'll try a tor browser patch first so we can update snowflake in TB finally 16:18:32 agree 16:18:34 so this check is pretty easy to be automated 16:19:14 cohosh: sounds good to me, let's see if you encounter any problems with that 16:19:21 yeah, I think we should expect the macos issue be gone soon 16:19:47 we're eventually going to have to deal with this for 1.23 -> 1.24 16:20:02 yeah! thanks cohosh! 16:20:21 there's a golang.org/x/net security fix that requires 1.24. It looks like it doesn't affect us now but maybe there will be something later 16:21:27 ok that's it from me on this i think 16:21:51 EOF from me as well 16:22:28 ok cool 16:22:39 the next topic is: snowflake proxy pool depleted 16:22:52 I added there to see if there is anything to discuss 16:23:06 so, the snowflake proxy pool is basically depleted 16:23:14 but proxy operators are reporting not much use 16:23:37 it looks like Iranian clients are failing often to connect to the proxies they got from the broker 16:23:44 and keep retrying 16:24:14 Shelikhoo is investigating it and I expect there is no results yet on this 16:24:49 yes, this task is queued after dns tunnel for ssh port 16:25:05 is it too soon to discuss startegies to mitigate the implications of this situations for the global snowflake network? 16:25:06 I think a quick fix we could do now 16:25:16 is to reduce minPollInterval for snowflake proxy 16:25:25 while keeping the default 16:26:03 so if a proxy operator wants its proxy to get more client match, there will some some manual step they could take 16:26:27 and maybe have a failed match/successful match stats 16:26:51 but is to reduce minPollInterval for snowflake proxy 16:26:51 while keeping the default is the easiest step 16:27:01 and shouldn't take too much time 16:27:23 you mean recommending proxy operators to set this flag? or to modify the default value in standalone/webextension? 16:28:06 at least for the standalone proxy 16:28:16 the current default polling interval is 5s 16:28:36 we can suggest them to temporarily decrease it to 2s 16:29:02 to try more match 16:30:49 I wonder if is not more effective to make a release with the default been changed, not sure how many operators do upgrade... 16:32:50 I am not sure we should adjust the default... let's say some user's network has paid traffic 16:33:13 if we adjusted this value and their auto update get broken somehow 16:33:29 sorry, just tried snowflake a few times and i'm getting a proxy pretty quickly 16:33:46 then we eventually fix the snowflake, they will be hit with unexpected bill 16:34:05 i don't think the pool overload is too bad right now 16:34:26 ohh, ok, so even if the graphs claim that there is a lot fo denied clients, the user experience is not that bad? 16:34:36 i see an increase in clients getting denied but i suspect this isn't having a terrible effect on usability yet 16:34:42 confusing 16:34:54 But for any concerned proxy operators, we should give they some advise to take home 16:34:54 well, we try two bootstraps at once 16:34:56 pollInterval := flag.Duration("poll-interval", sf.DefaultPollInterval, 16:34:56 fmt.Sprint("how often to ask the broker for a new client. Keep in mind that asking for a client will not always result in getting one. Minumum value is ", minPollInterval, ". Valid time units are \"ms\", \"s\", \"m\", \"h\".")) 16:35:00 can be one of thatg 16:35:24 the spikes in denials were worse a few days ago 16:35:46 ok, good with me 16:35:56 at the worse spike it was ~4x the number of denials as matches 16:36:25 so I hear your proposal shell not as in let's make a call right now, but let's reply to the ones that asks that they can reduce the poll interval 16:36:27 which means if you're bootstrapping two connections you're probably waiting 2-3 rendezvous fetches, which is a little slow but still ok 16:36:41 now it's more 1-2 rendezvous attempts 16:37:06 meskio[mds]: yes... this is my plan right now. But I am happy to hear what everyone else says 16:37:07 it's not great but i don't know that it warrants a change in default poll rate given how difficult that currently is 16:37:35 yeah i would agree that increasing the poll interval manually is a reasonable thing to do 16:37:47 make sense 16:38:06 we can give it some more days and see if things improve, while we investigate what is the situation in Iran 16:38:16 sounds good 16:38:27 cohosh: do you mean decrease the poll interval aka poll more often 16:39:54 yes, sorry 16:40:07 increase the poll rate ^_^` 16:40:14 that was your proposal, right? 16:40:17 hehe >~< 16:40:20 yes 16:40:39 don't worry I make more typos 16:40:54 hehe 16:41:04 anything more on this topic? 16:41:17 EOF from me on this topic 16:42:01 ok, so that's it for discussion points. There is an interesting link: https://nordvpn.com/blog/nordwhisper-protocol/ 2025 16:44:01 for these protocols, is there something like source code? 16:44:53 I don't know, from nordvpn likely not 16:45:28 I recall seen the announcement some months back, but not much information on what it does 16:45:56 seems like another webtunnel type thing, tunnel over https 16:46:57 I don't have a subscription to get a packet capture 16:47:10 but tunneling over https is rather know design pattern 16:48:13 "NordVPN's newly launched NordWhisper VPN protocol aims to bypass VPN restrictions by mimicking traditional web traffic" 16:48:17 the "interesting" part is just the knowledge that commercial vpns are doing some kind of circumvention-like transports. not that what they're doing is devastatingly novel or something we need to try to do ourselves 16:48:21 I see this from google search 16:49:26 yeah, but I think we do have plan to upgrade webtunnel with a new transport mode based on http single duplex request system 16:49:34 to work with http2 or 3 16:49:45 * dcf1 thinks not every "interesting link" has to turn into a discussion or 16:49:52 which could benefit from some inspirations 16:49:56 EOF 16:50:17 ok, that's it for this week then 16:50:28 Thanks everyone! 16:50:38 thanks 16:50:41 thanks 16:50:42 #endmeeting